尽量预测所有可能面临的问题,按照等级划分并建立蝴蝶效应的树状结构图.
日志系统是为运行期提供的,当然一些复杂的调试可能用得上.但日志是要提供有用的信息,而非毫无理由的try catch.try catch往往为了你不能预期且容易出问题的地方存在.
面向对象编程的优异在于便捷类重用,核心关键在于面向抽象编程.
越抽象的东西越不易变,所以核心的设计应该抽象出来.
面向过程的优异之处在于方法的重用方法重用,核心关键在于提炼方法策略便于重用
不要做重复的事情.
工作如此,同样编码设计亦如此.
当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法,并且改变现有的地方的代码让他们以一些合适的参数调用这个新的方法。
当业务流程相同,而具体实现 不一致的时候.我们应该面向抽象
接口的类型分为命令和查询两种方式,不要同时干两件事情.
切勿过度设计,用不上的东西你就不要去做.
不要自我复制
编程设计随谈
DRY 是一个最简单的法则,也是最容易被理解的。但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易的事)。它意味着,当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法,并且改变现有的地方的代码让他们以一些合适的参数调用这个新的方法。 在系统设计中,很多系统也是以这样原则设计的,查询的功能和命令功能的系统分离,这样有则于系统性能,也有利于系统的安全性。
面向对象的一些原则问题.
1.高内聚, 低耦合
2.依赖倒置原则(核心抽象不考虑具体实现需要什么,而是提供抽象)
3.接口隔离原则(没有关联的接口就不要放一起了)
4.里氏代换原则(子类能够完成父类的业务)
5.开闭原则(对扩展是开放的,而对修改是封闭的。 ) 宁增勿改
6.单一职责远程(一个类,只做一件事,并把这件事做好,其只有一个引起它变化的原因。)