2009-02-19读书记录:《代码大全》(第一版)第十八章——布局和风格
来源:互联网 发布:用户画像 大数据 编辑:程序博客网 时间:2024/05/06 08:52
布局好的代码看起来不仅感觉漂亮而且结构也清晰。
布局技巧
用空格可以提高可读性。空格包括空格、制表符、断开行及空行。用空格得到罗好的布局:
- 分组—— 一个代码段只能包含有关的、为完成某一任务而组织在一起的语句。
- 空格——在程序段的开头应当加空格表明
- 对方——把同属性的元素对齐。例如同一类语句的排成一条直线下来
- 缩排——当一个句子在逻辑上从属于上一个句子时,这个名子就比上一行退几格
要尽量的多用括号,有的时候表达式可能不需要使用括号,但加上括号会使表达的更清晰。
布局风格
控制语句下的一组语句要区分成一组,再括起来。纯块结构、行尾布局这些名词化了,其实都见过的,“行尾布局”没用过,感觉这个最不好。文中给出的缺点是:无连续性而且难修改。
控制结构布局
文中给出了一个例子。例:
for i:=1 to MaxLines do
begin
ReadLine(i);
PrecessLine(i);
end
这种看起来很好,但违反了格式化的基本原理,没有显示出代码的逻辑结构。begin和end好像不是控制结构的一部分,也不属于它们之间语句组成的一部分。按作者的意思是改为如下会比较好:
for i:=1 to MaxLines do begin
ReadLine(i);
PrecessLine(i);
end
令我不解的是使用MS的Visual Studio .NET 2003或更高版本的开发环境时,代码都是违反格式化原理的。后台代码全部都是类似:
for(int i=0;i<MaxLines;i++)
{
SomeOprate(i);
}
而且已经成为了主流。至于作者提倡的应该是以前的C语言的布局。
单条语句布局
单条语句常规限制不超过80个字符,原因:超过了很难读、80个字符也防止了深层嵌套、80字符内方便打印。单条语句布局建议:
- 逻辑表达式使用空格可增强可读性
- 用空格使数组下标更好读
- 用空格使子程序参数更好读
- 使续行明显 放在第一行那部分要清楚的表明它是语句的一部分。最好方法是第一行部分独立出来则有明显的语法错误
- 把紧密关联的元素放在一起
- 子程序调用的续行可后退标准格数
- 使续行的结尾易于发现
- 每行仅写一条语句
数据类型定义布局
- 注意数据类型定义的对齐
- 每行定义一个数据
- 有意识地安排定义顺序
注释布局
一个好的注释能极大提高程序的可读性,若注释不成功,则会帮倒忙。
- 注释行与相应的代码行同样缩排
- 把注释行至少用一个空行分开
子程序布局
如何将子程序布局好,以下几点作为参考:
- 用空行把子程序各部分分开
- 对子程序的参数用标准缩排
文件、模块和程序布局
- 把一板块放在一个文件里
- 把一个文件内的子程序区分清楚
- 如果文件里有多个模块,要把这些模块区分得清清楚楚
- 各子程序按照字母顺序排列
- 在C中,细心地组织源文件
这一章中的大多需要注意的地方都已经很了解了,并且大部分也都是按照文中所提倡的布局格式去做的。依然想起了前辈的那句话“代码是写给人看的”!
- 2009-02-19读书记录:《代码大全》(第一版)第十八章——布局和风格
- 2009-03-02读书记录:《代码大全》(第一版)第二十九章——代码调试技术
- 2009-02-09读书记录——《代码大全》(第一版)第六章——模块化设计
- 2009-02-12读书记录——《代码大全》(第一版)第七章——高级结构设计
- 2009-02-12读书记录:《代码大全》(第一版)第八章——生成数据
- 2009-02-13读书记录:《代码大全》(第一版)第九章——数据名称
- 2009-02-13读书记录:《代码大全》(第一版)第十章——变量
- 2009-02-15读书记录:《代码大全》(第一版)第十一章——基本数据类型
- 2009-02-16读书记录:《代码大全》(第一版)第十二章——复杂数据类型*
- 2009-02-16读书记录:《代码大全》(第一版)第十三章——顺序程序语句
- 2009-02-17读书记录:《代码大全》(第一版)第十四章——条件语句
- 2009-02-17读书记录:《代码大全》(第一版)第十五章——循环语句
- 2009-02-17读书记录:《代码大全》(第一版)第十六章——少见的控制结构
- 2009-02-18读书记录:《代码大全》(第一版)第十七章——常见的控制结构
- 2009-02-20读书记录:《代码大全》(第一版)第十九章——文档
- 2009-02-21读书记录:《代码大全》(第一版)第二十章——编程工具
- 2009-02-22读书记录:《代码大全》(第一版)第二十二章——创建管理
- 2009-02-22读书记录:《代码大全》(第一版)第二十三章——软件质量概述
- SQL中的日期转换函数详细总结
- 测试iBatis出现数据库Access denied问题
- 佛珠的颗数有什么讲究
- ISAPI扩展程序(转)
- MSN两月内强制升级 不用新版本无法聊天
- 2009-02-19读书记录:《代码大全》(第一版)第十八章——布局和风格
- 调试程序的时候出现的nafxcw.lib和uafxcw.lib的冲突问题
- 单机环境构建WebSphere Application Server Community Edition V2.1.1集群环境
- 对CLR以及GC--部份特性理解的总结
- Linux C函数
- 培根在论读书中的妙论之一
- QeePHP:一切从头开始
- 安装中文VS2008 SP1 后智能提示是英文的解决办法(官方解决办法)
- 微软电子商务的三个成功案例