我一直在探索能够提升编程效率的方法,主要因为我太“懒”了,不想花费太多的时间做重复性的工作。每遇到一件事情的时候我总是在想能不能系统地解决这个问题,这样以后一旦遇到同样的问题,就会迅速解决战斗并投身于其它事情当中。
以前做iOS项目的时候,每次需要添加国际化文字的时候,PM(产品经理)会把翻译好的文字给我们,我们拿过来一个一个复制到项目当中。PM给的文字是下面这样的:
![](https://img.haomeiwen.com/i1664496/a4fdd49c5324df5c.jpg)
那会我们真的是一个一个把它复制到项目中的,而且容易出错,每次几乎花费1天的时间来搞这个。直到后来的某一天,我的 Leader 给我指了条明路 ---- 用脚本。随后就自学了Python,用了3分钟就解决了战斗。用的比较爽,就把平时遇到的一些痛点都用脚本解决掉了,比如查找国际化文件中的错误。有兴趣的同学可以看看这个项目 https://github.com/lefex/TCZLocalizableTool。
上面提到的这种方案有一个致命的缺点 ---- 不通用,不易用,因为脚本中把一些参数写死了,别人使用的时候必须修改源码。最近情况发生了些变化,开发效率这件事完全可以做得更好 ---- 打造开发工具集,做成像 Cocoapod 这样的命令行工具,通过命令行工具解决我们平时开发中遇到的问题。我都想好了,优化自己写代码的习惯,形成具有模板化的代码,这样直接通过工具辅助生产代码。
以前对命令行工具总有一种畏惧的感觉,不知道你有没有(反正我是有这种感觉,每遇到需要命令行工具解决的事情就想“逃”),因为总会报一些奇怪的错误,比如 command not found,Unknown command:。直到今天,我对命令行反而产生了“好感”,这真是一个好东西啊!它能实实在在为我提高效率,打造开发工具集。起初,我打算使用 Ruby 来开发命令行工具,命令行工具开发主要是来解析命令行中的参数,Pod使用的是 CLAide 这个库解析命令行参数。后来由于我写的一些脚本主要使用的是 Python,就切换到了使用Python实现命令行工具。
Python 实现命令行工具比较简单,以前由于自己没找到好的资料,走了不少弯路。Python3 中自带了 argparse 库用来解析命令行参数。官方文档特别详细 https://docs.python.org/2/library/argparse.html#example,我就不在赘述了。
下面这段代码是用Python写的一个简单例子
![](https://img.haomeiwen.com/i1664496/260591999c55762f.jpg)
![](https://img.haomeiwen.com/i1664496/e12cda3a7d6765d7.jpg)
本文旨在提供一个提高开发效率的思路,并没有打算讲如何实现一个命令行工具。如果对命令行工具感兴趣的话,说不定后续会写一写。后续文章会有:提升编程效率(二、三、四……
![](https://img.haomeiwen.com/i1664496/e48579a71fda8645.jpg)
网友评论