你为何用或不用框架?

最近,在持续关注一个Twitter话题,就是 Why do people decide to use frameworks? ,这个话题是由Nicole Sullivan提出的。前端

刚开始,我对这个问题也没有太在乎,也就是随意的看了看,正如提问者Nicole Sullivan说的那样,我刚开始也以为这是一个愚蠢的问题。可是这个问题就像蒲公英的种子同样,就这么在个人脑海里扎了根,截至到我这写这篇文章以前,我都有一直关注这个问题,而且在思考这个问题。vue

虽然这个问题看似简单,你或多或少都能回答出那么一两点,可是我想你可能本身也对本身的回答不太满意吧?无论你怎么想的,但我渐渐收起了我从一开始的轻视态度,开始正视这个问题。vue-router

在这里,我还要感谢Nicole Sullivan,是她的这个话题,让我对为何使用框架有了全方位的了解。vuex

为何用

  • 能够集中精力在业务的实现,而不用把过多的精力和人力用在代码功能逻辑的实现上。
  • 能够避免由咱们本身写带来的不少bug。
  • 能够暂时快速的解决掉某一问题,以待之后的进一步解决。
  • 能够避免写技术文档和介绍功能实现给团队成员的问题。
  • 能够极大的缩短开发的周期。
  • 由于成熟的框架自己就是完善的解决方案。通常它们都有本身的生态系统,有众多技术达人参与。这样咱们在使用中,不只有完善的技术文档能够随时查看,遇到问题也有地方问,最重要的一点是不用本身设计、整理、验证技术方案了,你之须要深刻了解它的生态系统便可。
  • 避免了bikeshedding现象(它的意思是说:‘总在一些没有意义的问题上争论,而有意忽视哪些真正须要解决的难点/痛点问题’)的出现。

为何不用

不用的其中一个缘由,就是用框架的成本过高。夸张一点说,可能就这一点就就盖过了它全部的优势,但要用一个框架必定要考虑它的成本。后端

对于一个团队来讲,首先须要专门招聘一些精通这个框架的开发人员(前端/后端)和维护人员,再加之没有一个框架是万能的,若是下一个项目使用另外一个框架是否意味着另招一批开发人员,这样的代价不是全部的企业都能承受;框架

对我的来讲,学习一个框架须要花费大量的时间和精力,你不只要学习框架自己,你还要了解它的生态系统,关注它的各方面咨询,尤为是版本更新,它每每带有对过去框架存在问题的改进,若是升级版就能够移除本身解决原框架存在问题而写的补丁(这些补丁有大有小,也可能引入了其余依赖),这样就带来另外一个问题,项目的迁移问题,像angular同样它如今的版本已经到了9.x,但如今有至关一部分还在用着1.x,angualr虽好,可是它也给开发人员带来了巨大麻烦,学习曲线太陡是一方面,要了解的东西太多(知识面的广度)是另外一个重要方面。固然一直使用一个框架,并进行深度挖掘的技术团队,受益良多,但这样的团队又有多少。ide

除了成本,就要考虑项目的规模和复杂度问题。工具

不能一个就五六个简单页面的项目,你就引入一个框架吧。此外使用一个框加,每每会使用它配套的部件,如:引入vue,一些用惯了vue-router,vuex,在项目中天然而然的引入这些东西,这些在简单的仙姑中每每没有必要。这也是开发这些框架的核心团队为何尽可能的缩减核心框架功能的缘由,而把一些次要功能或三级功能独立出来。这些由主框架、功能库、主题库、工具库、以及辅助开发的工具库等组成的集合,就是该框架的生态系统。学习

开发人员要保持理智

国内的一些基层开发人员广泛存在不理智的现象,跟风现象比较严重。应该注意这些:设计

  • 技术比较火,并不表明技术方案的完美。
  • 好的技术框架我不必定都要会,但要有一个框架我十分精通。
  • 别人会的,我不必定要非得精通,但我会的要保证别人必定要不如我。
  • 学习某一个技术不是一两天或者一两个月的事儿,技术都是积累来的。
  • 不要把大神神话,它们也是从 小白 成长起来的。
  • 要保持对技术的热度,而不是蹭技术的热度。

结束语

其实,无论你是否使用框架,抑或你对框架持有什么样的态度,你都要明白你选择的出发点儿是什么或者说动机是什么。

相关文章
相关标签/搜索