✅如何做技术选型?

典型回答

技术选型,没有最好,只有更合适。

当我们要做技术选型的时候,通常需要考虑很多因素,然后在总和对比各个因素,最终选择一个相对比较合适的技术方案。

一般需要考虑以下几个因素:

首先就是看一个工具、或者框架的功能是否能够满足业务、技术需求,这是一个大的前提,如果不能满足需求,有再多的优点都没用。而满足需求又分为多个方面,一个是当前的需求,一个是未来可能会需要的需求,所以这就需要开发者或者架构师仔细去对比各个方案的功能列表,从中选择更加适合自己团队的。

功能符合的话,其次还要看这个技术使用的人多不多,如果用的人多,那么当我们使用过程中,遇到问题的话,就能很快的找到答案。

一般来说,用的人多的技术,bug就少一些,开源社区也更加活跃一些,那么,他的更新迭代速度,以及问题的解决速度也就更快一些。这些对于生产环境中使用某个技术来说还是比较重要的。

提到bug,这就需要考虑一个技术在非功能性需求以外的一些基本要求,比如可扩展性、安全性、性能等,这些可能在短期影响不大,但是随着业务的逐渐增长,这些都可能成为瓶颈。

另外,在成本上也是需要重点考量的,成本包括很多,使用成本、学习成本、迁移成本、维护成本等等,不仅仅眼前要付费的叫成本,人员的上手速度、后期的迭代维护,这些都是成本。有很多东西,用起来免费,但是学习成本很高,后期问题也多,那也并不一定是最佳选择。

还有一点也很重要,那就是引入的这项新技术或者框架,和公司内部现有技术体系的匹配度怎样么?不能说全公司都用kafka,你非要用rocketmq吧?

所以说,做一个技术选型,需要在:功能性、非功能性需求、是否足够成熟、使用的人多不多、开源社区是否活跃、学习成本,使用成本,维护成本,以及和现有技术的匹配度如何。

原文: https://www.yuque.com/hollis666/xkm7k3/nqso1dkxp2ywbohg