主题
面试速答(先看这里)
**一句话结论:**当我们要做技术选型的时候,通常需要考虑很多因素,然后再综合对比各个因素,最终选择一个相对比较合适的技术方案。
60秒标准回答:
技术选型,没有最好,只有更合适
当我们要做技术选型的时候,通常需要考虑很多因素,然后再综合对比各个因素,最终选择一个相对比较合适的技术方案
一般需要考虑以下几个因素
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**首先就是看一个工具、或者框架的 功能是否能够满足业务、技术需求 ,这是一个大的前提,如果不能满足需求,有再多的优点都没用。
- **要点2:**功能符合的话,其次还要看这个 技术使用的人多不多 ,如果用的人多,那么当我们使用过程中,遇到问题的话,就能很快的找到答案。
- **要点3:**一般来说,用的人多的技术,bug就少一些, 开源社区 也更加活跃一些,那么,他的 更新迭代速度 ,以及 问题的解决速度 也就更快一些。
- **要点4:**提到bug,这就需要考虑一个技术在非功能性需求以外的一些基本要求,比如 可扩展性、安全性、性能等 ,这些可能在短期影响不大,但是随着业务的逐渐增长,这些都可能成为瓶颈。
- **要点5:**所以说,做一个技术选型,需要在:功能性、非功能性需求、是否足够成熟、使用的人多不多、开源社区是否活跃、学习成本,使用成本,维护成本,以及和现有技术的匹配度如何。
**记忆锚点:**bug → 的这项新技术或者框架 → rocketmq → 更新迭代速度 → kafka → 开源社区
关键取舍:
- 提到bug,这就需要考虑一个技术在非功能性需求以外的一些基本要求,比如 可扩展性、安全性、性能等 ,这些可能在短期影响不大,但是随着业务的逐渐增长,这些都可能成为瓶颈。
易错提醒:
- 一般需要考虑以下几个因素: 首先就是看一个工具、或者框架的 功能是否能够满足业务、技术需求 ,这是一个大的前提,如果不能满足需求,有再多的优点都没用。
- 不能说全公司都用kafka,你非要用rocketmq吧?
加分表达:
- 功能符合的话,其次还要看这个 技术使用的人多不多 ,如果用的人多,那么当我们使用过程中,遇到问题的话,就能很快的找到答案。
- 这些对于生产环境中使用某个技术来说还是比较重要的。
追问准备:
- 还有一点也很重要,那就是引入的这项新技术或者框架, 和公司内部现有技术体系的匹配度 怎样么?
- 不能说全公司都用kafka,你非要用rocketmq吧?
典型回答
技术选型,没有最好,只有更合适。
当我们要做技术选型的时候,通常需要考虑很多因素,然后再综合对比各个因素,最终选择一个相对比较合适的技术方案。
一般需要考虑以下几个因素:
首先就是看一个工具、或者框架的功能是否能够满足业务、技术需求,这是一个大的前提,如果不能满足需求,有再多的优点都没用。而满足需求又分为多个方面,一个是当前的需求,一个是未来可能会需要的需求,所以这就需要开发者或者架构师仔细去对比各个方案的功能列表,从中选择更加适合自己团队的。
功能符合的话,其次还要看这个技术使用的人多不多,如果用的人多,那么当我们使用过程中,遇到问题的话,就能很快的找到答案。
一般来说,用的人多的技术,bug就少一些,开源社区也更加活跃一些,那么,他的更新迭代速度,以及问题的解决速度也就更快一些。这些对于生产环境中使用某个技术来说还是比较重要的。
提到bug,这就需要考虑一个技术在非功能性需求以外的一些基本要求,比如可扩展性、安全性、性能等,这些可能在短期影响不大,但是随着业务的逐渐增长,这些都可能成为瓶颈。
另外,在成本上也是需要重点考量的,成本包括很多,使用成本、学习成本、迁移成本、维护成本等等,不仅仅眼前要付费的叫成本,人员的上手速度、后期的迭代维护,这些都是成本。有很多东西,用起来免费,但是学习成本很高,后期问题也多,那也并不一定是最佳选择。
还有一点也很重要,那就是引入的这项新技术或者框架,和公司内部现有技术体系的匹配度怎样么?不能说全公司都用kafka,你非要用rocketmq吧?
所以说,做一个技术选型,需要在:功能性、非功能性需求、是否足够成熟、使用的人多不多、开源社区是否活跃、学习成本,使用成本,维护成本,以及和现有技术的匹配度如何。