【架构师】如何做技术选型?

简介: 技术选型无绝对优劣,关键在于“更合适”。需综合评估功能满足度、可扩展性、安全性、性能等非功能性需求,同时考量使用人数、社区活跃度、迭代速度、学习与维护成本,以及与现有技术体系的匹配度,权衡利弊后做出最优选择。

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

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


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


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


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


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


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


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


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


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

目录
相关文章
|
2月前
|
架构师 微服务
【架构师】微服务的拆分有哪些原则?
微服务拆分需遵循七大原则:职责单一、围绕业务、中台化公共模块、按系统保障级别分离、技术栈解耦、避免循环依赖,并遵循康威定律使架构与组织匹配,提升可维护性与协作效率。
303 4
|
2月前
|
消息中间件 Java 调度
深入探讨进程、线程和协程之间的区别和联系
本文深入解析进程、线程与协程的核心区别与联系,涵盖资源分配、调度机制、通信方式及性能对比。结合代码示例与实际场景,阐明三者在高并发系统中的协同应用,助你掌握现代并发编程设计精髓。(239字)
296 11
|
2月前
|
消息中间件 存储 负载均衡
【高可用】什么是异地多活、同城容灾?
异地多活与同城容灾均为提升系统高可用的分布式架构。前者实现跨地域数据中心实时同步与故障切换,保障全球服务连续性;后者聚焦同城内快速容灾,通过高速网络实现低延迟、高可靠的数据同步与负载均衡,适用于对延迟敏感的业务场景。
164 11
|
2月前
|
Java Spring
IDEA调出services窗口
本教程分两步指导:首先点击指定选项,然后在Templates中添加Spring Boot并应用,即可调出services窗口,快速完成配置。
194 11
|
2月前
|
Cloud Native Java API
Spring Boot 3.0 vs. 2.0
Spring Boot 3.0 带来革命性升级:全面支持 Java 17+ 与 Jakarta EE,引入原生编译、增强可观测性,推动云原生转型。相比 2.0,性能更强、启动更快、更现代。新项目应首选 3.0,老项目需逐步迁移,拥抱未来。
|
2月前
|
存储 JSON 运维
微服务架构下的日志“捕手”:构建高效的日志收集与分析体系
微服务架构下的日志“捕手”:构建高效的日志收集与分析体系
180 8
|
2月前
|
XML Java 开发者
springboot自动装配的基本原理
Spring Boot自动装配基于“约定大于配置”理念,通过@SpringBootApplication、@EnableAutoConfiguration与spring.factories机制,结合条件注解实现智能Bean加载。它根据依赖自动配置组件,大幅简化开发。其核心是AutoConfigurationImportSelector筛选符合条件的配置类,实现按需装配。开发者可专注业务,享受“开箱即用”的便捷体验。(238字)
|
2月前
|
缓存 监控 Java
用 Spring Boot 3 构建高性能 RESTful API 的 10 个关键技巧
本文介绍使用 Spring Boot 3 构建高性能 RESTful API 的 10 大关键技巧,涵盖启动优化、数据库连接池、缓存策略、异步处理、分页查询、限流熔断、日志监控等方面。通过合理配置与代码优化,显著提升响应速度、并发能力与系统稳定性,助力打造高效云原生应用。
505 3
|
2月前
|
消息中间件 安全 Java
java消费消息且保证消息不丢失
本文介绍Java中如何安全消费消息并防止消息丢失或篡改,涵盖Kafka与RabbitMQ的消息持久化、手动确认机制及偏移量控制,强调事务处理与元数据保留,确保消息完整性与可靠性。
155 0
|
2月前
|
缓存 监控 Java
拆解一个真实电商项目:微服务架构中的服务治理与性能优化
本课程以母婴电商重构为背景,系统讲解微服务架构落地实践。涵盖服务拆分、Nacos治理、分布式缓存、事务、限流熔断等核心问题,结合Spring Cloud Alibaba技术栈,提供完整项目代码与40小时实战视频,助力开发者掌握从单体到分布式架构的演进能力。
149 14