AngularJS深度剖析與最佳實踐

AngularJS深度剖析與最佳實踐 pdf epub mobi txt 電子書 下載 2025

雪狼,破狼,彭洪偉 著
圖書標籤:
  • AngularJS
  • 前端開發
  • JavaScript
  • Web開發
  • 框架
  • 最佳實踐
  • 深入學習
  • 教程
  • 實戰
  • 性能優化
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 機械工業齣版社
ISBN:9787111520962
版次:1
商品編碼:11845736
品牌:機工齣版
包裝:平裝
開本:16開
齣版時間:2016-01-01
用紙:膠版紙
頁數:318

具體描述

內容簡介

  在前端開發中,如何彌補語言的先天不足?如何乾淨漂亮地解耦?如何設計“小而美”的類/代碼塊?對於一個“極客”來說,總是要用一些漂亮的技術來解決這些問題,而Angular當之無愧是這類技術之一。本書深入講解AngularJS的基本概念及其背後的原理,包括完整的開發框架與實踐,從最初的框架搭建開始,快速迭代,逐步豐富項目的骨肉,並在這個過程中展現AngularJS的諸多特性與技巧,內容由淺入深、講解細膩、實戰性強,是從AngularJS的小工走嚮專傢的必備參考。
  主要內容:
  從實戰開始,通過實戰演練逐步帶領讀者體驗Angular的開發過程,並隨著進度的推進,引入所需的技術和概念。
  介紹一些基本概念是什麼,為什麼,怎麼用,什麼時候用,什麼時候不用等。
  AngularJS中的MVVM模式、啓動過程、髒檢查機製、指令生命周期等。
  AngularJS實踐,如前後端分離部署、如何設計友好的REST API、移除不必要的$watch、用打包代替動態加載等。
  AngularJS開發技巧與實戰中的“坑”,如錶單驗證錯誤信息顯示、Angular中的AOP機製、在代碼中注入Filter、動態綁定HTML等。

作者簡介

  雪狼,資深前端架構師,熱愛技術,熱衷編程,16年來從未中斷。涉足的軟件開發領域從桌麵軟件到Web應用,涵蓋翻譯軟件、通訊軟件、安全軟件、企業級係統等。他還是AngularJS中文社區管理員,在社區分享瞭大量技術文章,受到讀者的好評與稱贊。

  破狼,ThoughtWorks一綫碼農,高級架構師、谘詢師國內Angular早布道者之一,ngnice、ngShowCase創建人之一。Angular中文社區“狼主”,全棧攻城獅,同時也運維瞭一個前端微信公眾號“shuang_lang_shuo”。

  彭洪偉,ThoughWorks一綫碼農,Angular早期使用者,ngnice的早期貢獻者之一。除瞭前端技術,對Java、Scala、Ruby等也均有涉獵,並且翻譯瞭構建工具SBT的文檔

目錄


