The practice of programming 读书笔记 (一)
来源:互联网 发布:raphael js api 编辑:程序博客网 时间:2024/06/04 18:35
第一章 编程风格 Style
良好编程风格的目的,就是为了使得代码更容易被自己和其他读者所理解。
同时,良好的编程风格也是写出好程序的关键所在。
1.关于命名
(1) 全局变量使用说明性命名,局部变量使用短名字,全局变量名字应该足够长以表达清楚它所具有的含义,同时,对于全局变量进行一小段注解是有益处的。
比如:
int npending = 0; // current length of input queue
同理还有全局函数,全局类,结构等,都应该有相应的说明。
(2)局部变量就没有必要太过冗长,有时候简洁的表达给人一种清晰的感觉。
程序越长,好的,系统化的,名字就越发显得重要。
C++的名空间和Java的包都帮助我们管理各种名字的作用范围,使之表达得清晰明确。
2.关于表达式和语句
(1)注意使用缩进。
(2)采用贴近自然的方式书写表达式,好比你可以把它大声朗读出来。
(3)使用括号排除可能的二义性。尽管有时候我们可能记不清楚优先级顺序,也没有必要去死记硬背。
(4)分解复杂表达式,使它更容易被理解。
(5)我们的目的是写清晰的代码,而非“聪明”的代码。
3.保持程序的一致性
(1)使用一致的缩进方式和加括号的方式。
(2)如果一个if紧跟在另外一个if之后,请一定要加花括号。
(3)do-while循环远比while,for用的少。
(4)为了一致性,使用习惯用法,不要创新
(5)不要使用gets()函数,可能会导致安全性问题,选择fgets()是好的。
(6)strlen()不会计算结束符,但是strcpy()会计入。对于Java没有越界的困难需要考虑。
4.函数与宏
在C语言中,把频繁使用的操作定义为宏而非函数以加快速度,实际上是站不住脚的。或者说,实际上,在许多例子中,函数宏带来的缺点超过了所谓的执行效率
Java压根就没有宏,C++的inline函数也比使用宏具有更好的安全性
5.关于数字
给神秘的数字取个名字
定义常数,在C++里面使用const,Java中的final
(1)使用语言去计算对象的大小,s i z e o f( a r r a y [ 0 ] )可能比s i z e o f(i n t) 更好,因为即使是数组的类型改变了,也没有什么东西需要改变。
6.注释
(1)放在每个函数前面的注释可以成为帮人读懂程序的台阶。如果函数代码不太长,在这里写一行注释就足够了。
(2)有些代码原本非常复杂,可能是因为算法本身很复杂,或者是因为数据结构非常复杂。在这些情况下,用一段注释指明有关文献对读者也很有帮助。
(3)不要注释差的代码,重写它。
(4)澄清情况,不要添乱。注释应该在困难的地方尽量帮助读者,而不是给他们设置障碍。
(5)注释是一种工具,它的作用就是帮助读者理解程序中的某些部分,而这些部分的意义不容易通过代码本身直接看到。我们应该尽可能地把代码写得容易理解。在这方面你做得越好,需要写的注释就越少。好的代码需要的注释远远少于差的代码。
好风格应该成为一种习惯。如果你在开始写代码时就关心风格问题,如果你花时间去审视和改进它,你将会逐渐养成一种好的编程习惯。一旦这种习惯变成自动的东西,你的潜意识就会帮你照料许多细节问题,甚至你在工作压力下写出的代码也会更好。
- The practice of programming 读书笔记 (一)
- 《The Practice of Programming》读书笔记(一)
- The practice of programming
- <<The Practice of Programming>>序言
- 《Programming: Principles and Practice Using C++》读书笔记(一)
- 读书摘要-The practice of programming
- The Practice of Programming Chapter One - Style
- 读完了the practice of programming
- Excerpts from The Practice of Programming
- The C++ Programming Language 读书笔记(一)
- 《THE C PROGRAMMING LANGUAGE》读书笔记一
- The Go Programming Language(读书笔记)
- The C++ Programming Language 读书笔记(二)
- The C++ Programming Language 读书笔记(三)
- The C++ Programming Language 读书笔记(四)
- 《The C Programming Language》读书笔记总结 <一>.基础篇
- 《The C Programming Language》读书笔记总结 <一>.基础篇
- 《Beginning Linux Programming》读书笔记(一)
- UITableView 让列表自动滑动(定位)到某一行
- UIhelp 主线程执行
- Jxl将Excel中的数据写入数据库--->现成code
- 【PHP性能优化学习】之xhprof安装&&使用
- 中国将首次倡导粮食干部职工体验24小时饥饿-粮食局-24小时饥饿-世界粮食日
- The practice of programming 读书笔记 (一)
- 无法打开物理文件 XXX.mdf"。操作系统错误
- 使用SharpZipLib压缩序列化对象
- 禁止某几个文件用ARC模式编译
- 改了n遍后的结果~~
- 四川渠县政府将小学操场拍卖出售 学生错峰放学-四川-操场-拍卖
- 消息耦合还是接口耦合
- Linux2.6 DM9000驱动模编译为模块
- 框架类的 键盘监控 消退