实现一个大的系统,需要很多系统/模块,有些是存在的、开源的,如何选型,成为节约成本的一个重要方面。
下面就当前一个项目应用的原则分享如下(不深刻,但实用):
1. 功能和性能满足的情况下,哪种学习曲线最短。
2. 如果功能性能有所取舍,各有所长,不妨只找出可能最重要的两三个长处,两三个短处,尽量可以征求需求工程师意见,给这些不妨打分。一个基本原理:先简单后通用。
3. 如果难以取舍,考虑如果使用以后,更换系统的代价,选择被替换代价最小的。
4. 设计上,抽象一层/一个子系统,避免整个系统依赖于被选型的产品。