写点什么

架构师训练营—第二周学习总结

用户头像
Geek_shu1988
关注
发布于: 2020 年 09 月 27 日

架构师第二周讲述了框架设计的一些原则。


框架设计原则


软件设计的最终目的,是使软件达到“强内聚、松耦合”,从而使软件

  • 易扩展 - 易于增加新的功能

  • 更强壮 - 不容易被粗心的程序员破坏

  • 可移植 - 能够在多样的环境下运行

更简单 - 容易理解、容易维护与之相反,一个“不好的”软件,会发出如下“臭味”:

  • 僵硬 - 不易改变。

  • 脆弱 - 只想改 A,结果 B 被意外破坏。

  • 不可移植 - 不能适应环境的变化。

  • 导致误用的陷阱 - 做错误的事比做正确的事更容易,引诱程序员破坏原有的设计。

  • 晦涩 - 代码难以理解。

  • 过度设计、copy-paste 代码。


OCP 原则

OCP - Open/Closed Principle

  • 对于扩展是开放的(Open for extension)

  • 对于更改是封闭的(Closed for modification

  • 简言之:不需要修改软件实体(类、模块、函数等),就应该能实现功能的扩展。

依赖倒置原则(DIP)

• 高层模块不能依赖低层模块,而是大家都依赖于抽象;

• 抽象不能依赖实现,而是实现依赖抽象。

Liskov 替换原则(LSP)
  • 子类型(subtype)必须能够替换掉它们的基类型(base type)

单一职责原则(SRP)
接口分离原则(ISP)


框架

不同领域的框架

  • 微软公司为 Windows 编程开发了 MFC 框架。

  • Java 为它的 GUI(图形用户界面)开发了 AWT 框架。

  • 还有许多开源的框架:MyBatis,Spring 等。

  • Web 服务器也是框架:Tomcat

结合工作实践的一些领悟


工作中,常常被研发人员抱怨需求总是改来改去,搞得代码总是发生变化。能不能把需求弄清楚再研发。以前遇到这些问题有点无法应对,现在有一点点领悟。


软件开发最大的挑战本身就在于需求的变更,正是因为需求永远在发生变化,框架和架构的设计才会变得如此重要。如果研发人员抱怨需求变更导致代码重写,应该反思的不是产品经理,而是研发本身。软件设计如果因为需求变更就基本重写,这样的软件本身就存在巨大的问题。


用户头像

Geek_shu1988

关注

还未添加个人签名 2020.02.02 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营—第二周学习总结