编程素养(一)

转载 2012年03月29日 17:03:51

编程素养(一)  

编程首要是要考虑程序的可行性,然后是可读性、可移植性、健壮性以及可测试性。这是总则。但是很多人忽略了可读性、可移植性和健壮性(可调试的方法可能歌不相同),这是不对的。

1.当项目比较大时,最好分模块编程,一个模块一个程序,很方便修改,也便于重用和便于阅读。

2.每个文件的开头应该写明这个文件是哪个项目里的哪个模块,是在什么编译环境下编译的,编程者(/修改者)和编程日期,值得注意的是一定不要忘了编程日期,因为以后你再看文件时,会知道大概是什么时候编写的,有些什么功能,并且可能知道类似模块之间的差异(有时同一模块所用的资源不同,和单片机相连的方法也不同,或者只是在原有的模块上加以改进)。

3.一个C源文件配置一个h头文件或者整个项目的C文件配置一个h头文件,我自己采用整个项目的C文件配置一个h头文件的方法,并且使用#ifndef/#define/#endif的宏来防止重复定义,方便各模块之间相互调用。

4.一些常量(如圆周率PI)或者常需要在调试时修改的参数最好用#define定义,但要注意宏定义只是简单的替换,因此有些括号不可少。

5.不要轻易调用某些库函数,因为有些库函数代码很长(我是反对使用printf之类的库函数的,但是是一家之言,并不勉强各位)。

6.书写代码时要注意括号对齐,固定缩进,一个{}各占一行,我本人采用采用所进4个字符,应该还是比较合适的,if/for/while/do等语句各占一行,执行语句不得紧跟其后,无论执行语句多少都要加{},千万不要写成如下格式:

for(i=0;i<100;i++){fun1();fun2();}

for(i=0;i<100;i++){

  fun1();

  fun2();

}

而应该写成:

for(i=0;i<100;i++)

{

  fun1();

  fun2();

}

7.一行只实现一个功能,比如:

  a=2;b=3;c=4;宜改成:

  a=2;

  b=3;

  c=4;

8.重要难懂的代码要写注释,每个函数要写注释,每个全局变量要写注释,一些局部变量也要写注释。注释写在代码的上方或者右方,千万不要写在下方(相信没有人写在左方吧:))。

9.对各运算符的优先级右所了解,记不得没关系,加括号就是,千万不要自作聪明说自己记得很牢。

10.不管有没有无效分支,switch函数一定要defaut这个分支。一来让阅读者知道程序员并没有遗忘default,并且防止程序运行过程中出现的意外(健壮性)。

11.变量和函数的命名最好能做到望文生义。不要命名什么x,y,z,a,sdrf之类的名字。

12.函数的参数和返回值没有的话最好使用void。

13.goto语句:从汇编转型成C的人很喜欢用goto,但goto是C语言的大忌,但是老实说,程序出错是程序员自己造成的,不是goto的过错;本人只推荐一种情况下使用goto语句,即从多层循环体中跳出。

14.指针是C语言的精华,但是在C51中我个人认为少用为妙,一来有时反而要花费多的空间,还有在对片外数据进行操作时会出错(可能是时序的问题)。

15.一些常数和表格之类的应该放到code去中以节省RAM。

16.程序编完编译看有多少code多少data,注意不要使堆栈为难。

17.程序应该要能方便的进行测试,其实这也与编程的思维有关;一般有三种:一种是自上而下先整体再局部;一种是自下而上先局部再整体;还有一种是结合两者往中间凑。我的做法是现大概规划一下整个编程,然后一个模块模块独立编程,每个模块调试成功再拼凑在一块调试。我建议:如果程序不大,可以直接用一个文件直接编,如果程序很大,宜采用自上而下的方式,但更多的是那种处在中间的情况,宜采用自下而上或者结合的方式。

程序员需要具备的职业素养

说起职业素养,可能大家脑子里马上反映出来的是西服领带公文包的精干白领形象,其实作为程序员来说,外在可能没有那么重要,更多的是内在职业素养,本期调查分享了两个研发小组的故事,让大家在统计数据的基础上进一...
  • ghevinn
  • ghevinn
  • 2014年03月28日 10:14
  • 2882

职业素养比能力更重要

经历几年的时间,正所谓铁打的营盘,流水的兵。IT行业里,人才流动特别大。而对于企业来说,我自认为员工的职业素养比能力更重要。经历过的团队,见识了各式各样的队友。得益于此,也受害于此。人们常说不怕神一样...
  • nadeal
  • nadeal
  • 2017年08月05日 08:41
  • 293

学习《网络素养》的总结

学习《网络素养》的总结                                                              —信管1122班戚水仙学号:201211671...
  • qishuixian
  • qishuixian
  • 2015年07月03日 09:00
  • 446

程序员的职业素养_心得体会

《程序员的职业素养》——总结 前言          在Bob大叔的整本书中,重点传达了一种精神,就是专业精神。解释出来会有很多种精神,但是我觉得概括下来,就是工匠精神,就是责任感。要对项目负...
  • tooky_poom
  • tooky_poom
  • 2017年08月04日 10:20
  • 847

程序员的职业素养 Bob

1.不匆忙上线,测试充分后再上,即使到了交付期 2.分析自己容易遗漏的bug,检讨自己查bug的方法 3.让自己的项目灵活易于修改 4.承诺的代价,加速的代价=>代码一片糟糕. 5.专业的回答...
  • SOLDIER_BOSSJIE
  • SOLDIER_BOSSJIE
  • 2016年09月08日 09:23
  • 2576

黑客素质&黑客守则&黑客精神

黑客素质&黑客守则&黑客精神 (来自互联网)   中文名称:黑客 英文名称:hacker 定义:     利用系统安全漏洞对网络进行攻击破坏或窃取资料的人。黑客最早源自英文ha...
  • atupal
  • atupal
  • 2013年02月04日 01:08
  • 1336

架构师的必备素质和成长途径

2016年11月18-20日SDCC 2016中国软件开发者大会,易宝支付CTO陈斌给我们带来了“架构师的成长之路”的演讲。主要谈及了架构师的必备素质和成长途径及给准架构师的建议。 它山之石可以...
  • sanbingyutuoniao123
  • sanbingyutuoniao123
  • 2017年01月06日 23:30
  • 561

知乎 哪些素质很重要,却是读书学不来的?-2

最近在写一篇《信息过载与受众行为模式XXX》的论文,在某处突然顿悟,我节选了一些观点与事例重新整理出这个答案,分享给诸君一读,希望能对你有所启发。 首先把观点摆在前面。我认为,在目前这个信息过载...
  • tomotayuki
  • tomotayuki
  • 2016年03月15日 15:12
  • 236

从插图看《代码整洁之道——程序员的职业素养》

和《代码整洁之道》一样,每章的开头的插图(以下简称“主题图”)都概括了该章的主题,同时因为本书每章前的引言都是Bob自传的一部分,所以主题图常常有Bob大叔,注意他的长相。每章的主题图也都隐藏了“KO...
  • dongfeng9ge
  • dongfeng9ge
  • 2017年04月29日 17:17
  • 825

民营医院员工职业素养培训心得体会

按照医院的统一安排,我参加了员工职业素养培训,听取了老师的授课和参与讨论与交流后,使我受益匪浅。掌握了许多知识,又开拓了思路,对于自己和护士这份工作有了新的认识和体会。   一是找到自己的位置,确立...
  • kdjddd
  • kdjddd
  • 2015年05月28日 17:05
  • 1015
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程素养(一)
举报原因:
原因补充:

(最多只允许输入30个字)