美文网首页
A Philosophy of SoftwareDesign

A Philosophy of SoftwareDesign

作者: SailCoding | 来源:发表于2022-04-05 18:21 被阅读0次
    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

    相关文章

      网友评论

          本文标题:A Philosophy of SoftwareDesign

          本文链接:https://www.haomeiwen.com/subject/hjoksrtx.html