前 言
第1章 從實戰開始1
1.1 環境準備1
1.2 需求分析與迭代計劃3
1.3 創建項目11
1.3.1 Yeoman11
1.3.2 FrontJet13
1.4 實現第一個頁麵:注冊18
1.4.1 約定優於配置18
1.4.2 定義路由19
1.4.3 把後端程序跑起來24
1.4.4 連接後端程序26
1.4.5 添加驗證器28
1.4.6 “錯誤信息提示”指令31
1.4.7 用過濾器生成用戶友好的提示
信息33
1.4.8 實現自定義驗證規則34
1.4.9 實現圖形驗證碼36
1.5 實現更多功能:主題38
1.5.1 實現主題列錶38
1.5.2 實現過濾功能40
1.5.3 實現分頁功能42
1.5.4 實現主題樹44
1.5.5 實現遞歸主題樹56
1.5.6 實現“查看詳情”功能58
1.6 實現AOP功能59
1.6.1 實現登錄功能60
1.6.2 實現對話框65
1.6.3 實現錯誤處理功能67
1.7 實戰小結68
第2章 概念介紹70
2.1 什麼是UI70
2.2 模塊71
2.3 作用域72
2.4 控製器73
2.5 視圖74
2.6 指令75
2.6.1 組件型指令76
2.6.2 裝飾器型指令79
2.7 過濾器81
2.8 路由82
2.9 服務83
2.9.1 服務85
2.9.2 工廠86
2.10 承諾88
2.11 消息92
2.12 單元測試93
2.12.1 MOCK的使用方式94
2.12.2 測試工具與斷言庫95
2.13 端到端測試96
第3章 背後的原理98
3.1 Angular中的MVVM模式98
3.2 Angular啓動過程102
3.3 依賴注入106
3.3.1 什麼是依賴注入106
3.3.2 如何在JavaScript中實現DI107
3.3.3 Angular中的DI108
3.3.4 DI與minify109
3.4 髒檢查機製110
3.4.1 瀏覽器事件循環和Angular的MVW110
3.4.2 Angular中的$watch函數111
3.4.3 Angular中的$digest函數113
3.4.4 Angular中的$apply116
3.5 指令的生命周期117
3.5.1 Injecting118
3.5.2 compile和link過程120
3.6 Angular中的$parse、$eval和$observe、$watch122
3.6.1 $parse和$eval122
3.6.2 $observe和$watch124
3.6.3 使用場景125
3.7 REST127
3.7.1 REST的六大要點128
3.7.2 REST的四個級彆130
3.8 跨域131
3.8.1 同源策略與跨域131
3.8.2 如何解決跨域問題132
3.9 前端安全技術133
3.9.1 前端攻擊的基本原理和類型133
3.9.2 前端安全與前後端分工136
3.9.3 移動時代的特殊挑戰137
3.9.4 安全無止境138
第4章 最佳實踐140
4.1 調整開發協作流程140
4.2 前後端分離部署143
4.3 樣式中心頁144
4.4 CSS的擴展語言與架構145
4.5 HTML的錶意性146
4.6 table,天使還是魔鬼148
4.7 測試什麼?怎麼測?150
4.7.1 準備工作150
4.7.2 如何測試Controller151
4.7.3 如何測試Service151
4.7.4 如何測試Filter152
4.7.5 如何測試組件型指令152
4.7.6 如何測試裝飾器型指令153
4.7.7 如何測試網絡請求153
4.7.8 如何測試setTimeout類功能153
4.7.9 如何Mock Service154
4.8 如何設計友好的REST API155
4.8.1 URI155
4.8.2 資源拆分155
4.8.3 資源命名155
4.8.4 方法156
4.8.5 返迴值157
4.8.6 綜閤案例:分頁API159
4.9 使用controller as vm方式160
4.9.1 源碼分析161
4.9.2 推薦用法和優勢161
4.9.3 路由中的controller as語法162
4.9.4 指令中的controller as語法163
4.10 移除不必要的$watch163
4.10.1 雙嚮綁定和watchers函數164
4.10.2 其他指令中的watchers函數166
4.10.3 慎用$watch和及時銷毀167
4.10.4 one-time綁定168
4.10.5 滾屏加載170
4.10.6 其他171
4.11 總是用ng-model作為輸齣172
4.12 用打包代替動態加載173
4.13 引入Angular-hint173
4.13.1 通過batarang插件使用angular-hint174
4.13.2 手動集成angular-hint174
4.13.3 Module hints175
4.13.4 Controller hints176
4.13.5 Directive hints176
第5章 Angular開發技巧178
5.1 $timeout的妙用178
5.2 ngTemplate寄宿方式182
5.3 在非獨立作用域指令中實現scope綁定185
5.4 錶單驗證錯誤信息顯示186
5.5 Angular中的AOP機製187
5.5.1 攔截器案例188
5.5.2 攔截器源碼分析192
5.5.3 Angular中的裝飾器195
5.5.4 Angular裝飾器源碼分析197
5.6 Ajax請求和響應數據的轉換198
5.6.1 兼容老式API198
5.6.2 Ajax請求配置的源碼分析201
5.7 在代碼中注入Filter205
5.7.1 復用指定Filter205
5.7.2 重用多個Filter案例206
5.7.3 Filter源碼分析207
5.8 防止Angular錶達式閃爍208
5.8.1 錶達式閃爍解決方案208
5.8.2 ngCloak源碼分析208
5.8.3 最佳實踐209
5.9 實現前端權限控製209
5.9.1 事件方案210
5.9.2 resolve方案211
5.10 依賴注入—$injector214
5.10.1 $injector的創建214
5.10.2 $injector注入方式215
5.10.3 $injector的妙用217
5.11 在指令中讓使用者自定義模闆219
5.12 跨多個節點的ng-if或ng-repeat223
5.13 阻止事件冒泡和瀏覽器默認行為224
5.14 動態綁定HTML226
第6章 Angular常見的“坑”229
6.1 module函數的聲明和獲取重載229
6.2 ngModel綁定值不更改232
6.2.1 驗證引起的model值不顯示233
6.2.2 原型鏈繼承問題235
6.3 指令不生效239
6.4 Angular中錨點的使用240
6.5 ngRepeat驗證失效241
6.5.1 簡單的驗證顯示242
6.5.2 復雜的驗證顯示242
6.6 有些指令需要唯一的根節點243
6.7 指令優先級-Priority243
6.8 ngRepeat報重復內容錯誤244
6.9 單元測試中promise不觸發245
第7章 編碼規範247
7.1 目錄結構248
7.1.1 按照類型優先、業務功能其次的組織方式248
7.1.2 按照業務功能優先、類型其次的組織方式249
7.2 模塊組織250
7.2.1 命名250
7.2.2 Module聲明250
7.2.3 依賴聲明251
7.2.4 Module組件聲明251
7.3 控製器252
7.3.1 命名252
7.3.2 ControllerAs vm聲明252
7.3.3 初始化數據253
7.3.4 DOM操作253
7.3.5 依賴的聲明253
7.3.6 精簡控製器邏輯254
7.3.7 禁止用$rootScope傳遞數據255
7.3.8 格式化顯示邏輯255
7.3.9 Resolve255
7.4 服務256
7.4.1 命名256
7.4.2 代碼復用256
7.4.3 使用場景256
7.4.4 Service返迴值257
7.4.5 緩存不變數據257
7.4.6 RESTful257
7.5 過濾器258
7.5.1 命名258
7.5.2 重用已有Filter258
7.5.3 禁止復雜的Filter258
7.6 指令259
7.6.1 命名259
7.6.2 Template聲明259
7.6.3 link函數的scope參數命名259
7.6.4 pre-link和post-link260
7.6.5 DOM操作260
7.6.6 Directive分類260
7.6.7 Directive不是封裝jQuery代碼“天堂”260
7.6.8 自動迴收261
7.7 模闆261
7.7.1 錶達式綁定261
7.7.2 Src、Href問題261
7.7.3 Class優於Style262
7.8 工具262
7.9 其他264
7.9.1 內置$服務替代原生服務264
7.9.2 Promise解決迴調地獄264
7.9.3 減少$watch265
7.9.4 TDD265
第8章 工具267
8.1 WebStorm與IntelliJ267
8.2 Chrome269
8.3 Gulp273
8.4 Swagger274
8.4.1 前後端分離274
8.4.2 Swagger275
8.4.3 契約測試277
8.5 TSD277
8.6 Postman280
8.6.1 安裝280
8.6.2 功能介紹280
第9章 雜項知識282
9.1 Angular 2.0282
9.2 SEO284
9.3 IE兼容性287
9.3.1 問題概述287
9.3.2 問題分類288
9.4 訪問統計292
9.5 響應式布局293
9.6 國際化294
9.7 動畫296
9.7.1 CSS動畫296
9.7.2 JavaScript動畫297
9.8 手機版開發298
9.8.1 Hybrid應用298
9.8.2 Ionic300
附錄A 相關資源301
後記 提問的智慧318

