写点什么

架构师训练营 - 总结 2

发布于: 2020 年 06 月 18 日
架构师训练营-总结2

1.老师做架构工作的经历启示

<1>破局的能力

<2>主动发现问题和解决问题的能力

<3>善于学习,主动表达

<4>不要怕review时别人提出问题

2.面向对象编程不等于用面向对象的语言编程

<1>面向对象的编程应充分运用面向对象的语言的三个特征,封装,继承与多态,尤其是需要利用多态来设计软件系统,降低软件各模块的耦合性。

<2>用面向对象的软件设计模式来构建系统

<3>面向接口编程而不是面向实现编程

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

<1>如同框架结构的的大厦框架

<2>简化了应用开发者的工作

<3>实现了多种设计模式,使应用者不需花费太大力气,就能设计出结构两回合的程序

4.面向对象设计基本原则

<1>单一职责原则类的职责要单一,不能将太多的职责放在一个类中

<2>开闭原则一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。

<3>里氏代换原则定义  所有引用基类(父类)的地方必须能透明地使用其子类的对象。

<4>依赖倒转原则高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。

<5>接口隔离原则定义客户端不应该依赖那些它不需要的接口。

<6>合成复用原则尽量使用对象组合,而不是继承来达到复用的目的。

<7>迪米特法则(Law of Demeter, LoD)又称为最少知识原则(Least Knowledge Principle, LKP)它有多种定义方法,其中几种典型定义如下:

(1) 不要和“陌生人”说话。英文定义为:Don't talk to strangers.

(2) 只与你的直接朋友通信。英文定义为:Talk only to your immediate friends.

(3) 每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。英文定义为:Each unit should have only limited knowledge about other units: only units "closely" related to the current unit.

5.Flower实现异步的基础是Akka的actor模型

<1>Akka 是一个用于在 JVM 上构建高并发、分布式和容错的事件驱动应用程序的运行时工具包。Akka 既可以用于 Java,也可以用于 Scala。

<2>Actors 是 Akka 的执行单元。Actor 模型是一种抽象,它让编写正确的并发、并行和分布式系统更加容易。

<3>使用 Actor 模型的好处

Akka 的以下特性使你能够以直观的方式解决困难的并发性和可伸缩性挑战:

  • 事件驱动模型:Event-driven model,Actor 通过响应消息来执行工作。Actor 之间的通信是异步的,允许 Actor 发送消息并继续自己的工作,而不是阻塞等待响应。

  • 强隔离原则:Strong isolation principles,与 Java 中的常规对象不同,Actor 在调用的方法方面,没有一个公共 API。相反,它的公共 API 是通过 Actor 处理的消息来定义的。这可以防止 Actor 之间共享状态;观察另一个 Actor 状态的唯一方法是向其发送请求状态的消息。

  • 位置透明:Location transparency,系统通过工厂方法构造 Actor 并返回对实例的引用。因为位置无关紧要,所以 Actor 实例可以启动、停止、移动和重新启动,以向上和向下扩展以及从意外故障中恢复。

  • 轻量级:Lightweight,每个实例只消耗几百个字节,这实际上允许数百万并发 Actor 存在于一个应用程序中

这个工具包还待学习



用户头像

还未添加个人签名 2020.05.13 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-总结2