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

117 阅读3分钟

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

本笔记内容是第九课的客户端架构设计及应用。

1 架构面临的问题

一个产品可以分为孕育期、婴儿期、学步期、青春期、壮年期、稳定期、贵族期、官僚期、消亡期

架构面临的问题随着上面的时期不同,不断变化,具体如下:

孕育期:想法的诞生。

婴儿期:关注抽象建模方法、技术选型。

学步期:快速融合代码,确定工程架构。

青春期~壮年期:适应业务变化,应对代码膨胀。

稳定期:不断重构优化,落地标准规范。

贵族期:代码成为“屎山”。

官僚期:冗长而无尽的流程、互相拼命甩锅。

消亡期:代码腐朽,躺平摆烂逃离,重新来过。

尽管产品有这样的周期规律,但并没有一个理想架构,可以解决不同阶段的问题。架构应针对不同问题,在发展变化中产生。

开发中,尽管技术领域不同,但有公共问题和交叉问题。这是一些长期积累之后抽象的部分,是方法论,来源于实践,也归于实践。而技术领域之间的差异,需要在其领域中拥有长期积累而获得的经验。

产品越来越复杂是客观规律。随着产品的逐渐复杂,理解成本逐渐变高,预测难度也变大。业务和技术的变化是不可预测的,不能幻想通过简单的架构解决复杂问题,简约是架构的目标,简约与简单不同。

此外,期望高、责任大、事情难、疗效慢也是架构面临的挑战。

移动端设备资源有限;其架构设计是符合小屏幕的。

2 常见的架构手段

可了解的知识方向:

(1)GoF《设计模式》

(2)小的架构手段

  • MVC/MVP/MVVM
  • AOP
  • IOC

(3)大的架构手段

  • 单体架构
  • 分离架构
  • 服务化架构
  • 微服务架构
  • 领域驱动架构

架构手段的共同目标是高内聚低耦合。需要根据业务场景选择合适架构,不能炫技滥用。复杂系统是多种架构模型的组合体。

3 实例

课上通过实例,结合上文产品的生命周期对各阶段做出了介绍。

架构随业务发展从简单到复杂是规律,但没有必要一开始就用复杂的架构解决简单问题。

如果不做任何规范,代码很容易走向腐朽状态,因此需要利用规范持续重构,尽量地对抗架构衰老,尽力避免走向官僚期、消亡期。

4 成为优秀架构师

定义问题->确定架构->方案落地->结果复盘。越在前面的步骤越难。

勤于编码。

有架构追求。

5 总结

本节课老师拥有丰富的经验,首先介绍了产品的生命周期和架构需要解决的问题,通过实例讲述加深了理解,同时通过老师的了解可以体会到架构在整个产品的重要作用。

架构需要长期技术积累。既要在自己的专业领域拥有较深的沉淀,同时也要了解掌握方法论、拥有通用实力。