对于系统设计,最近有一些小小的领悟,现总结部分经验,开一个话题,今后持续更新。
2010-11-19
1. 系统设计初期要符合初期需求,不要过度考虑华而不实的扩充,会导致初期开发迷惑及任务膨胀
2. 系统设计不是需求的再描述,必须拍板关键的技术选型
3. 调用关系不要出现三角关系
4. 系统设计必须从能够从设计层面识别程序模块
5. 分层系统适用于从上到下,再从下到上的过程,中间层必须是封闭的,否则就是星型系统。
6. 使用数据库隔离耦合是个不错的选择,需要优先考虑
7. 配置库需要在架构设计层面体现
8. 调用关系箭头方向是主动者指向被动者,必须在设计上明确
9. 所有的系统尽量被动。(复杂系统尽量被动,简单系统可以主动)
10. 不要盲目使用分布式集群运算,看是否有强烈的要求
11. 日志必须可以丢弃,不然就是业务
12. 分布式部署系统,刚开始设计就应考虑自动升级
13. 尽量使用状态描述系统,能不记录历史就不记录
2010-11-24
1. 管理者如果之下有N个不同类型的执行者,执行者占用进程比占用线程好。(通过操作系统进程来保护架构的运行,否则可能一同崩溃)
2. 带拓扑结构数据传递可以抽成脚本语言来传递(设计模式-Interpreter)
3. 尽量不要设计回调结构
4. 任务执行模型若保证任务的可重入,则可大大缩减调度系统的复杂度
5. 对系统资源占用的评估必须以时间段取平均值,不能以点为单位来评估