美文网首页产品运营
技术选型的考虑与分析

技术选型的考虑与分析

作者: Cheava | 来源:发表于2018-03-04 12:32 被阅读145次

由于现在互联网技术快速发展,无论前端还是后端,各领域的技术及框架层出不穷,百花争艳,例如后端的消息队列,就有RabbitMQ、Kafka、Apollo、RocketMQ等,甚至身为NoSql的redis都可以插一脚。如何针对开发需要,选用合适的技术,这值得下一定功夫。

需求分析

做事之前,最重要的就是准确获取需求。技术需求相当于一把标尺,把不适用业务场景的技术排除在外。而技术选型的需求,一般是根据业务需求和行业特性来决定的,例如金融行业,对正确性、稳定性、安全性等要求高,而互联网行业则要求快速迭代,性能高。

业务需求

  • 技术领域: 整套技术方案?RPC? 消息队列?………

  • 技术要求:吞吐量?可靠性?功能性?跨平台?多语言支持?……

  • 行业需求:满足行业协议?满足技术领域协议(如AMQP、JMS1.1规范等)?……

行业特性

资源统筹

公司语言:Java? C#? 多种语言协作?……

公司技术栈:Spring全家桶? Vert.x? ……

团队技术实力:按部就班?有自研能力?参差不齐?

开发时间:临时任务?时间急迫?时间从容?

人才培养:同样符合要求的技术,差别只是相对于成员的难度不同,是否采用有难度的技术进行攻关?

选型要点

要点主要是整体模型涵盖开源许可证、行业认可度、产品活力、服务支持、安全性、兼容性、可维护性、可扩展性、功能性、可靠性、易用性、性能效率等12大类评估属性
参照以下链接:
开源软件成熟度评测报告-分布式消息中间件开源
流行的rpc框架benchmark 2018新春版

许可证

用户使用开源软件进行商业化时,需遵守开源软件许可证条款的规定。

  • 许可证查询:维基百科,GitHub
  • 许可证规定:一图胜千言


    如何选择开源许可证?
活跃度

反映开源软件的可持续性和可进化的能力,主要从开源软件的版本发布情况、开源社区情况、软件的关注情况等方面进行分析。

  • 版本发布:GitHub中的releases,关注版本号、代码量和发布时间
  • 社区情况:GitHub项目首页中的贡献者、提交量、贡献者等级,还有issue中open与close
  • 关注情况:谷歌趋势
行业认可与服务支持

行业认可与服务支持反映开源软件在业界的应用情况和提供专业化服务的情况。主要是对应用集成方案和云计算服务两方面进行分析

  • 应用集成方案: 参考主流的集成方案
  • 云服务: 参考各云服务提供商相应服务
功能特性

考察候选技术在该应用范畴中的功能比较,例如消息中间件,主要从服务端、生产者、消费者、以及消息传输等四个方面进行对比。

  • 功能特性:参照维基百科或谷歌中该技术应用范畴的核心诉求。或者参照各博客的技术对比
性能效率

针对候选技术核心功能的性能评估,例如吞吐率、响应时间等

  • 性能评估:参照已存在的性能测试文章,或者自行搭建环境并测试
安全性

主要包括已暴露的安全漏洞情况和安全机制两方面。

  • 安全漏洞: 谷歌关键词“技术 + 漏洞”
  • 安全机制: 项目feature中获取认证机制、加密机制、认证插件等信息
可扩展性

关注第三方插件以及插件开发,可配置可集成

维护性

关注代码注释规范、管理、监控和测试工具

实施过程

先验证,后使用

引入新技术之前,先验证,把官方demo以及单测代码跑一遍,重点验证和研究自己业务需求的那一块,这一点正如《谈谈技术选型的注意事项》所说

对于未经验证的新技术、新理念的引入一定要慎重,一定要在全方位的验证过后,再大规模的使用。新技术、新理念的出现,自然有它的诱惑,慎重并不代表保守,技术总是在不断前进,拥抱变化本身没有问题,但是引入不成熟的技术看似能带来短期的收益,但是它的风险或者是后期的成本可能远远大于收益。

相关文章

  • 技术选型的考虑与分析

    由于现在互联网技术快速发展,无论前端还是后端,各领域的技术及框架层出不穷,百花争艳,例如后端的消息队列,就有Rab...

  • iOS面试的一些小问题

    React vs Vue 前言: 技术选型没有绝对的对与错 技术选型要考虑的因素非常多 表达自己的观点,并说明理由...

  • Django适合做大用户量的系统吗?

    分几点来答: 1. 首先,这其实是个技术选型题。 做技术选型的时候不能单纯的考虑性能,应该优先考虑业务类型,以及团...

  • 前端技术选型,react, vue , angular2 技术对

    一个项目的开始,往往需要进行技术选型,也是头疼的时候。以下为前端的选型的考虑,给大家提供一个选型思路。 前端技术选...

  • Day 54/100 前端技术选型

    写在前面的话 昨儿面试被问到的一个好问题,想想还蛮重要~ (一)技术选型 做技术选型时,要考虑实际的项目需求,不要...

  • 如何进行需求梳理及埋点方案设计

    当企业在选型数据分析及运营工具的时候,和供应商对接的过程中,会不断沟通自身需求与对方的产品技术是否匹配,这也是选型...

  • 如何进行需求梳理及埋点方案设计?

    当企业在选型数据分析及运营工具的时候,和供应商对接的过程中,会不断沟通自身需求与对方的产品技术是否匹配,这也是选型...

  • 微服务之架构技术选型与设计

    本文主要介绍了架构技术选型与设计-微服务选型,Spring cloud 实现采用的技术,希望对您的学习有所帮助。 ...

  • 前端框架React、Vue对比

    前端技术栈选型分析 公司做前后端分离,确定前端技术栈,对前端框架React、Vue,稍微做了下分析:对比:1、上手...

  • 快手java面经

    写在前面 快手面试还算是简单一些,人性化一些,更多的是考虑技术选型,比如多种MQ的优缺点,未来如何做技术选型等。 ...

网友评论

    本文标题:技术选型的考虑与分析

    本文链接:https://www.haomeiwen.com/subject/amyffftx.html