Angular 的源码非常庞大,但是结构比较清晰,如果要定位和解决特定的问题 bug 还是非常容易的,我的每个人 PR 从发现问题到解决问题都没花几个小时,后面主要是各种修改来达到官方的代码质量和风格的要求(感谢 Member 们,特别是 vicb 的耐心)

Angular 的源码中可学习的东西确实很多,比如架构模式、代码风格、ts 特性运用等,但是想要出一本书 Angular 源码解读的书,确实很困难,它的需求集太庞大了,虽然设计很优雅,但是想要全面解读基本上是不可能的,所以我觉得更现实的是出 angular/core 源码解读之类的书。不过,虽然我会看 Angular 源码,但是我对很多源码解读的书是不感冒的,因为当源码印在纸上之后,只能看到局部,而没法通过跳转之类的方式了解其各个部分之间的联系,从而理解其整体设计和需求权衡。

打开网易新闻 查看更多图片

Angular 适合大项目?Vue 和 React 呢?

适合不适合大项目,重点是看:人。这么去宣传 NG 我认为只会让 NG 越来越没人用。为什么呢?一个代码写不好的人,跑去用NG也并不会让他的代码好去哪里,一个代码写得好的人,用什么都可以发展出他的优势,造成这种根本原因就是:知识的迁移。知识的迁移是很重要的,也就像大家说的,使用NG的选手都是一些后端Java人员,因为他们的知识比较容易迁移到NG上。对于没有什么概念的前端新手而言,Vue是能让他们快速上手的神器。

很少人是天才的,没有碰上具体问题的时候,别说设计模式,设计技巧都不能理解。所以起手就谈AOP、DI、控制反转之流,大家也都是很难理解的。

那么再说说,大型项目的梗。Vue不好说,但是世界上用React造出来的巨型网站已经不用多说,而且世界玩家沸腾,好用趁手的兵器数不胜数,转看国内,阿里精品级的Antd UI框架,更是给开发者稳定下了一颗坚定的心。

Vue的实现确实比较简单,更新也不频繁,至今也就2500+的commits,Angular跟React更新太频繁了,10000左右的commits,发版也发的频繁。国内用Vue的实在太多了,你看看Vue话题的关注量就懂了,包括百度指数。

打开网易新闻 查看更多图片

其次是React,其实React的解读多集中于16.0之前,说句实话,React源码解读的平均质量低的吓人,我都怀疑是很多人自己都不理解就强行解读了,直接罗列代码加几行注释也算解读了。

Angular 最有价值的是其方法论,所以对大多数人来说,仔细看看官方文档,效果会比源码好得多。除此之外,Angular 还开放了自己的设计文档,对于想进一步深入学习的人来说,也应该优先阅读设计文档,了解每个特性的来龙去脉以及过程中的讨论。源码可以作为你遇到无法解决的问题,或者难以理解的原理时的备选,虽然可以获得深入的洞见,但是不一定对每个人都合适。