A Philosophy of SoftwareDesign

2022-04-05  本文已影响0人  SailCoding
A Philosophy of SoftwareDesign

复杂的本质

如何避免复杂

  1. 仅仅可工作的代码还远远不够
    1.1 战术编程
    1.2 战略编程
  2. 模块要有深度
    2.1 具有通用功能的模块更具深度
  3. 不同的层,不同的抽象
  4. 复杂性下移
  5. 合并还是分离
  6. 确保错误终结
  7. 设计两次:peter原理

为什么要写注释

困扰程序员的两大世界性难题:

  1. 别人的代码没有注释
  2. 别人让我给我的代码写注释

注释应当用于描述代码中不易理解的部分

选择命名

给变量,类,模块,文件起名字很难,真的很难。好的命名能使得软件设计更容易理解,差的命名更容易产生Bug。

注释先行

修改现有代码

一致性

一致性在软件设计里很重要,包括:

  1. 命名
  2. 代码风格
  3. 接口
  4. 设计模式
  5. 常量

可以使用以下的方法来保证一致性:

  1. 文档
  2. 利用工具/代码审查来强制
  3. 入乡随俗
  4. 不要随便改变命名约定

代码应当显而易见

软件开发的趋势

John对软件开发重的一些趋势和问题做了总结:

  1. 面向对象,对于继承,基于接口的继承要优于基于实现的继承
  2. 敏捷,敏捷的一个潜在问题是导致“战术性编程”为主导,导致系统的复杂性增加
  3. 单元测试
  4. 测试驱动,测试驱动的问题是关注功能,而非找到最佳设计
  5. 设计模式,设计模式的问题可能导致过度应用
  6. Getter/Seeting, 这个模式可能是冗余的,也许不如直接暴露成员更简单

为性能做设计

https://zhuanlan.zhihu.com/p/43538597

上一篇下一篇

猜你喜欢

热点阅读