上次质疑编排风格是什 么时候?如果你有五年编程经验, 最后一次提出这个问题多半是在四年半之前, 其余时间都 是按习惯编程的。Bill Gates 说过,任何日后出色的程序员在入行的前几年就做得很好, 从那以后,程序员的优劣就定型了。其实任何行当都是如此,因此在初涉编程时,就应端正 态度来学,尽快培养良好的习惯。
第五 关键的“构建”决策
4.1 选择编程语言。 程序员使用熟悉的编程语言生产率高于使用不熟悉的编程语言, 并且高级语言比低级语言的 效率要高得多, 作者列出了几种高级语言的每一行代码与等效的 c 语言代码行数之比。 比如 java 是 2.5,而 perl 和 python 就是 6.而且编程语言影响程序员的思维随处可见,作者举 了个他遇到的项目, 那就是一群 fortran 程序员去写 c++, 最后写出来的代码就是伪装成 c++ 的 fortran 代码。 这个很有感触, 自己第一个项目当时有用到 c, 而当时项目组里面只有一个人对 c 比较熟悉, 可是没办法,人不够,只好上我们几个做 java 的,最后开发效率非常低下,而且代码写的 及其丑陋, 问题一大堆, 就一个 c 里面的字符串, 把我们几个 java 程序员就给郁闷了好久。 说道表达能力,象 python,perl,ruby 之类的脚本语言是 c 或者 java 之类的不能比的,就 像上面作者给出的统计,一行脚本语言比一行 c 或者 java 代码要完成的工作多得多,所以 很多游戏都会采用脚本作为一个辅助。
上次看到一篇文章就是讲 java 的标准库里面的一段 c 风格的 java 代码: 我觉得特别是这种有 gc 的语言的程序员和无 gc 的语言的程序员, 如果让他们互换的话, 写 出来的程序是最会不伦不类的
4.2 编程约定 其实很简单,那就是变量名称,类的名称,方法名称,代码的格式,注释的规定等等等
等, 这些很细节的东西。 程序因此也需要底层的完整性。 成功编程的一个关键就是避免随意的变 化。 这些我觉得在项目中很重要,比如方法的名称,在我的一个项目中,那些 c 代码中的名称, 有的是 c 的命名规则,有的是 java 的命名规则,所以这些代码给人感觉极度混乱和邋遢。
4.3 深入一种语言去编程。 作者给出了建议, 那就是如果你使用的语言缺乏你所希望用的构件, 或者倾向于出现其他种 类的问题,那就应该去试着弥补他,发明你自己的编码约定,标准,类库以及其他的改进措 施。 作者这里给出了一个 vb 的例子,其实像 apache 的 commons 那几个包,或者说像 spring, hibernate 这些框架也都是深入 java 去编程的很好的例子。
这是第一次接触到软件构建的概念, 以前开发一个
软件是完全按照软件工程的步骤来区 分不同的活动。从定义问题,需求分析……到
系统测试及其保障维护。 本书定义了什么是软件构建、软件构建的重要性、软件构建必须要做的准备
工作。 软件构建主要是编码和调试,但也涉及详细
设计、规划构建、单元测试、集成、集成测 试等其他活动。 研究表明:把主要精力集中在构建活动,可以大大地提高程序员的生产率;而且构建活 动的质量对软件的质量有着实质性的影响。 这就要求我们能够在软件的开发过程中, 心中得有一个构建的概念, 同时牢牢住住这个 软件开发的核心活动,以高效率地完成高质量的软件开发任务。 然后在第三章中描述了软件构建必须做的准备工作。包括问题定义、需求确定、设计