软件设计
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 依赖倒置原则,高层模块不应该依赖于低层模块的实现,而是依赖于高层抽象。
参考文章
作者 | 链接 |
---|---|
陈皓 | 一些软件设计的原则 |