首页 > 代码库 > 做一个“懒惰”的程序员

做一个“懒惰”的程序员



懒惰,算是本人的一大缺点,但是我发现,事物的两面性在懒惰上得到充分体现。懒惰,并非一无是处。


比如,编写脚本。



本人编写脚本的原因有两个:一是省事,不用每次敲那么多东西。二是本人健忘,无法记得冗长的命令。
就拿IPC的代码来讲,
IPC代码根目录中,有N多build-XXX。而每一个build-XXX目录下的内容,则完全相似,都有一个set.sh。
这就是编译用的脚本。
随便拿出一个来,其内容大致如下:
cmake .. -DCROSS_COMPILE=arm-hisiv100nptl-linux- -DBOARD=hi3518C -DCONFIG_PATH=/etc/conf.d/jovision/ -DTINY_ONVIF_SUPPORT=ON -DSD_RECORD_SUPPORT=ON -DGB28181_SUPPORT=ON
看看吧,如果每次编译之前,都要把它们敲出来,是一件多么悲剧的事情。
把它们写成脚本,是多么理所应当的事情呢?
然而,无论是以前公司见过的超级高手,抑或是现在的很多同事,都喜欢把它们一个字一个字的敲出来。


比如,文件编辑。



Onvif中,每个功能,也就是其对应的每个函数,都有其访问权限。在Onvif2.4中,有接近200个函数。
(ONVIF-Core-Specification-v210.pdf
这个PDF中,搜索 Access Class ,可以得到每个函数的访问权限。例如:SetSystemDateAndTime的权限是:RITE_SYSTEM)
那么,这些函数的权限,要如何做呢?
在往下看之前,不妨下载下来,想想办法。


这里介绍一下,我的做法:
1,ctrl+a,选中全文,将其复制到UltraEdit中。(好多同事版权意识很强,只用开源的Notepad++)
2,ctrl+F,搜索Access Class。这里要注意,需要选中:列出包含字符串的行
3,这时点下一个,工具会列出所有的行,此时点“剪贴版”
4,新建一个UltraEdit文件,粘贴,此时你会得到类似如下的东西:
SetNTP  Access Class: WRITE_SYSTEM
GetDynamicDNS  Access Class: READ_SYSTEM
SetDynamicDNS  Access Class: WRITE_SYSTEM
GetNetworkInterfaces  Access Class: READ_SYSTEM
5,技巧一结束,技巧二开始
6,中间的Access Class: 使用替换工具,把它们替换成空格
7,替换,将两个空格,替换成一个。
8,一直点替换,直到失败
9,空格替换成",
10,就变成了这样:
GetWsdlUrl", PRE_AUTH
GetServices", PRE_AUTH
GetServiceCapabilities", PRE_AUTH
GetCapabilities", PRE_AUTH
GetHostname", PRE_AUTH


11,有些版本的UltraEdit,可以支持把回车,替换成其它内容,有些版本不行的话,可以考虑用Notepad++
12,回车变成:},\n{"  最后变成这样:
{GetWsdlUrl", PRE_AUTH},
{GetServices", PRE_AUTH},
{GetServiceCapabilities", PRE_AUTH},
{GetCapabilities", PRE_AUTH},
{GetHostname", PRE_AUTH},
大功告成


比如,图片处理



之前做DVR的时候,美工会做一堆的图片,都是PDF的。
而,实际工程中,需要用16位bmp。
诸位是怎么办的呢?一张一张的另存为?


我的办法是:
Photoshop有一个,类似宏录制的功能, 文件-》自动-》批处理。 可以生成一个EXE文件。
只要把一个目录,拖到这个EXE上,就会一下子将所有文件,转化成指定格式。非常方便


中心思想



方法还有很多,但我准备授人以渔了。期望有人能领会精神,忘记招式。
一件工作在开始之前,先想想有没有偷懒的办法。尤其是重复性的工作。一定有什么方法或者工具,可以快速完成任务的。
人之所以区别于动物,就是会用工具不是吗?