天天看点

做一个“懒惰”的程序员中心思想

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

比如,编写脚本。

本人编写脚本的原因有两个:一是省事,不用每次敲那么多东西。二是本人健忘,无法记得冗长的命令。

就拿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上,就会一下子将所有文件,转化成指定格式。非常方便

中心思想

方法还有很多,但我准备授人以渔了。期望有人能领会精神,忘记招式。

一件工作在开始之前,先想想有没有偷懒的办法。尤其是重复性的工作。一定有什么方法或者工具,可以快速完成任务的。

人之所以区别于动物,就是会用工具不是吗?