客户端架构设计及应用|青训营笔记

132 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第5天

(内容为《客户端架构设计及应用》课程笔记)

一、课程板块

01.架构面临的问题---02.常见的架构手段

03.架构演进的例子---04.成为优秀架构师

二、主要内容

架构面临的问题

·不同生命阶段各侧重点

产品都有一定的生命周期,在上升的成长期间,架构需要考虑如何加快成长速度,稳步进行增长。而在衰退期则要重点关注产品的老化,寻找思路对抗与减缓衰老。

·不同技术领域各有技术栈

成熟的产品需要由多端共同完成,各个不同的端都有不同的语言与框架,端与端之间还有部分交叉问题、公共问题,需要架构者进行协调。

·架构复杂度随业务发展成倍提升

随着产品功能的发展,代码量逐步增多,理解代码的时间成本也变得更大,对未来业务方向的预测难度亦会显著提升。

·期望高、事情难、责任大、疗效慢...

常见的架构手段

GoF设计模式

设计模式是为解决某一类普遍存在的问题而提供的一种解决方案。GoF名称来源于设计模式的经典名著《设计模式——可复用面向对象软件的基础》的四位作者, 即四人组,简称GoF。

MVC/MVP/MVVM

这三种架构模型各有优点。

MVC中的模块划分明确,便于维护。

MVP中View与Model完全分离,适合单元测试。

MVVM中View与Model只包含数据与业务逻辑,没有UI,方便单元测试。

更大的架构手段

较大的架构手段不在于代码的小处,而是从更为整体的宏观着眼,具体方式可见下图。

image (4).png

架构演进的例子

较为完善的架构成品,往往并不是一蹴而就,需要经过不同时期的逐渐演进,每个时期都有各自的注重点。

孕育期

--产品的孕育期不追求复杂的结构,而尝试初步达成一个简单的框架,之后一点点完善。这时需要架构的是一个简单的个体。

婴儿期 | 学步期

--到达婴儿期,产品个功能模块数增大,需要进行板块的拆分。

--学步期时,业务场景增多,需要拆分业务,分层架构。

青春期 | 壮年期 | 稳定期

--业务和模块数量多且杂糅,需要降低两两间的耦合度,使用事件驱动架构。

--壮年期使用微内核架构,将插件灵活地运用到有需求的宿主,避免业务变得更加内聚。

--产品体量规模与固定用户群体趋于稳定,团队内新旧技术栈共存,运用微服务架构使服务之间隔离。

成为优秀架构师

万事开头难,架构师面对的最需精力的工作常是最初的架构工作。

从厘清问题类别,定义好问题性质,到分清各个问题到不同的层级进行解决,再到透过现象看到问题的本质。多码多想,坚持自己架构的追求,不松懈不放任,这些都是优秀架构师成长路上所需的良好品质。