最近,在持续关注一个Twitter话题,就是 Why do people decide to use frameworks? ,这个话题是由Nicole Sullivan提出的。前端
刚开始,我对这个问题也没有太在乎,也就是随意的看了看,正如提问者Nicole Sullivan说的那样,我刚开始也以为这是一个愚蠢的问题。可是这个问题就像蒲公英的种子同样,就这么在个人脑海里扎了根,截至到我这写这篇文章以前,我都有一直关注这个问题,而且在思考这个问题。vue
虽然这个问题看似简单,你或多或少都能回答出那么一两点,可是我想你可能本身也对本身的回答不太满意吧?无论你怎么想的,但我渐渐收起了我从一开始的轻视态度,开始正视这个问题。vue-router
在这里,我还要感谢Nicole Sullivan,是她的这个话题,让我对为何使用框架有了全方位的了解。vuex
不用的其中一个缘由,就是用框架的成本过高。夸张一点说,可能就这一点就就盖过了它全部的优势,但要用一个框架必定要考虑它的成本。后端
对于一个团队来讲,首先须要专门招聘一些精通这个框架的开发人员(前端/后端)和维护人员,再加之没有一个框架是万能的,若是下一个项目使用另外一个框架是否意味着另招一批开发人员,这样的代价不是全部的企业都能承受;框架
对我的来讲,学习一个框架须要花费大量的时间和精力,你不只要学习框架自己,你还要了解它的生态系统,关注它的各方面咨询,尤为是版本更新,它每每带有对过去框架存在问题的改进,若是升级版就能够移除本身解决原框架存在问题而写的补丁(这些补丁有大有小,也可能引入了其余依赖),这样就带来另外一个问题,项目的迁移问题,像angular同样它如今的版本已经到了9.x,但如今有至关一部分还在用着1.x,angualr虽好,可是它也给开发人员带来了巨大麻烦,学习曲线太陡是一方面,要了解的东西太多(知识面的广度)是另外一个重要方面。固然一直使用一个框架,并进行深度挖掘的技术团队,受益良多,但这样的团队又有多少。ide
除了成本,就要考虑项目的规模和复杂度问题。工具
不能一个就五六个简单页面的项目,你就引入一个框架吧。此外使用一个框加,每每会使用它配套的部件,如:引入vue,一些用惯了vue-router,vuex,在项目中天然而然的引入这些东西,这些在简单的仙姑中每每没有必要。这也是开发这些框架的核心团队为何尽可能的缩减核心框架功能的缘由,而把一些次要功能或三级功能独立出来。这些由主框架、功能库、主题库、工具库、以及辅助开发的工具库等组成的集合,就是该框架的生态系统。学习
国内的一些基层开发人员广泛存在不理智的现象,跟风现象比较严重。应该注意这些:设计
大神
神话,它们也是从 小白
成长起来的。其实,无论你是否使用框架,抑或你对框架持有什么样的态度,你都要明白你选择的出发点儿是什么或者说动机是什么。