计算机CPU体系架构的设计RISC最终战胜了CISC,生成如今PC机的主流。
软件架构设计也一样,在完成同样事情的情况下,力争越简单。
今天晚上和原公司首席科学家及老总促膝长谈到2点钟才回家,
将我自认为比较满意简洁的设计砍得七零八落,最终得出一个极为精简优雅的架构,
得出设计理念收获如下:
1. 流水作业级调度基于文件系统/共享文件系统最为简单,可移植度也最高(语言/平台);
2. 数据和索引/关联数据是一个整体,尽量不要设计上让他们分开(尤其是数据库ID映射到资源路径的方式),应该尽量考虑让它们存储方式也统一,然后数据库再做冗余。
3. 文件命名应该严格推敲,遵循 能体现业务、可读。甚至文件排序都可以考虑到任务排序;
4. 文件资源抢占、锁都可以基于文件名修改、临时文件;
5. 不要企图一开始就将业务考虑得面面俱到,要知道,很多时候业务是伴随着系统成长而成熟的。在初期设计、实现花太多功夫有可能成为无用功。应该将设计重点放在对不同的业务扩充度上面。
6. 使用轮询有时是很睿智的方法,它能极大程度降低系统耦合。其实就类似于观察者模式。
7. 架构设计时可以考虑给出关键部分的伪代码。
很兴奋,一个令人头疼的烂摊子改造工程,居然被设计得这么优雅。
不得不从心底佩服老天!