1、架构
- DDD:领域驱动设计。其实本质上就是不同的事情分开,解耦。从最高的业务层次解耦。分下去开发自然就是解耦的。
- 架构思维:
- 多维思维:使用矩阵、图处理复杂事务,单纯大脑枯死冥想可能很难构造清晰的逻辑。
- 辩证思维
- 抽象思维
- 架构图
- 逻辑架构 静态图有包图、类图、对象图,动态图有序列图、协作图、状态图、活动图 ,逻辑架构的核心设计任务是模块划分、接口定义、领域模型细化。
- 开发架构 开发架构关主要关注系统源代码、第三方SDK、使用的框架、中间件、工具包。
- 运行架构 运行架构的着重考虑运行期质量属性,关注点是系统的并发、同步、通信等问题,这势必涉及到进程、线程、对象等运行时概念,以及相关的并发、同步、通信等。
- 物理架构 物理架构的设计着重考虑安装和部署需求,关注点是目标程序及其依赖的运行库和系统软件最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性、持续可用性、性能和安全性等要求。
- 数据架构 数据架构的设计着重考虑数据需求,关注点是持久化数据的存储方案,不仅包括实体及实体关系数据存储格式,还可能包括数据传递、数据复制、数据同步等策略。
-
系统运维
2、代码
- 开发:
- 使用JFR性能分析工具
- Reactive、Aaka
- gitpod web-ide
- 测试:使用TestableMock开源工具,LLT mock变得非常简单
3、前沿技术
- Rust,解决了内存泄露等问题,但是编码和性能都像C++,而且要自己处理生命周期。编译比较困难。
- AI、氮化镓(GaN)、脑机接口、云原生、数据原生