关于软件工艺,C语言[不抛砖,盼引玉]
大家好!
我是一名参加工作4年的IT民工,目前在一家中型企业从事嵌入式软件开发维护工作。我们使用的语言工具为C语言,软件平台是风河公司的vxWorks,产品为一款工业级小型终端设备。
我在软件开发维护的工作中,发现很多bug并不是大的技术缺陷造成的,而是由于不好的代码风格造成的。而我们公司对于代码风格也有一定的规定和要求,但是各个产品组并不是很统一,感觉各有利弊。我想把我有疑问的几点提出来,希望工作经验丰富的老师能够结合自己的经验,给出一些指导。不胜感激。
1,关于命名规则。我们采用的是 “类型+含义”的方式,比如 char cOperateType。但是有的时候名字会比较长,如果采用缩写,含义又有可能不清晰。
2,关于头文件。头文件是否应该和实现文件一一对应?哪些东西应当放在头文件里?如果需要引用外部函数或外部全局变量,是该引用其头文件还是直接在本文件声明?各有什么利弊呢?
3,关于封装。C的封装性比较差,但是软件工程模块化设计又要求有比较好的封装,用什么样的规则能够比较好的实现呢?现在我们的工程耦合性很强,经常是改动了1处牵动了全身。大家对于封装性都是持肯定态度的,但是苦与没有找到很好的方法,有没有比较好的规则可以遵守呢?
4,关于数据结构的定义。我们现在基本有两种观点:一,定义一个大的数据结构,包含了主要的控制字段、数据区地址、函数方法指针等,从主函数下去,几层函数的接口都使用这个结构的指针;二,将各控制信息、数据区打散,函数方法就地使用(要求函数方法全部声明为外部)。第1种方法感觉封装性好,但是程序阅读的时候有点困难,而且调试的时候不太方便(带着一个大结构走,主机反应速度变慢);第2种方法感觉信息全部暴露。请专家予以指导。
5,关于pclint。我们没有使用pclint,其他组有使用的。我感觉lint工具太过于严格,不知道用过的前辈有什么感受,或者有什么建议。
另外,我们的软件规模大约30万--50万,C语言,嵌入式软件。