个人性格
将子程序编写很小,以减轻大脑负担。
基于问题而不是底层实现细节编程,从而减少工作量。
对技术事物的求知欲具有压倒一切重要性。
解决问题是软件创作过程中的核心行为。
要点:
人的个性对其编程能力有直接影响。
最有关系的性格为:谦虚,求知欲,诚实,创造性和纪律,以及高明的偷懒。
程序员高手的性格和天分无关,任何事情都与个人发展相关。
出乎意料的是,小聪明,经验,坚持和疯狂即有助也有害。
很多程序员不愿意主动吸收新知识和技术,只依靠工作时偶尔接触新的信息。如果你能抽出少量的时间阅读和学习编程知识,要不了多久就能鹤立鸡群。
好性格与培养正确的习惯关系甚大,要成为杰出的程序员,先要养成良好的习惯,其他自然水到渠成。
软件工艺的话题
在架构层将系统划分为多个子系统,以便让思绪在某个时间内专注于系统的一小部分。
仔细定义接口,从而可以忽略类内部的工作机制。
保持接口的抽象性,从而不必记住不必要的细节。
避免全局变量,因为他会大大增加需要兼顾的代码比例。
避免深层次的继承,因为这样会耗费很大的精力。
避免深度嵌套循环或者条件判断,因为他们都能简单的控制结构取代,后者占用较少的大脑资源。
别用goto,因为它引入非顺序执行,多数人都不容易弄懂。
小心定义错误处理方法,不要滥用不同的错误处理技术。
以系统的观点对待内置的异常机制。后者会成为非线性控制结构,异常如果不受约束的使用,就和goto一样那一理解。
不要让类过度膨胀,以至于占据整个郑程序。
使用清除,不言自明的变量名称。
传递给子程序的参数数目应尽可能少,只穿第保持子程序接口抽象的所必需参数。
用规范和约定来使大脑从记忆不同代码短的随意性,偶然性差异中解脱出来。
只要有可能,一般情况下应避免第五章所说的偶然性困难。
深入一门语言去编程,不要敷于表面。
不要将编程思路局限于所用的语言能自动支持的范围。杰出的程序员会考虑他们要干什么,然后才是怎样用手头工具去实现他们的目标。
设计度量也可以作为一种警告。多数设计度量对设计质量颇有启发性。
成员多于七个的类不一定以气质设计的不好,但能说明类有些复杂。同样,子程序中有多于十个的判断点、三层以上的逻辑嵌套,过多的变量,或者其他类联系过去紧密,或者内部代码内聚性不强,都是警告标识。所有的这些虽然不等于类设计不当,但应引起你的怀疑。
要点:
编程的主要目的之一是管理复杂性。
编程过程对最终产品有深远影响。
合作发开要求团队程序员之间广福安的沟通,甚至于同计算机的交互,而单人开发则是自我交流,其次才是与计算机。
编程规范一旦滥用,只会雪上加霜;使用得当则能为开发环境带来良好的机制,有助于管理复杂性和相互通。
编程应基于域而非解决方案,这样便于复杂性管理。
注意告警信息,将其作为编程疑点,因为编程几乎是纯粹的智力活动。
开发迭代次数越多,产品质量越好。
墨守成规的方法有悖于高质量的软件开发。请将编程工具箱中填满各种编程工具,不断提高自己挑选合适工具的能力。