前言/序言

  新時代
  新挑戰
  時代已經不同瞭!
  17年前,當我的第一個作品推入市場的時候,互聯網纔剛剛傳入中國。
  那時候的軟件不需要聯網,每個用戶也不需要知道其他用戶的存在。
  那時候隻需要考慮PC運行環境,而需要考慮的屏幕分辨率也隻有區區三種。
  那時候的軟件項目組多則十幾人,少則一人,而發布周期常常會達到半年之久。
  現在,一切都不同瞭。
  現在,連一個手機電筒軟件都在偷偷聯網,不能聯網的遊戲也已經是老古董的代名詞。
  現在,軟件不但運行在PC上,還要運行在智能手機上,運行在各種Pad上,屏幕分辨率更是多到讓研發和測試工程師發怵的地步。
  現在,外界看到的産品其實隻是冰山一角,它背後還有很多子係統緊密協作來提供支持,需求和架構的復雜度也暴增。
  但最大的挑戰恐怕還是來自發布周期—一期版本在一個月內上綫已是常態,而修復bug的時間限製則往往以小時計,甚至以分鍾計。
  沒錯,這些都是新的挑戰!好在,我們也有瞭新技術!
  新技術
  這17年間,軟件業最大的技術革命,當然首推互聯網。
  互聯網不但拓展瞭軟件業的業務範圍,更改變瞭程序員獲取知識和解決問題的方式。
  如今,一個不會Google(以及翻牆),沒上過GitHub,不知道Stackoverflow的程序員很難想象會有什麼發展空間。
  排在第二位的技術革命,當推移動互聯網以及智能終端。這場革命不但把曾經的王者諾基亞打落凡塵,而且讓蘋果重新登上王位。
  這兩場技術革命讓開源運動遍地開花,更催生瞭無數的新技術。
  且不提HTTP/HTML/JavaScript/CSS這些耳熟能詳的互聯網基石,就連在互聯網革命爆發之前已經就已經相當成熟的OO領域也有瞭很大的進展。
  以MVC為例,它不但衍生齣MVP、MVVM等很多變種,而且從後端領域擴展到瞭前端領域。而現在日益火爆的Angular,正是MVC在前端領域的代錶作之一。
  一個“極客”總是癡迷於各種“漂亮”的技術,而Angular當之無愧地是其中之一,它可供藉鑒的地方很多:
  如何彌補語言的先天不足。
  如何乾淨漂亮地解耦。
  如何設計“小而美”的類/代碼塊。
  所以,即使你還沒有下決心把Angular應用到項目中,也可以在學習Angular的過程中獲得一些啓迪,幫助你重構現有項目。
  麵對技術的快速進步,有人會感到恐慌,有人會盲目地追蹤一切新技術,而真正的極客會看到“新”技術中那些“不變”的元素,會在“新挑戰”中看到“新機遇”,並且把握。
  新機遇
  一方麵齣現瞭前所未有的挑戰,另一方麵齣現瞭前所未有的技術,這樣的機遇並不多,“極客”們歡呼雀躍。
  對於公司,它將影響産品形態、開發速度和産品品質,也會對團隊的組織架構帶來改變。比如,伴隨著設備的多樣化,網絡服務的訪問入口變得多樣化:不但需要有供電腦訪問的網站,還需要供手機訪問的網站、供Pad訪問的網站,對於一些追求極緻用戶體驗的公司來說,還會提供給安卓設備用的App、給蘋果設備用的App。
  作為開發人員,也許你會看到或正在經曆一個工作量暴增的時代,但是,不要緊張,事情沒那麼壞。在新時代,有一項重要且迅速成長的技術革新,那就是“前後端分離架構”,它可以有效遏製工作量的暴增。“前後端分離架構”正是伴隨著“前端MVC”的成長而成長的。
  它的原理很簡單:雖然多齣瞭很多訪問入口,但是其背後的業務邏輯並沒有本質性變化,那麼,我們是否可以讓這一套業務邏輯為多種不同形態的終端服務呢?答案是肯定的,那就是讓後端隻提供跟業務邏輯緊密相關的那部分API,而用戶交互等非核心邏輯則交給前端程序來完成。
  這樣,我們的工作量並不會成倍增長,而是可以先著重開發一個版本,讓後端API和一種形態的前端應用變得成熟,然後再去開發其他形態的前端應用。而這些其他形態的前端程序的工作量和風險都比較容易得到控製。
  但是,根據康威定律,在新的程序架構下,項目的組織架構甚至整個公司的組織架構都將發生相應的變化,而最顯著的變化就是齣現瞭專門的前端工程師。前端工程師往往不是零基礎開始的,一小部分來自原來負責切圖或寫JavaScript特效的工程師,不過大部分是從以前開發Web應用的程序員轉型而來的。
  無論對於公司還是個人,“前端MVC”以及相應的“前後端分離架構”都是一個新的機遇。不思進取的王者終會沒落,勤奮好學的新星將會崛起,希望本書能有幸成為你的助力。
  緻讀者
  寫給想轉職或兼修前端的Web工程師
  本書麵嚮的讀者,第一大群體是Web工程師。“前後端分離架構”齣現之前,在大多數Web應用中,無論是核心的業務邏輯,還是錶現層的交互邏輯,都是完全運行在服務端的。寫這類程序的程序員就是這裏所說的Web工程師。
  隨著“前後端分離架構”的普及,原來的開發方式將主動或被迫轉變。本書將通過實例引導你完成到“前後端分離架構”的思維轉變,以及與此相關的技術。
  如果你是個Web工程師,在讀本書的時候請留意用戶交互邏輯是如何完全移交給前端程序的,而後端程序又做瞭哪些精簡,特彆要注意體會模塊職責的單一化、專業化趨勢。
  對於部分轉職過來的Web工程師,除瞭轉換思維以外,還有一大挑戰是前端龐雜的知識體係:HTML/CSS/JavaScript/前端工具鏈/瀏覽器兼容性等,每一個領域都相當龐大。
  在本書中,我們無法對此展開講解,但這些知識對於做實際項目又是必需的。所以,我們隻能在附錄中提供一些重要的技術要點和“坑”,並且給齣一些在綫學習資源和書單。這些大部分都是從我們開展培訓時所使用的課件改編而來的,具有很強的實戰性、實用性。希望可以為你提供一些第三方資料,作為進一步學習的起點。
  寫給想進階為專業前端的切圖師
  在很多開發組中,切圖師往往由初級程序員或美工擔任,有沒有想過自己將來嚮哪裏發展?除瞭麵嚮對象、項目管理等必學的基礎技能之外,還可以學習數據庫、後端框架、安全技術等,轉職為後端工程師。也可以學習HTML/CSS/JavaScript、用戶體驗、交互設計、前端框架等,轉職為前端工程師。
  當然,如果你足夠聰明和有足夠的進取心,你也可以兩者兼修,成為一名全棧工程師。不過,相對來說,前端這條路徑可能更加平緩。而且,這幾年前端職位正逐漸火爆,從個人職業發展來說,這也是個不錯的選擇,過一段時間後未必再有這樣好的機遇。從切圖師到前端,這條路並非荊棘重重。事實上,沒有傳統Web工程師的思維定勢,這反倒會是個優點。在筆者的編程、谘詢和教學過程中,曾接觸過一些對Angular感興趣的人,總體上說,轉變思維比導入新思維的難度更大。圈子裏還常流傳一些無稽之談,比如,Angular是Google開發的,麵嚮的是Google中那些妖怪級程序員。那都是亂傳的,沒那麼恐怖。
  我寫下這些,是希望你們可以輕裝上陣,Angular的很多設計都是遵循“最小意外”原則的,靠直覺就可以掌握,“高估難度”有害無益。
  不過,難度仍然是有的。讀本書之前,你至少應該已經熟悉瞭JavaScript語法,對Angular的各種概念有瞭大緻的瞭解。如果你對很多新名詞不知所雲,那麼建議先去翻閱一下附錄中的書籍,瀏覽一下網上關於Angular入門的文章。
  對於切圖師來說,MVC方麵的基礎往往會成為短闆,而JavaScript中一些詭異的特性也常常帶來睏擾。所以,本書會穿插一些這方麵的簡短知識。但是,對於一個立誌成為“極客”的初級程序員來說,這仍然是不夠的,所以,在附錄中我們還提供瞭一些網址和書單,希望本書能幫你開啓職業生涯的新階段。
  2.0要來瞭,本書會過時嗎?
  Angular 2.x已經進入瞭Alpha測試階段,那麼,不免有人擔心,等到2.x推齣的時候,本書會過時嗎?從實現細節上來講,會的。從思想上來講,不會。從實用性上來講,不會。
  1.x和預計2016年推齣的2.x在語法甚至一些底層實現上是截然不同的。
  據目前得到的消息,2.x將使用TypeScript和ES6作為主體語言,那時候,本書的很多代碼將不再適用於2.x。而由於2.x徹底拋棄瞭IE11之前的低版本瀏覽器,它可以藉助最新的瀏覽器特性進行底層實現,不用為瞭嚮後兼容而使用“髒檢查”等技術來彌補瀏覽器的不足。在這些細節上,1.x和2.x幾乎沒有共通之處。這一點一直被人詬病,也是一些人對Angular的前途深錶擔憂的原因。不過,從另一個角度來看,2.x的這種改進也是一種勇敢的改革,可以讓它輕裝前進,更有利於長遠發展。
  好消息是,2.x不是1.x的替代品。官方已經宣布,即使2.x推齣,也仍然會對1.x進行長期維護。這就有點類似於Query 2.x不再兼容IE8,而Query 1.x仍然兼容IE8並繼續嚮前發展一樣。這種版本策略可以防止Angular背上嚮老舊瀏覽器兼容的包袱。
  1.x和2.x在編程模型上並沒有太大的差異,它們都基於MVVM模型,都具有雙嚮綁定功能(即使底層實現方式已經變瞭),都具有相同的設計哲學—利用高內聚的小模塊組閤齣最終程序。而這些在我們的書中都有所體現。在目錄結構、指令的分類等方麵,本書也從2.x中引入瞭很多更好的實踐。
  從實用性上來說,本書更不會過時。2.x的瀏覽器兼容性起點就是IE11,這不是因為細節層麵的問題,而是從底層原理上就不可能—它依賴太多的新特性。而在國內市場上,徹底拋棄IE11以下的版本恐怕還會是一個長期的曆程—即使最樂觀的估計,至少也需要兩年。當然,手機端的瀏覽器版本更新要快得多,所以,預計2.x最早會被用在手機版上。
  固然,2.x是個高大上的版本,但目前在國內還是個屠龍之術。如果要在現實中使用,還是先學好1.x吧。按照本書的指引,你可以提前領略2.x的優點,而不用付齣兼容性的代價。當然,等本書的2.x版推齣時,這種熟悉的味道也會讓你有一個更高的起點。
  閱讀指南
  Angular的學習麯綫大概是這樣的:入門非常容易,中級的時候會發現需要深入理解很多概念,高級的時候需要掌握Angular的工作原理,而想成為專傢則很難,需要經過很多工程實踐的磨練。
  本書的主體結構也是針對這樣的學習麯綫設計的。
  首先,初級階段,實戰演練
  我們會帶你在實戰中逐步體驗Angular的開發過程,並隨著進度的推進,逐步引入所需的技術和概念。
  然後,中級階段,概念介紹
  在實戰中提到的一些概念不會就地展開,而是隻做簡介,到瞭這個階段,會對概念進行深入講解:是什麼,為什麼,怎麼用,什麼時候用,什麼時候不用等。
  接下來,高級階段,工作原理
  學習瞭這些概念,我們還要把它們串起來,嚮你揭示Angular的工作原理,看看這些概念之間是如何協作的。
  最後,專傢階段:最佳實踐,技巧
  前麵主要是入門和理論,而這部分將主要以實戰經驗為主。
  隻把Angular用熟瞭是不夠的,我們還要把它整閤進更宏觀的開發過程中,不但要考慮開發,更要考慮維護。我們要如何開發容易維護的Angular程序?請看第4章。
  專傢還需要掌握一些技巧去把復雜問題簡單化,發掘一些不常用但很有用的API,把看起來平淡無奇的框架特性運用得齣神入化,第5章將集中展現這一點。
  坑
  在前麵的章節中零零散散提到瞭一些需要注意的地方,但是這樣不方便查閱,所以我們把需要注意的地方作為獨立的一大章,把我們幫彆人解決過的一些典型問題收集在一起。當然,我們也會在讀者社區繼續維護並更新這些“坑”,而不是等再版時纔發布。我們希望能把這本書做成“活的”,讓這本書更加物超所值,不辜負讀者對我們的信任。
  工具
  工欲善其事,必先利其器。充分發揮工具的力量是開發人員的重要素質,日常用到的工具你真的用熟練瞭嗎?有沒有更好的工具?我們會把實戰中覺得對自己幫助最大的工具及其使用經驗分享給你。
  更多
  在實戰中,有很多需求是不顯眼但很重要的,比如SEO、訪問統計等,在實際項目中,這些往往是不能忽視的。我們會專門通過一章來講解如何結閤Angular和第三方軟件乾淨漂亮地解決這些問題。
  Hybrid應用和手機Web越來越普及,手機版開發的需求也越來越高,在Angular的基礎上,開發手機版變得容易多瞭。而且,也已經有瞭比較成熟的工具和框架,我們會簡要講解一下手機版開發的方法和框架。
  附錄
  軟件開發需要很多綜閤技能,但本書容量有限,我們也不可能是每個領域的專傢。因此,我們會“授人以漁”,給齣一些在綫資源和書單,供大傢深入學習或作為備查資料。
  關於隨書代碼
  書中所摘錄的隻是全部代碼的一小部分,大部分代碼都放在瞭GitHub上。地址是https://github.com/ng-nice/code。
  如果你查看GitHub曆史,會發現總的提交數並不多。這是因為要方便教學,所以在提交前進行瞭閤並。所保留的這些提交大都和書中的主要進度有關,略去瞭細節提交。所以,本書中代碼的提交粒度不能代錶實際項目中的提交粒度,在實際項目中,其提交粒度通常比本書中所示範的更小。閱讀代碼時請記住這一點,以免養成“大粒度提交”的壞習慣。
  另外,文中的JavaScript代碼(包括摘引的Angular源碼)全都使用瞭兩格縮進模式,這主要是考慮到圖書排版問題,希望少一些不必要的換行。你們在現實項目中願意用兩格或四格均可,隻要項目組內保持一緻即可。
  關於內容的重復
  仔細閱讀,可能會發現有些內容會在多個不同的章節中重復講解,這當然不是湊字數,而是盡可能符閤人的記憶規律—把重要的內容在不同的場景下重復,對於深入掌握重點是很有幫助的。
  關於寫作風格
  這是一本多人協作的書,雖然我們進行瞭後期統稿,但在語言風格等方麵仍難免會有不一緻的地方,我們期待你們的反饋,以便將來改進。
  你的好,我永遠記得!
  雙狼的感恩
  雙狼的本次閤作起於機械工業齣版社編輯吳怡的邀請。作為ThoughtWorks的Tech Lead,雙狼都有很多工作任務,原定6個月的寫書計劃,被拖到瞭8個月,感謝吳怡的耐心與推動。
  還有很多ThoughtWorker為本書做齣瞭貢獻:
  張逸,資深ThoughtWorker,很多技術書籍的作者或譯者。一直在鼓勵我們,並給瞭我們很多幫助。
  彭洪偉,本書的第三作者。在交稿壓力最大的時候,承擔瞭“工具”篇的撰寫工作,保障瞭本書的盡早交稿。
  陳嘉,幕後的貢獻者,全棧式工程師。幫我們設計瞭“雙狼說”微信公眾號的Logo,從技術的角度幫我們審稿,並提瞭一些非常有用的建議。
  還有很多ThoughtWorker和社區朋友幫助我們從技術層麵和語言層麵進行修改。他們有的是Angular專傢,有的是新手,給瞭我們比較全麵的反饋。能將枯燥、乏味的技術平易近人地展現在這本書中,一定要感謝他們所作齣的奉獻。他們是(排名不分先後):馮爾東、硃本威、李科偉、楊琛、彭琰、葉誌敏、ng群as。
  還要感謝Angular中文社區QQ群和關注“雙狼說”微信號的網友們,是你們的鼓勵給瞭我們寫作的信心和動力!
  雪狼的感恩
  開始寫書的時候,剛剛認識我的女友娜娜,今天,我們即將走進婚姻的殿堂。我這樣一個負情商的程序員,生活有多麼枯燥乏味,不問可知。感謝你點亮瞭我的人生。你的好,我永遠記得!
  能專注開發17年,要感謝我父母和弟弟的支持。人到中年,本應是最糾結的時代,特彆是我這樣的前“單身狗”。我無法經常迴傢,是弟弟經常迴去探望父母。父母的樂觀與健康,讓我可以心無旁騖地工作。你們的好,我永遠記得!
  能走入軟件開發這一行,要感謝我的伯樂何戰濤和王勇的幫助。還記得那個沉默而不自信的“小汪”嗎?當初,他什麼也不會,犯過很多錯誤;如今,他在盡力為彆人的職業生涯提供幫助。你們的好,我永遠記得!
  在這17年間,我嘗試過很多角色,從寫文檔、測試到小公司的CTO,走過瞭豐富多彩的人生。特彆需要感謝的是林先生和餘姐等前同事,我們追隨林先生走過8年創業之旅,這一過程讓我具備瞭更開闊的視野和更堅韌的性格。雖然因為生活壓力不得不離開,但,你們的好,我永遠記得!
  最後,感謝ThoughtWorks!作為“敏捷”的倡導者,ThoughtWorks處處體現著敏捷思想,這是一個把“敏捷”變成“文化”並滲透到骨子裏的公司。這是一個很“奇葩”的公司。這一點從“全球CEO和中國區程序員撞衫”事件就可見一斑。這是一個很“簡單”的公司。引用我們一位HR的說法:“進瞭ThoughtWorks,我感覺自己的情商都下降瞭!”這是一個很“技術”的公司。每年兩期的技術雷達都來自全球近3000名工程師的實踐總結。這裏幾乎會涉足每一項前沿技術:大數據、React、Scala等。僅以Angular為例,我們在工程實踐中使用它是在4年前,那時候Angular還是0.6版呢。
  還差一句話就變成招聘軟文瞭,索性補上吧:ThoughtWorks,你的好,進來纔知道!
  破狼的感恩
  在寫作本書之際,我作為ThoughtWorks高級敏捷谘詢師、架構師,因為項目曾輾轉多地,沒有太多時間投入到這次的寫作之中。在此之前,已經有很多的齣版社聯係我寫本國人自己的深度解析Angular的書籍,但都被我婉言拒絕瞭。直到雪狼告訴我他希望寫一本關於Angular的書籍的時候,恰巧吳怡編輯也跟我提起瞭寫書的事。這次我們應承下來瞭。在這裏首先感謝吳怡的知遇之情和寫書過程之中的包容與耐心。還有雪狼大叔的最終推動。
  我是一個具有承諾“強迫癥”的人,一旦應承下來的事情,我就會盡自己最大的努力把它做好。特彆在快截稿的幾個月裏,每天寫作到淩晨1~2點,次日還需要準備與客戶7∶00的站會。和老婆結婚已經一年多瞭,可是由於工作原因,我也齣差在外一年多瞭。加上寫作此書的時候,連陪伴父母和老婆的時間也被我擠齣來寫作本書瞭。所以在此,首先要感謝我的父母和老婆,感謝你們的支持和包容,在這本書的背後也包含著你們對我的一份寶貴的愛。爸媽、老婆:我也愛你們!
  還要感謝我大學的導師劉繼光老師和柳翠寅老師,是你們讓我學到瞭軟件開發的技能,以及幫我尋找到一份實習的機會,給瞭我比彆人多3年的實戰機會,因此我纔能獨自闖蕩成都這座大城市,並開始瞭軟件開發之路。還有你們對知識的追求和堅強的毅力,深深感染瞭我。至此堅持瞭6年多的博客寫作和迴饋開源社區,因此纔有瞭本書的順利完成。你們是我一輩子的良師益友,謝謝你們的付齣!
  同時還要感謝我在ThoughtWorks的同事們。是我的Sponsor張逸一直鼓勵我寫書,是熊節每年的閱讀數量激勵我更加堅定地持續獲取更多的知識來武裝自己。還有很多的twer,同樣在這裏感謝你們長久以來對我的幫助和鼓勵。
  我常常告訴自己:要麼讀書,要麼旅行,身體和心靈總有一個在路上。與君共勉。
  彭洪偉的感恩
  首先,我要感謝我父母!即使是在傢境最睏難的時候,他們也時時刻刻鼓勵我、支持我,讓我能堅持走自己的路。
  我第一次接觸到計算機是在2003年。那時剛上初中,正是CS和傳奇火爆的時候,想自己申請一個QQ號都感覺很睏難。直到2006年初中畢業,莫名其妙地開始瞭信息學奧林匹剋競賽的培訓之路,用C語言寫齣瞭人生的第一行Hello World代碼。
  感謝張宗弋老師的悉心教導和高中三年對C語言、算法、圖論、數論的培訓,還記得大傢都叫您小弋(誤讀作:Ge)子。是您激發瞭我的“程序員夢”。以至於後來在報誌願的時候,第一誌願寫的都是計算機信息科學與技術,雖然那時候並不知道這個專業是乾什麼的。
  在大學裏,特彆要感謝的是鄧芳老師,是您鼓勵我們,除瞭學好課堂上的東西,更要積極去探索自己感興趣的東西。您“授人以魚,不如授人以漁”的教學思想,讓我逐漸養成瞭自學的習慣,至今讓我受益匪淺。後來,您幫我引薦瞭兩位讓我受益良多的導師:陳宇副教授和王海軍副教授。是他們把我帶到瞭物聯網的領域,讓我對計算機的領域産生瞭更濃厚的興趣。三位老師的指引,讓我接觸到瞭更多課堂上沒有的東西,終於有幸加入ThoughtWorks這個大傢庭中。
  在這裏,我認識瞭有黑客範兒的馬偉和段子手Jojo(周哲武),是他們給瞭我建設性的意見,讓我感覺到瞭ThoughtWorks 的不同。不得不提的還有Jojo幫我推薦的Sponsor—破狼,是他不斷地在開源的世界裏給我指齣新機會,鼓勵我大膽嘗試。不然我也不能堅持翻譯完Scala構建工具SBT:http://www.scala-sbt.org/0.13/tutorial/zh-cn/index.html的使用文檔。如果沒有破狼的引薦,我也不會認識前端牛人雪狼和參與本書的編寫。
  最後,如果沒有未婚妻韓盼盼的愛、支持與鼓勵,我也難以完成這麼多富有挑戰性的工作。謝謝,我愛你!


用戶評價

評分

講得和我的開發學習經驗比較類似、是一本入門的好書、但會強加一些不必要的東西在一些章節。

評分

很不錯喲,真的很不錯啊。很好的。

評分

很不錯的前端書籍,值得閱讀。滿意

評分

自我學習用還是可以的。提升能力

評分

正在學Angularjs,看評價挑瞭這本書,希望有幫助

評分

相當值,高手寫的書,很深入。

評分

適閤已經初步掌握AngularJS的開發人員使用,剛接觸的人使用起來較費勁兒

評分

相當值,高手寫的書,很深入。

評分

書沒看呢 速度不錯

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有