不良设计
不动性:应用程序难以重用
刚性:任何小的修改都会导致软件的大多部分必须进行相应改动,牵一发动全身
脆弱性:任何更改都会导致先有系统变得非常容易崩溃
粘滞性:由于架构层面的修改非常困难,因此修改必须由开发人员在代码或环境本身中进行
反模式分类
软件开发反模式
软件架构反模式
软件开发反模式
1、意大利面条式代码
控制流程错综复杂
2、金锤
由于某个解决方案(技术,设计或模块)在多个项目中效果不错,就把它推广到更多的地方
金锤:使用成熟的解决方案,不管是不是满足适用性
3、熔岩️流
一段用不到的代码,害怕修改了会破话其他东西,随着时间流逝,这段代码会一直留在软件中并固化其位置
4、复制粘贴式编程
没有考虑这些代码是否经过了最大化的优化,是否真正适合当前场景
软件架构反模式
1、重新发明轮子
如果已经有相同的解决方案,在遇到的时候可以重用方案,不必重新发明轮子
2、供应商套牢
产品公司依赖于供应商提供的某些技术,难以摆脱这些技术
3、委员会设计
没有相应技能或相应产品设计经验的技术专家设计的特性系统
参考
《Python设计模式第2版》第十一章 反模式