商品簡介
本書全面介紹了新一代全棧開發平台Meteor。書中首先簡要介紹了Meteor 的概念和特性,然後通過各種示例講解Meteor 的用法,再用案例實踐的方式綜合運用所講過的內容,加深對Meteor 的理解,接著展示Meteor 應用如何部署到生產環境中,最後探討一些Meteor 應用架構擴展的進階話題。本書面向對JavaScript 全棧開發感興趣的讀者,可供希望快速進行產品開發和想嘗試新技術的開發者參考。
作者簡介
杜亦舒
架構師,10年技術經驗,先後在中國數碼科技集團、友友雲計算、國泰金安金融公司從事研發與架構設計工作。曾經獲得過3項技術專利,目前在艱苦創業中。熱愛互聯網,喜歡研究各種Web技術,擁有豐富的實踐經驗,喜歡分享自己的技術心得。創業過程中在尋求高效的產品開發方法時,發現並喜歡上了Meteor;經過不斷實踐,對其技術理念非常認同,對其發展前景非常看好。
名人推薦
Meteor是顛覆式創新典範,徹底避開主流全棧方案各種弊病。
學習成本更低,數據庫開發更便利,代碼量更小,用戶體驗更流暢。
全部基於JavaScript,新團隊組建和內部溝通協作變得異常單純、簡便。
Meteor非常適於追求快速迭代的初創團隊,部署簡單,可自動完成編譯打包。
序
前言
這本書講了什麼
本書是一本Meteor的入門實踐教程。Meteor是新一代的JavaScript(JS)全棧開發平台,基於Node.js,但並不要求讀者必須已經熟悉Node.js。本書的目標是使讀者閱讀本書,能夠理解Meteor不一樣的技術思路,學會使用Meteor進行快速的Web開發,以及掌握對Meteor進行架構擴展的思路。
本書一共有11章,分別從入門介紹、功能講解、項目實踐、進階拓展這4個方面對Meteor進行了闡述。
第1章和第2章為入門介紹,講解了Meteor具體是什麼,它的工作原理,以及Meteor的優勢和不足。通過這兩章的學習可使讀者快速地建立起對Meteor的初步印象,然後詳細講解了Meteor的安裝方法,讀者從中可以體會到Meteor的快速與便捷。
通過前兩章的入門介紹,讀者已經大體認識了Meteor,知道了它的特性,但頭腦中還是會有很多問題,例如Meteor的開發方式有什麼不同呢?Meteor的快速開發體現在哪些方面呢?……通過後面的深入講解,這些問題就會逐漸被弄明白。第3章到第7章為功能講解部分,將Meteor的知識結構拆分成幾大塊,逐一講解模板的應用、MongoDB數據庫的操作方式、路由控制、用戶系統的集成配置、與數據庫溝通方式的優化和安全升級,並帶有豐富的示例。通過這些功能的講解與示例實踐,讀者已經達到可以開始實際應用Meteor進行開發的程度。
經過對Meteor功能模塊的講解與實踐,下面便進入項目實踐部分。第8章會以一個完整的項目為例,從頭進行開發,綜合運用前面講解的各部分功能,從整體上IV Meteor全棧開發體會Meteor應用開發的全過程。
進階拓展部分包括第9章到第11章,從功能開發階段過渡到了產品上線階段,分別講解了Meteor應用中如何進行測試、如何把Meteor應用部署到線上產品環境,以及對Meteor應用在架構上進行擴展的方式,為應用的質量和應用的性能做好控制和準備。
如何閱讀本書
Meteor是JavaScript的全棧開發平台,所以閱讀本書的基礎要求是熟悉HTMLCSS JavaScript,但並不要求很深的熟悉程度。如果讀者對這些基礎知識不太熟悉,可以到網站上花費一點時間學習一下,只需要掌握基礎知識即可開始學習Meteor。Meteor是基於Node.js的,不熟悉Node.js也完全沒有影響;但如果了解Node.js的話,會有助於更好地理解Meteor的機制。
本書的風格偏於實踐,從第1章就開始了動手實踐,第2章介紹了環境搭建和項目創建的方式,並推薦了Meteor開發所需要的工具和資料,後面的章節中都包含了大量的示例代碼。所以,強烈建議跟隨書中的實踐步驟和代碼進行親自操作。因為實踐是學習新技術的最好方式,實踐可以讓我們快速掌握對新技術的應用,也可以加深對技術特性和理念的理解。在實踐過程中會遇到各種問題,對問題的思考和解決過程就是非常好的學習過程。
本書的優勢
輕鬆入門。本書以Meteor的發展歷史、核心優勢為切入點,詳細講解了Meteor的優勢與不足、工作原理、功能開發、進階技術等,內容由淺入深,便於快速入門。
上手容易。本書的各個章節都集合了豐富的實例,盡可能地結合實際開發中常用的場景,讓讀者快速上手。在講解完Meteor的各個局部知識後,特意安排了一個實踐項目,綜合運用了各部分知識,便於讀者鞏固前面所學到的內容。
架構擴展。本書的最後一章單獨討論了Meteor應用的架構擴展,結合Meteor應用的特性,給出相應的架構擴展建議,為實際Meteor項目的壯大做好準備。
目次
第1章Meteor簡介1
1.1 Meteor是什麼1
1.2 Meteor快速起步2
1.2.1創建新應用2
1.2.2與LAMP對比開發過程3
1.3 Meteor的工作原理4
1.3.1工作流程4
1.3.2核心技術6
1.4 Meteor為什麼快8
1.5優勢與不足10
1.5.1優勢10
1.5.2弱勢11
1.5.3關於質疑12
1.6本章小結13
第2章快速入門14
2.1安裝環境14
2.2默認項目分析15
2.3資源推薦19
2.4本章小結23
第3章模板系統24
3.1模板介紹24
3.2模板的核心用法26
3.2.1基礎標籤26
3.2.2模板的定義28
3.2.3模板引用與嵌套28
3.2.4流程控制指令31
3.3 helper34
3.4事件處理38
3.5生命週期42
3.6引用第三方JavaScript庫43
3.7小插件推薦—Bert47
3.8本章小結52
第4章數據庫53
4.1體驗Meteor與數據庫的溝通53
4.2認識MongoDB57
4.2.1 MongoDB概述57
4.2.2 MongoDB操作示例59
4.3 Meteor數據庫操作61
4.3.1 Meteor連接MongoDB61
4.3.2 Meteor操作MongoDB的方法62
4.3.3聚合73
4.4本章小結85
第5章路由Iron.Router86
5.1路 由介紹86
5.2客戶端路由88
5.2.1體驗Iron.Router88
5.2.2佈局模板.92
5.2.3路由中的數據操作94
5.2.4 routerhook99
5.2.5控制器100
5.2.6獲取當前路由103
5.3服務器端路由105
5.3.1創建服務器端路由105
5.3.2 RestfulRoutes107
5.3.3 HTTP請求109
5.4本章小結118
第6章用戶系統119
6.1用戶系統介紹119
6.2添加用戶系統121
6.2.1基礎用戶系統121
6.2. 2在獨立頁面中註冊登錄125
6.3用戶系統的配置129
6.3.1文字國際化129
6.3.2配置註冊信息項131
6.4第三方登錄集成135
6.4.1 QQ登錄135
6.4.2微博登錄139
6.5本章小結142
第7章發布訂閱與methods143
7.1數據的發布訂閱143
7.1.1發布訂閱介紹143
7.1.2體驗發布訂閱146
7.1.3模板helper訂閱151
7.1.4參數訂閱152
7.1.5路由訂閱155
7.1. 6發布多集合的關聯數據159
7.1.7示例:一個簡單的搜索164
7.2 methods172
7.2.1 methods介紹172
7.2.2 methods定義與調用173
7.2.3參數驗證176
7.2.4 Collection2sc hema驗證180
7.3本章小結185
第8章項目實踐—在線書籤186
8.1功能分析186
8.2構建單頁應用187
8.2.1創建項目187
8.2.2書籤列表188
8.2.3添加書籤192
8.2.4刪除書籤195
8.2.5修改書籤196
8.3添加路由200
8.4添加用戶系統205
8.5代碼完善211
8.5.1發布訂閱改造211
8.5.2 methods改造213
8.6本章小結215
第9章測試與調試217
9.1測試217
9.1.1概述217
9.1.2 mocha入門221
9.1.3 Meteor單元測試詳解228
9.2調試234
9.2.1 meteorshell234
9.2.2 meteordebug235
9.2.3瀏覽器debugger236
9.3本章小結238
第10章部署239
10.1自動部署239
10.2手動部署244
10.3本章小結248
第11章架構擴展249
11.1架構思路249
11.2 Nginx負載均衡253
11.3 MongoDB複製集256
11.4 Redis緩存259
11.5雲服務架構260
11.6本章小結262