为什么要学习设计模式?
很多人会有困惑,为什么我写的代码不如其他人优雅?系统分析的时候怎么做领域划分?为什么这么划分是合理的?代码分层结构怎么设计合理?
与其说为什么学习设计模式,不如说是我为什么学习设计模式。上面提到的问题都是我在工作中真实遇到的问题,拿到一个系统我们会去分析系统现有的数据库模型,在现有系统模型可以支持系统现有发展时,如何做进一步优化?怎样做到系统可配置化?这些都是需要去想的问题,但很多问题不是光思考就会有答案的,需要我们有一定知识的积累才会得到深刻的理解,这就是我想要系统学习设计模式的原因。
学习设计模式有什么好处
我不知道学习设计模式是否可以解决我的全部疑问,但我知道不学习一定没有办法解决。
但哪个程序员不希望自己写的代码巨优雅?谁都想成为程序员中的Top,想要进阶设计模式肯定是跨不过去的。那就学起来吧~
什么是好代码?
每个人心中都有不同的评判标准,但都围绕着那几个经常听见的名词。例如可维护性
可维护性
代码可维护,简单理解就是不引入bug的前提下,可以轻松地增加或修改代码。
可读性
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
任何傻瓜都会编写计算机理解的代码。好的程序员能够编写人能够理解的代码。
可扩展性
代码中预留了一些功能的扩展点,在增加新功能时,不需要对原始代码大动干戈。
简洁性
代码简单、逻辑清晰
可复用性
减少重复代码的编写,复用已有代码。
可测试性
代码可测试性的好坏,能反映出代码质量的好坏,如果代码的单测不好写,可能代码的设计有问题,反之完全不知道怎么下手去写单测或者费了大量的时间才完全覆盖,那么就可以说这段代码可测试性比较差。
如何学习设计模式?
编程方法论
从以下几个方面学习方法论,最后以方法论为指导,编写高质量代码。插图引自《设计模式之美》
写在最后
接下来就按照这个大纲一起持续学习设计模式~