专栏首页技术那些事如何做好技术选型

如何做好技术选型

至于一个技术框架该怎么用,它适用于什么场景,笔者建议可以直接阅读官方或对应的github上的文档,有需要时还可以阅读下关注点的源码,这样对正确的理解它,是很有必要的,毕竟官方发布的东西是相对权威的,其他地方的资料或许存在片面性,对大家的使用、理解存在一定的误导。

在软件开发领域,几乎每天都有新的技术框架诞生、更新,一些新的概念更是层出不穷,技术选型时,难免让人无从抉择。对于技术选型,我个人有以下几点建议:

1.有需求,再引入

在语言、技术架构丰富的今天,各类组件/技术很多很多,但并不意味着所有的都应该引入你的项目,倘若单纯为了覆盖全技术栈或组件而全部引入,这将是一种很不明智的选择。后续将会成为你项目的累赘,让你苦不堪言。

只要你记住这六个字:“有需求,再引入”,就OK了。伴随着项目体系架构的完善、功能的健全,当有某方面的需求时,在逐步考虑是否引入某些技术组件。

2.选择最熟悉、使用最多的技术

“一个新项目里最好不要使用超过30%的新技术”,我觉得这句话是有一定道理的。对于你完全不知道、不了解的技术,你是无法预估、掌控在使用过程中会出现的任何风险,一旦出现问题,短时间内解决不了,你将会变得很难堪。

在这里不是说拒绝使用、接触新技术,新技术是值得大家去追捧、了解、学习,一些新技术在很大程度上能给我们带来前所未有的利处,解决其他技术框架解决不了的问题。这里所说的“新技术”,是指没有经过充分的考察、技术验证、存在种种疑惑的技术,而是一味的拿来主义,这样的风险可想而知。

确保选择的技术,是业界使用最多的、被大家认可的技术,即使出现了问题,也能应对自如。至少在团队内部小范围是非常认可的。

3.强大社区支撑的技术

GitHub上star的数量是一个重要指标,同时参考近年来代码、文档、issues等更新频率,各大技术博客是否有相关技术分享记载,这些都是能够说明该技术是否活跃、受欢迎程度、使用人群多少等。

拥有强大社区支持的技术,在选型后,倘若使用出现疑问、问题、bug等,能够有地方可提、可修复、可深究探讨,毕竟现在的技术社区都是足够开放的。

慎选个人开源的技术框架、组件等,里面到底有多少坑,没几个人能说清楚的,况且说不定哪天就不复存在了呢。

4.从业务、项目规模出发

任何技术的出发点都是为最终业务而服务的,不同业务、不同项目规模,对技术的要求指标都是不同的。处于初创期的业务,选型的基准是相对灵活,毕竟业务相对简单,支撑业务不是很大,只要够用、开发效率足够高就好。处于复杂业务而重构的项目,选型就需谨慎,往往伴随着一些复杂需求诞生、规模大小的不确定性,不得不考虑选型技术可能伴随着一些小修小补或者螺旋式上升的重构,则需选型便于适配、切换、替换,耦合度低的技术。

正因为技术选型和业务相关,我们能够观察到一些很明显的现象:新技术往往被早期创业团队或大公司的新兴业务使用;中大型公司的核心业务则更倾向于用一些稳定了几年的技术;一个公司如果长期使用一种技术,就会倾向于一直使用下去,甚至连版本都不更新的使用下去。

学会从业务端思考。首先我们需要充分地理解业务,理解用户需求,理解当下需要解决的首要问题,以及可能的风险有哪些,再将目标进行分解,进行具体的技术选型、模型设计、架构设计。

5.先验证后使用

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

验证后,才有说服力,用着更放心。

每种技术架构都有其优缺点,存在即合理,不同的业务场景下使用不同的应用架构、技术框架,不一定说最新的架构、技术就是最适合你的。

本文分享自微信公众号 - 程序猿技术大咖(cxyjsdk),作者:xcbey0nd

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微服务架构下的核心话题 (三):微服务架构的技术选型

    为了实现基于微服务开发的产品,或者说为了将单体应用重构为微服务架构时,将面临着众多技术框架的选择。大公司往往会有专门的部门或团队来负责自主研发自己的框架,以满足...

    xcbeyond
  • 微服务架构下的核心话题 (一):微服务架构下各类项目的顺势崛起

         在接触任何一个新鲜事物初期时,你一定有必要了解它,知道它能给你带来什么、有哪些优势、哪些弊端,最终要搞明白它是否合适你,再决定是否使用它。技术更是如此...

    xcbeyond
  • 年度Java技术盘点,懂这些技术的程序员2019年薪资翻倍!

    与一年前一样,Java仍然是最流行的编程语言。据TIOBE的数据显示,几十年来,Java比其他语言更常名列榜首,Java因为它拥有可移植性、可扩展性和...

    xcbeyond
  • 做一个程序员有什么不好?

    当我屡次不经意地凝视自己的博客时,边栏上的园龄一项总会不揣冒昧地提醒我 —— 某人已躬耕十年。当年万里觅封侯,匹马戍梁州。如今听雨客舟中,江阔云低...

    程序员互动联盟
  • 当面对热门技术时,你焦虑吗

    有为数不少的小伙伴会时常会感到焦虑:自己使用的技术老旧,工作中也基本用不到新技术,经常跟不上新技术的发展形式,出去找工作时担心没公司录用自己,担心失业等等, 特...

    歪脖贰点零
  • 2017年高等教育十大战略性技术(二)

    编者按 EDUCAUSE分析和研究中心(ECAR)不久前发布了《2017年高等教育十大战略性技术》报告,报告主要描述2017年美国高等院校正在投入的技术,《高等...

    企鹅号小编
  • 架构漫谈(九):理清技术、业务和架构的关系

    某天和朋友吃饭正好聊到这个话题。作为架构师或者做技术的人,在开发软件时,我们基本上就是在扮演上帝的角色:我们不但要创建出一个个的程序,还要让这些程序能够脱离我们...

    逸鹏
  • 如何高效的学习新技术

    在技术领域中,发展非常迅猛,各种技术、概念、框架等 层出不穷,我们不断的接收到新的讯息,这就要求我们不断的学习新知识 那么我们如何才能高效的学习新的技术呢?我认...

    dys
  • 业界 |《MIT科技评论》2017十大突破技术榜单,AI领域3家中国公司入选

    AI科技评论消息,2月21日,美国权威杂志《MIT科技评论》(MIT Technology Review) 公布了2017年度全球十大突破技术,有多家中国公司入...

    AI科技评论
  • 2016年度十大新兴技术出炉,你最看好哪个?

    大数据文摘

扫码关注云+社区

领取腾讯云代金券