技术选型入门篇

在做设计的时候我们经常会遇到技术选型的问题:即有若干可用的方案为什么用一个而不用另一个?如果是刚做开发的话可能对这个问题看得不是很重,你觉得技术选型性不重要,是因为环境已经帮你做了选型。就像是安装软件一样,默认安装和用户定制最后软件安装完了之后都可以用。小白用户和高级用户之间的区别可能就是一个小白开发(比如我)和一个技术大佬之间的区别。

技术包括:架构、语言、框架,等~

只要在开发中你能用到的东西基本上都可以做个选型,比如用WPS还是WORD(开个玩笑)。

这里我就把我所能想到的给讲一下,先开个头,后期陆续出各种技术和框架的比较相关的内容。技术选型关注的我想到了一下几个方面:

  • 流行性(大家都在用,觉得还不错,你有啥问题可以很容易的查到)
  • 业务契合度(项目需求,用哪个技术还要看和你的业务是否契合,不要仅仅因为流行就拿过去用)
  • 适用范围(比如你用java去做音视频的解码,用C去做web开发)
  • 语言特性
  • 开发难度(貌似流行的东西和容易性是正相关的,C++开发难度到大于java)
  • 后期维护(在开发阶段往往关注于实现,后期各种该需求加需求)
  • 安全问题(是不是有什么大坑,比如struts2的安全漏洞,各大公司连夜升级)
  • 运营成本
  • 运维成本
  • 性能(语言,框架,数据库都可以考虑性能问题)
  • 扩展(如果平不注意的话我们框架或者代码都是着眼解决现有的业务或问题,一旦业务升级了,各种迁移重构的工作又随之而来)
  • 可控性(提供的功能比较明显,不会带来未知的问题,因为使用某种技术的时候大概率是不会从头到脚地熟悉它的,而只会用常用的功能,所以要避免副作用)
  • 人力成本(当然这个和开发无关,但是和管理者有关,java一抓一大把不会担心没人维护和后续开发)
  • 部署方式(可以归结为运维)
  • 团队配合(如果没有什么过去的问题,就选一个大家都比较满意的)
  • 非选不可的原因(就算你有各种不好我还是因为某种原因坚持使用)
  • 坚持不用的原因(就算你各种好,但是因为某个点我就是不用)

技术选型这玩意儿是磨刀不误砍柴工,一个好的技术选型带来的好处就是可以避免踩坑,加快开发速度,保障后期维护和运维。

一个烂的技术选型体现在各个部分相互掣肘,开发效率不高,经常陷于问题的解决中,部署起来之后问题频发。

以上都是我个人blind bee tree,也是个人敲了几千遍hello world的经验所得。

原文地址:https://www.cnblogs.com/tuhooo/p/9236899.html