一句话导读
在架构管理工作中,技术栈选型时一项非常重要的工作,它直接影响到公司整体的技术人员结构,对于一个公司,做好公司的技术栈选型,意味着公司技术栈的统一,公司的架构选型统一。如何做好技术栈选型,要考虑的因素比较多,如当前技术人员的技术技能,当前项目的需求、公司投入等等。
目录
一、为什么需要技术栈选型
1.统一技术栈
在一个公司或者一个团队中,每个人熟悉的技术栈可能千差万别,A项目可能会用vue+springboot开发,B项目可能用react+SSH开发,不能说谁比谁好,但是同一个公司或团队,使用不同的技术栈,对于团队的协作、维护成本的节约都没有好处。比如当A封装好一个前端模块,在B项目中却因为技术栈不一致而不能共用,又比如,公司可能需要针对A、B两个项目后端技术栈的不同而配置更多的运维人员。
2.技术栈选型
在公司内部,架构管理部门要对公司的技术栈做一定的约束,各个团队、项目要在这个约束内再去做对应的选型。根据公司当前的各个项目和未来的战略规划,架构管理部门的架构师要对现有技术栈、未来可能使用的技术栈做对应规划,如开发语言只能从java、Python等中选择,版本范围也要做限定。
- 提高开发效率:大家都熟悉的技术栈可以降低开发人员的学习成本,提高开发效率,缩短项目周期。
- 降低维护成本:一个优秀的技术栈可以减少后期的维护成本,提高系统的可维护性。
- 提高系统可扩展性:技术栈的选择会影响到系统的可扩展性,一个灵活的技术栈可以更好地应对业务的发展和技术的变化。
- 团队协作:合适的技术栈可以促进团队成员之间的沟通和协作,提高团队的执行力。
二、技术栈选型的原则
- 符合项目需求:技术栈的选择首先要满足项目的需求,包括功能需求、性能需求、安全需求等。
- 易于学习和使用:技术栈的选择要考虑团队成员的技能水平和习惯,选择易于学习和使用的技术和工具。
- 成熟稳定:技术栈的选择要选择成熟稳定的技术和框架,避免引入不必要的风险。
- 良好的社区支持:一个有良好社区支持的技术栈可以在遇到问题时得到及时的帮助和解决方案。
- 可持续性:技术栈的选择要考虑长远的发展,选择具有可持续性的技术和框架。
三、技术栈选型的策略
- 分析项目需求:首先要对项目的需求进行详细的分析,明确项目的目标和范围,为技术栈的选择提供依据。
- 调研市场上的技术和框架:通过查阅资料、参加技术分享会、咨询同行等方式了解市场上的技术和框架,对比各个技术的优缺点,为技术栈的选择提供参考。
- 试用和评估:在选择技术栈之前,可以先进行试用和评估,了解各个技术的实际应用效果,从而做出更加明智的选择。
- 制定技术栈清单:根据项目的需求和调研结果,制定一个初步的技术栈清单,包括所需的技术和框架。
- 评估和调整:在项目实施过程中,要对技术栈的使用效果进行评估,根据实际情况进行调整,确保技术栈与项目的匹配度。
四、形成技术栈选型规范
架构管理部门要针对公司做好技术栈选型,并形成技术栈选型规范,包括前端开发、服务端、中间件、数据开发、数据库、服务器等等。指导和审核各个技术团队的技术栈选择,在做架构检查的时候,该项规范要做为一个硬性指标,强制要求各团队按规范执行。如:
前端开发 | ||||
分类 | 名称 | 版本 | 执行策略 | 说明 |
web编程语言 | JavaScript | 建议 | WEB前端应用逻辑开发首选语言 | |
TypeScript | 建议 | 在JavaScript之上构建的WEB前端开发语言,支持严谨类型声明和语言风格。 | ||
web前端框架 | Vue | 2.0+ | 强制 | Web前端开发框架,国人开源,中文资料丰富,性能优异,更新活跃 |
安卓开发语言 | Java | 1.8 | 建议 | 功能强大、组件丰富、跨平台、面向对象、相关工具免费、技术人员众多,适合开发大型后台服务 |
kotlin | 1.7+ | 建议 | Kotlin可以编译成Java字节码、JavaScript、二进制代码(例如嵌入式设备或 iOS) | |
iOS | Objective-C | 13+ | 建议 | iOS开发主流语言之一,语言稳定,性能高 |
Swift | 5 | 建议 | iOS开发今几年新发布的开发语言,趋于稳定(官方主要推荐框架),新项目建可选此语言框架 |
关注公众号“Java架构管理”,获取全量技术栈表格。