技术选型
项目因素
明确现在项目的规模、重要程度。 项目的需求(特别是非功能性需求)也会限制技术的选型
团队因素
考虑团队的因素,也就是人的因素,考虑团队人员的技术组成。 考虑招聘的因素,对于特别小众的技术,可能会因为招不到人而影响到对公司的业务支持。
技术因素
技术特性考虑(易用性、可维护性、可扩展性、性能等)、技术成熟度、社区活跃度、架构匹配和演化等。 github上的star数,可以作为一个重要的参考。
如何进行技术选型
- 首先明确选型的需求和目的,最好能列出必须要考虑的各种因素以及评判标准。
- 寻找候选技术和产品。这时范围可以尽量的广一些,搜集尽可能多的候选技术和产品。
- 初步筛选。把一些由于各种限制无法选择或者明显不可能的技术或产品排除,筛选3个左右备选方案。
- 做一些详细的调查和分析。可以列个技术选型分析表
技术选型的注意点
- 一定要进行可行性分析,如果不太确定,做个Demo验证一下,如果项目进行到一半,发现原来设想的方案不可选,那会是非常痛苦和浪费时间的事情。
- 不要有思维定式,也不要赶时髦。
- 随着业务发展,很多架构需要不断升级,所以一定要考虑未来如果替换某项技术,是否会很麻烦。可以选择一些标准技术或产品,或者在应用中部署一个适配层,方便未来适配其他技术,自由插拔。
- 架构应该尽可能统一,一个领域避免引入太多相同功能的技术产品。