乐趣区

关于javascript:带你入门前端工程一技术选型

技术选型应该对很多程序员都不生疏了,无论是大到技术框架、编程语言,还是小到工具库的抉择,都属于技术选型的范畴。集体认为技术选型应该依照以下四个指标进行抉择:

  1. 可控性
  2. 稳定性
  3. 适用性
  4. 易用性

因为没有对立的叫法,所以以上四个指标的名称是我本人定的。上面就让咱们一起来深刻理解一下如何进行技术选型吧。

可控性

可控性是技术选型中十分重要的一个指标。可控,就是指如果这门技术因为 BUG 对我的项目造成了影响,团队中有人可能解决它,而不是期待官网修复。作为技术团队的负责人,肯定要是可能兜底的那个人。如果团队解决不了,你必须可能解决。

例如一些公司外部独有的因为“个性化”需要产生的各种魔改版 Vue、React,就完满体现了可控性。

稳定性

稳定性,示意一门技术更新迭代比较稳定,不会有特地大的批改,比拟靠谱。即便有,也很容易做到向后兼容(迁徙简略、老本小)。

做为一名程序员,我想大家都有过这种想法。心愿本人在做我的项目时能用上最新、最热门的技术,这样就能够一边工作一边学习了。可是现实很美妙,事实却是骨感的。新技术往往意味着不确定性,很有可能一步一坑。所以不倡议在外围我的项目中应用新技术。

应用成熟稳固的技术,意味着你的我的项目比拟平安。在这一点上有两个很典型的反例,那就是 Angular 和 python。例如 python2 降级到 python3,除了语法、API 不兼容之外,python3 的各个版本之间也有差别,直到现在才逐步稳定下来。

从稳定性上来看,该如何进行技术造型呢?能够依据以下四点来进行抉择:

  1. 社区是否沉闷、配套插件是否丰盛。
  2. 是否常常保护,能够通过 git commit 查看。
  3. 官网文档是否齐全。
  4. 更新是稳固、小步的迭代,而不是十分激进的更新。

方才说到不倡议在外围我的项目中应用新技术,但为了团队成员本身的倒退抑或为了其余起因,是能够尝试一下新技术的。但肯定要在边缘我的项目或者小我的项目上进行尝试,尝试完如果发现这门新技术非常适合你们的我的项目,那就能够进一步思考是否在外围我的项目中应用了。

适用性

适用性,是指须要依据业务场景和团队成员来抉择技术。

业务场景

生命周期

从我的项目的生命周期来看,并不是所有的我的项目都须要做到滴水不漏的。例如节假日特定的流动页面,生命周期只有一两天。这种页面就算用 JQuery 写也是能够的,惟一的要求就是快。

与之相同的是,公司须要长期保护的外围我的项目。它们须要应用成熟稳固的技术栈,在开发语言上也要应用 TypeScript 而不是 JavaScript。

兼容性

因为我的项目必须在各种各样的设施上运行,所以兼容性也是一个须要思考的点。

web 我的项目须要思考不同浏览器的兼容性,app 须要思考 IOS 和 Android 的兼容性。除了必须保障不能有死机、白屏、卡顿等显著 BUG 外,款式也须要尽量保持一致。

团队成员

团队成员不肯定所有人都应用雷同的技术栈,在这一点上须要衡量大家的长短处进行抉择。

但我倡议尽量将团队成员的权重放到比拟低的地位,抉择约束性比拟强的技术是一个更好的抉择(如果团队成员不会,就让他学)。要用久远的眼光来为团队思考,太过自在的技术,往往会造成劫难。例如应用 TypeScript 曾经被很多大公司和开源我的项目证实过是一个更好的抉择。

易用性

易用性,顾名思义就是这门技术好不好上手,容不容易了解。如果两门技术各方面指标及利用场景差不多,易用性强的将成为赢家。

最典型的例子就是 Angular 和 Vue。Angular 学习曲线平缓,须要比拟长的学习工夫;而 Vue 在熟练掌握 JavaScript 的状况下,看文档一两天就能上手干活。

从 Google、百度的趋势图就能看进去,它们在国内的受欢迎水平有相当大的差异。

易用性,决定了你的团队好不好招人,这一点对小公司和不在一线城市的公司来说十分重要。我在天津(二线城市)工作快 4 年了,招前端的基本上每个公司都要求会 Vue,而要求会 Angular 的根本没有。

小结

如果同时综合以上 4 点来思考,该如何做技术选型呢?我倡议依照以下程序来做抉择:

  1. 必须可控。
  2. 外围我的项目必须应用成熟稳固、牢靠的技术栈,边缘小我的项目能够应用新技术给团队成员练手或者踩坑。
  3. 在第 2 点的根底上,再按适用性做抉择。
  4. 在第 3 点的根底上,再按易用性做抉择。

为了帮忙大家了解,我画了一个流程图:

尽管说前端目前只有三大框架能够抉择,但技术永远是在倒退的,框架也是在一直的更新迭代。学会如何进行技术选型,则不论当下风行的是什么技术,都能够缩小你在进行技术选型时可能会犯的失误。

参考资料

  • 技术选型指南

带你入门前端工程 全文目录:

  1. 技术选型:如何进行技术选型?
  2. 对立标准:如何制订标准并利用工具保障标准被严格执行?
  3. 前端组件化:什么是模块化、组件化?
  4. 测试:如何写单元测试和 E2E(端到端)测试?
  5. 构建工具:构建工具有哪些?都有哪些性能和劣势?
  6. 自动化部署:如何利用 Jenkins、Github Actions 自动化部署我的项目?
  7. 前端监控:解说前端监控原理及如何利用 sentry 对我的项目履行监控。
  8. 性能优化(一):如何检测网站性能?有哪些实用的性能优化规定?
  9. 性能优化(二):如何检测网站性能?有哪些实用的性能优化规定?
  10. 重构:为什么做重构?重构有哪些手法?
  11. 微服务:微服务是什么?如何搭建微服务项目?
  12. Severless:Severless 是什么?如何应用 Severless?
退出移动版