跳到主要内容

软件设计

Create by fall on 24 Dec 2024 Recently revised in 24 Dec 2024

设计一个软件需要什么

一个软件需要运行,测试,打包,格式化,自动部署,跨平台,报错提醒,边界处理,兼容处理,i18n,颜色主题,数据存储,性能优化,等等

以及在此之上可能还需要分支管理,版本控制

设计原则

如何更好的设计一个应用

  • Don’t Repeat Yourself 不要重复

  • Keep It Simple, Stupid,让方法保持简单,甚至简单到小白都能懂

  • Program to an interface, not an implementation,面向接口编程,而不是实现

  • You Ain’t Gonna Need It,别因为下次需要在这次编程中实现

  • Law of Demeter,在模块的最顶层询问内容,而不是其中的一部分

  • Common Closure Principle,修改一个功能时,限制在最小的包中

  • Common Reuse Principle,共同重用原则,如果你重用了其中的一个类,就重用全部。

  • Hollywood Principle,组件处在一个容器当中,由容器负责管理

  • High Cohesion & Low/Loose coupling,高内聚, 低耦合

  • Convention over Configuration,惯例优于配置,如果没有自己的规则,使用惯例即可

  • Separation of Concerns,关注点分离,将问题拆解成更小的多个问题,以便于解决

  • Acyclic Dependencies Principle,无环形依赖

S.O.L.I.D 原则

  • Single Responsibility Principle 单一职责原则一个类,只做一件事,并做好
  • Open / Closed Principle 开闭原则开发封闭原则核心:模块式可扩展,但不可修改的,对扩展开放,对修改封闭
  • Liskov substitution principle 子类应该可以替换任何基类能够出现的地方(子类只扩展基类,不修改基类
  • Interface Segregation Principle 接口隔离原则,把功能实现在接口中,可插拔,而不是由中心控制全部实现
  • Dependency Inversion Principle 依赖倒置原则,高层模块不应该依赖于低层模块的实现,而是依赖于高层抽象。

参考文章

作者链接
陈皓一些软件设计的原则