创建你自己的 Angular:深入框架机制
创建你自己的 Angular:深入框架机制
简介:
引言:为什么要编写自己的框架?
Tero Parviainen 的著作 《Build Your Own Angular》(中文译名《创建你自己的 Angular》)并非又一本关于如何使用流行框架的教程。这是一次深入 AngularJS(1.x 版本)核心的独特技术之旅。作者没有解释如何使用现成的指令和服务,而是邀请读者从零开始,用纯 JavaScript(Node.js)编写 Angular 关键机制的自实现。
这本书出版于 2015 年,但对于那些希望理解现代 MV* 框架基本原理的人来说,它至今仍未过时。它不是一本参考手册,而更像一个研究实验室,每一章都是一次实验。
这本书是关于什么的?
这本书以逐步重建 AngularJS 的方式展开。你不仅仅是阅读理论——你是在编写代码,这些代码会逐渐演变成一个可运行的框架。作者涵盖的主要主题包括:
- Scope 和 Digest Cycle:你将了解著名的“脏”检查循环($digest 和 $apply)的工作原理,编写自己的 watcher 跟踪系统,并学会优化性能。
- 依赖注入(DI):你将实现自己的依赖注入器,理解 Angular 如何查找和连接模块、服务及控制器。
- 模板编译:你将创建一个 HTML 编译器,能够识别指令、表达式插值,并将它们与 Scope 中的数据绑定。
- 指令:你将编写自己的指令(如 ng-bind、ng-model、ng-repeat),并理解它们如何与 DOM 交互。
- 测试:作者非常重视为每个组件编写单元测试,使用 Jasmine 和 Karma。
这本书适合谁?
这本书不适合初学者。它要求读者熟练掌握 JavaScript(ES5/ES6),理解闭包、原型继承和异步编程。它非常适合:
- 已经使用 Angular(任何版本)并希望理解其内部结构的开发者。
- 对框架架构和设计模式(MVVM、DI、Observer)感兴趣的程序员。
- 希望提升调试和优化复杂 JavaScript 应用程序技能的人。
读者将学到什么?
读完本书并完成所有练习后,读者将能够:
- 解释双向数据绑定是如何在没有魔法的情况下工作的。
- 编写自己的应用程序状态管理系统。
- 理解为什么 Angular 中的某些操作可能很慢,以及如何修复它们。
- 创建具有隔离作用域的复杂自定义指令。
- 在源代码级别将第三方库集成到 Angular 生态系统中。
本书的优点
1. 实践导向。这不是理论——你从第一章就开始编写代码。每一段新代码都会被测试并集成到整个系统中。
2. 深度剖析。作者不会简化复杂主题。他详细分析了 $evalAsync、$watchCollection 以及指令优先级机制等细节。
3. 结构清晰。本书分为短小、逻辑完整的章节。你可以将其作为教程阅读,也可以作为特定机制的参考手册使用。
4. 测试作为过程的一部分。测试驱动开发(TDD)贯穿全书。你不仅学习编写代码,还学习如何验证其正确性。
推荐给谁?
这本书对中高级开发者非常有用,他们希望将对 Web 框架的理解提升到一个新水平。它也适合那些准备参加使用 Angular 的公司技术面试的人——关于 DI 和 digest cycle 的问题将不再神秘。如果你喜欢拆解和分析,那么这本书正适合你。