最近看了《程序员修炼之道,从小工到专家》。蛮有收获,在这里总结一下其中编码的金科玉律,比如DRY(Don't repeat your self),KISS(keep it simple and stuipd)原则。要让自己在代码的时候时刻记得这些,只有有意识地强化实践和反复提醒自己。毕竟能不能让正确的原则指导正确的行动本身,其实就是区分是否是高手的一个显著标志。
1、在所有弱点中,最大的弱点就是害怕暴露弱点
2、提供各种选择,不要找撇脚的接口
3、不要容忍破窗户:
不要留着“破窗户”(低劣的设计、错误的决策、或是糟糕的代码)不修。发现一个就修一个。如果没有足够的时间进行适当的修理,就用木板把它钉起来。或许你可以把出问题的代码放入注释。
4、正交性(低耦合,高内聚):
在计算技术中,该属于用于表示某种不相依赖或是解耦性。如果两个或更多事务中的一个发生变化,不会影响其他事物,这些事物就是正交的。
5、你不可能写出完美的软件,按合约设计,断言式编程
6、德墨忒尔法则:(好篱笆促成好邻居)编写“羞怯”的代码是有益的。但“羞怯”的工作方式有两种:不向别人暴露你自己,不与太多人打交道。
public void plotDate(Date aDate, Selection aSelection){
TimeZone tz = aSelection.getRecorder().getLocation().getTimeZone();
//现在绘制例程不必要地与三个类耦合在一起————Selection、Recorder及Location。这种编码风格极大地增加了我们的类所依赖的类的数目。因为它增加了系统别的地方的一个无关改动影响你代码的风险。例如:如果Fred对Location做出变动,使它不再直接包含TimeZone,你也必须改动你的代码。
//应该直接要求提供你所需的东西,而不是自行“挖通”调用层次
public void plotDate(Date aDate, TimeZone aTz){
...
}
plotDate(someDate, someSelection.getTimeZone));
7、要配置,不要集成。用元数据驱动应用,把抽象放进代码,细节放进元数据。
未完待续。。。。。。。