由於年末將至,前陣子一直忙於工作的事務,不得已暫停了微信訂閱號的更新,我將會在后續的時間里盡快的繼續為大家推送更多的博文。畢竟一個人的力量微薄,精力有限,希望大家能理解,仍然能一如既往的關注和支持shuang_lang_shuo[破狼]微信號,同時也歡迎大家的高質量文章的投稿。
在2015年一年時間中,我、雪狼大叔、彭洪偉一起共同編寫了《AngularJS深度剖析與最佳實踐》這本前端Angular.js框架的進階書籍。在寫作期間也得到很多人的支持,特別是在Angularjs中文社區群中的各位群友的持續關注。中途由於寫作、出版流程等因素,花費了大家很長的等待時間,就在昨天《AngularJS深度剖析與最佳實踐》這本書籍終於上市了,大家現在可以在京東上預訂書籍了,相信出版社也會在很快的時間內送到大家手中。
鏈接地址:http://item.jd.com/11845736.html#none
雙狼的寫作感謝
我和雪狼的本次合作起於機械工業出版社編輯吳怡的邀請。作為ThoughtWorks的Tech Lead,雙狼都有很多工作任務,原定6個月的寫書計划,被拖到了8個月,感謝吳怡的耐心等待與支持。
還有很多ThoughtWorker為本書做出了貢獻:
張逸,資深ThoughtWorker,很多技術書籍的作者或譯者。一直在鼓勵我們,並給了我們很多幫助。
彭洪偉,本書的第三作者。在交稿壓力最大的時候,承擔了“工具”篇的撰寫工作,保障了本書的盡早交稿。
陳嘉,幕后的貢獻者,全棧式工程師。幫我們設計了“雙狼說”微信公眾號的Logo,從技術的角度幫我們審稿,並提了一些非常有用的建議。
還有很多ThoughtWorker和社區朋友幫助我們從技術層面和語言層面進行修改。他們有的是Angular專家,有的是新手,給了我們比較全面的反饋。能將枯燥、乏味的技術平易近人地展現在這本書中,一定要感謝他們所作出的奉獻。他們是(排名不分先后):
馮爾東、朱本威、李科偉、楊琛、彭琰、葉志敏、ng群as。
還要感謝Angular中文社區QQ群和關注“雙狼說”微信號的網友們,是你們的鼓勵給了我們寫作的信心和動力!
書籍的閱讀指南
Angular的學習曲線大概是這樣的:入門非常容易,中級的時候會發現需要深入理解很多概念,高級的時候需要掌握Angular的工作原理,而想成為專家則很難,需要經過很多工程實踐的磨練。
本書的主體結構也是針對這樣的學習曲線設計的:
首先,初級階段,輕松入門
我們會帶你在實戰中逐步體驗Angular的開發過程,並隨着進度的推進,逐步引入所需的技術和概念。
然后,中級階段,概念介紹
在實戰中提到的一些概念不會就地展開,而是只做簡介,到了這里,會對概念進行深入講解:是什么,為什么,怎么用,什么時候用,什么時候不用等。
接下來,高級階段,工作原理
學習了這些概念,我們還要把它們串起來,向讀者揭示Angular的工作原理,看看這些概念之間是如何協作的。
最后,專家階段:最佳實踐,技巧
前面主要是入門和理論,而這部分將主要以實戰經驗為主。
只把Angular用熟了是不夠的,我們還要把它整合進更宏觀的開發過程中,不但要考慮開發,更要考慮維護。我們要如何開發容易維護的Angular程序?請看“最佳實踐”一節。
專家還需要掌握一些技巧去把復雜問題簡單化,把一些不常用但很有用的API發掘出來,把看起來平淡無奇的框架特性運用得出神入化,“使用技巧”一節將集中展現這一點。
坑
在前面的章節中零零散散提到了一些需要注意的地方,但是這樣不方便查閱,所以我們把它作為獨立的一大章,把我們幫別人解決過的一些典型問題收集在一起。 當然,我們也會在讀者社區繼續維護並更新這些“坑”,而不是等再版時才發布。 我們希望能把這本書做成“活的”,讓這本書更加物超所值,不辜負讀者對我們的信任。
工具
工欲善其事,必先利其器。充分發揮工具的力量是開發人員的重要素質,日常用到的工具你真的用熟了嗎?有沒有更好地工具?我們會把實戰中覺得對自己幫助最大的工具及其使用經驗分享給你。
更多
在實戰中,有很多需求是不顯眼但很重要的,比如SEO、訪問統計等,在實際的項目中,這些往往是不能忽視的。 我們會專門開一章來講解如何結合Angular和第三方軟件來干凈漂亮的解決這些問題。
Hybrid應用和手機Web越來越普及,手機版開發的需求也越來越高,在Angular的基礎上,開發手機版變得容易多了。而且,也已經有了比較成熟的工具和框架,我們會簡要講解一下手機版開發的方法和框架。
附錄
軟件開發需要很多綜合技能,但本書容量有限,我們也不可能是每個領域的專家。因此,我們會“授人以漁”,給出一些在線資源和書單,供大家深入學習或作為備查資料。
關於隨書代碼
書中所摘錄的只是全部代碼的一小部分,大部分代碼都放在了Github上。
如果你查看Git歷史,會發現總的提交數並不多。這是因為要方便教學,所以在提交前進行了合並。所保留的這些提交大都和書中的主要進度有關,略去了細節提交。所以,本書中代碼的提交粒度不能代表實際項目中的提交粒度,在實際項目中,其提交粒度通常比本書中所示范的更小。閱讀代碼時請記住這一點,以免養成“大粒度提交”的壞習慣。
另外,文中的js代碼(包括摘引的angular源碼)全都使用了兩格縮進模式,這主要是考慮到圖書排版問題,希望少一些不必要的換行。你們在現實項目中願意用兩格或四格均可,只要項目組內保持一致。