zoukankan      html  css  js  c++  java
  • 设计模式学习笔记(1)-大纲及目的

    学习目的

    1. 应付面试
    2. 如果你是一个有追求的程序员(告别烂代码)
    3. 复杂代码的设计和开发能力
    4. 读源码,学框架事半功倍
    5. 职场发展

    如何评判代码质量的好坏(常用评价)

    1. 可维护性

      修改bug时候是否会破坏原有设计,是否会引入新的bug

    2. 可读性

      任何傻瓜都会编写计算机能理解的代码,好的程序员能够编写人能够理解的代码 -------Martin Fowler

      评价可读性,代码是否符合编码规范,命名是否达意,注释是否详尽,函数是否长短合适,模块划分是否清晰等等

    3. 可扩展性

      表示代码应对未来需求变化的能力(需求的改变是不变的真理),即代码是否预留功能扩展点

    4. 灵活性

      代码可以应付业务内的大多数场景等

    5. 简洁性

      KISS原则:keep is Simple,Stupid

      尽量保持代码简单,逻辑清晰

    6. 可复用性

      尽量减少重复代码的编写,复用已有的代码,例如通过面向对象的继承,多态的目的之一,重构技巧之解耦,高内聚,模块化,设计原则之单一职责原则等达到最终效果

    7. 可测试性

      容易写单元测试,TDD开发

    面向对象、设计原则、设计模式、编程规范、重构之间的关系

    • 面向对象
      • 四大特性:封装、继承、抽象、多态
      • 与面向过程的区别和联系
      • 面向对象分析,面向对象设计,面向对象编程
      • 接口抽象类的区别以及其各自适用场景
      • 基于接口而非实现编程
      • 多用组合少用继承的设计思想
      • 面向过程的贫血模型和面向对象的充血模型
    • 设计原则
      • SOLID原则-SRP 单一职责原则
      • SOLID原则-OCP 开闭原则
      • SOLID原则-LSP 里氏替换原则
      • SOLID原则-ISP 接口隔离原则
      • SOLID原则-DIP 依赖倒置原则
      • DRY原则、KISS原则、YAGNI原则、LOD法则
    • 设计模式
      • 创建型:单利模式、工厂模式(工厂方法和抽象工厂)、建造者模式
      • 结构型:常用(代理模式、桥接模式、装饰者模式、适配器模式),不常用(门面模式,组合模式,享元模式)
      • 行为性:常用(观察者、模板、策略、职责链、迭代器、状态),不常用(访问者、备忘录、命令、解释器、中介)
    • 编程规范
      • 命名注释参数等,主要是解决代码的可读性问题
    • 代码重构
      • 重构的目的、对象、时机、方法
      • 保证重构不出错的技术手段:单元测试和代码的可测试性
      • 两种不同规模的重构:大重构和小重构
    • 联系
      • 面向对象是很多设计原则、设计模式实现的基础
      • 设计原则是指导代码设计的一些经验
      • 设计模式是在代码设计过程中,前人总结出来的解决方案或设计思路,设计原则比设计模式更抽象
      • 编程规范主要解决代码的可读性问题,相对于设计模式更加具体和偏重细节
      • 重构是利用面向对象、设计原则、设计模式、编码规范等理论保持代码质量

    附上大牛课程,大家可以直接去大牛那学习

    http://gk.link/a/10fWa

    金钱和自由相比,不值一提
  • 相关阅读:
    移动端阻止事件冒泡需要注意!
    JavaScript闭包
    JS原型与原型链终极讲解
    逐行分析jQuery源码
    jQuery源码分析-03构造jQuery对象-源码结构和核心函数
    screenX clientX pageX的区别
    JSON.stringify 语法实例讲解
    pipenv 简要指南
    webpy简单使用
    初识Dash -- 构建一个人人都能够轻松上手的界面,操控数据和可视化
  • 原文地址:https://www.cnblogs.com/roadzhao/p/12290385.html
Copyright © 2011-2022 走看看