架构师训练营 - 第二周架构师实现自己架构的主要手段

发布于: 5 小时前

一. 智慧老师的架构师第一步经历分享总结

智慧老师分享自己早期工作中第一次做架构师角色的经历,本来老师在团队中职位只是一个普通的开发人员,但是智慧老师发现了问题,并主动向领导提出来,获得了一次尝试设计架构的机会,老师把握机会顶住压力,作出了架构设计。并通过评审。成功的在那次项目中担任了架构师的角色。

最后老师总结到,要想成为架构师,必须要有一种破局的能力。要敢于作出一般人不敢做的事情。

听了智慧老师的经历,仔细思考了一下,什么是破局能力:

  • 敢于做出打破当前局面的事情,作出非常的决定。

  • 顽强的抗压能力,逆流而上,达到突破。

  • 一定的技术能力基础支撑。

二 软件框架的基本概念,框架与工具的区别

框架是用来实现某一应用的结构性的程序,是对某一类架构方案可复用的设计与实现

  • 如同框架结构的大厦的框架

  • 简化应用开发者的工作

  • 实现多种设计模式,是应用开发者不需要会太大的力气,就能设计出结构良好的程序来

工具是实现某些特定功能的类或类的集合。

框架与工具的本质区别:

框架是不需要使用者去主动调用框架的代码。

工具一般是一些有特殊功能的类,需要开发者去主动调用工具完成特定的功能。

三. 面向对象设计目的与原则

1 面向对象设计的目的

  • 强内聚、低耦合、从而使系统

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

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

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

  • 更简单 - 容易理解、容易维护

  • 与之相反,一个“不好的”软件会有以下“臭味”:

  • 僵硬 - 不易改变。

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

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

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

  • 晦涩 - 代码难以理解

  • 过渡设计、copy-paste 代码

2 面向对象设计原则(SOLID)

1. 开闭原则(OCP)

OCP - Open/Close Principle

  • 对扩展开放

  • 对更改封闭

如何做到? 运用抽象

2. 依赖倒置原则(DIP)

DIP - Dependency Inversion Principle

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

  • 抽象不能依赖实现,二是实现依赖抽象

如何做到? 高层定义接口,低层去实现 。而不是高层调用低层定义的接口。

3. 里氏替换原则(LSP)

里氏替换原则说明了 一个正确的继承应该符合什么样的原则。

  • 子类型必须能够替换掉他们的基类型,使用基类的地方一定可以使用子类。

4. 单一职责原则(SRP)

SRP - Single Responsibility Principle

  • 一个类,只能有一个引起它变化的原因(一个职责就是一个变化的原因)

5. 接口隔离原则(ISP)

ISP - Interface Segregation Principle

  • 不应该强迫客户程序依赖他们不需要的方法

单一职责和接口隔离的关系

  • 都与提升程序"内聚性"有关

  • 单一职责指出应该如何设计一个类

  • 接口隔离指出应该如何设计一个接口

用户头像

zcj

关注

还未添加个人签名 2019.10.12 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 - 第二周架构师实现自己架构的主要手段