《App研發錄》面世

  古者富貴而名滅,不可勝記,惟倜儻很是之人稱焉。故西伯拘而演《周易》,屈原放逐,乃賦《離騷》。文人雅士一次次的譜寫着千古絕唱,而我亦不能免俗,也要附庸風雅,寫一部前不見古人、後不見來者的經典之做。html

  因而,歷時一年,嘔心瀝血,結合自身3年來從事App領域的一線實戰經驗,再輔之以從事軟件行業十餘載的奇技淫巧,寫下這洋洋灑灑三百多頁十幾萬字。初稿完成後,就如同和氏璧般,竟找不到出版社願意出版,而我又不願妥協,去寫那些無關痛癢的語法介紹和UI佈局等入門級章節。就在這時,杜勇幫我介紹了機械工業出版社的吳怡老師,促成了這本書的出版。程序員

  臨近出版之際,約到了周鴻禕和劉江、屠毅敏等人的序言。劉江老師是帶我進入圖書出版的引路人,回想起來也是八年前的事了;而屠毅敏則是WaxPatch的發明者,全世界第一個解決了iOS熱修復線上bug的人(JSPatch要晚好幾年)。提及周鴻禕,那是我在某個微信羣誤打誤撞認識的,他欣賞我一條路走到黑的研究精神,而我則欣賞他的個性張揚。現實中咱們從未見過面,前幾天我去360給他送樣書,保安不讓進,我也只好鎩羽而歸。算法

  購書地址:http://item.jd.com/11791229.html編程

  隨書源碼:http://www.cnblogs.com/Jax/p/4656789.html設計模式

 

 

  最後,附上本書的前言,以饗讀者:緩存

 

皇皇三十載,書劍兩無成 微信

  在你面前娓娓而談的我,曾經是一位技術宅男。我寫了6年的技術博客,500多篇技術文章。十年編程生涯,我學習了.NET的全部技術,可是從微軟出來,踏上互聯網這條路,卻發現本身仍是小學生水平,當時恰逢三十而立之年,感慨本身多年來一事無成,因而又開始了新一輪的學習。選擇移動互聯網這個方向,是由於這個領域全部人都是從零開始,你們都是摸索着作,初期沒有高低上下之分。網絡

  在此期間,我作過Window Phone的App,學會了Android和iOS,慢慢由二把刀水平升級到現在的著書立說,原本我想寫的是iOS框架設計,由於當時這方面的經驗積累會更多一些,2013年的時候我在博客上寫了一系列這方面的文章,惋惜沒有寫完。現在這本書是以Android爲主,可是框架設計的思想是和iOS一致的。框架

  做爲程序員,不寫本書流傳於世,貌似對不起這個職業。2008年的時候我就想寫,可那時候積累不夠,所知所會可能是從書本上看到的,因此沒敢動筆,而是選擇翻譯了一本書《MSIL權威指南》。翻譯途中發現,我只能老老實實地按照原文翻譯,而不能有所發揮。我渴望能有一個地方,天馬行空地將本身的風格淋漓盡致地表現出來,在寫這本書以前,只有個人技術博客。函數

  終於給了本身一個交代,東隅已逝,桑榆非晚。

 

文章本天成,妙手偶得之

  這是一本先後風格迥異的書,以致於完稿後,不知道該給本書起一個什麼樣的書名。只但願各位讀者看過以後能獲得一些啓示,我就心滿意足了。

  下面介紹一下本書的章節概要。本書分爲三個部分共計12章。

  第1章講重構。這是後續3章的基礎。先別急着看其餘章節,先看一下這一章介紹的內容,你的項目是否都作到了。

  第2章講網絡底層封裝。各個公司都對App的網絡通訊進行了封裝,但都稍顯臃腫。我介紹的這套網絡框架比較靈巧,並且擺脫了AsyncTask的束縛,能夠在底層或上層快速擴展新的功能。這樣講多少有些自賣自詡,好很差仍是要聽讀者的反饋,建議在新的App上使用。

  第3章講App中一些經典的場景設計,好比說城市列表的增量更新、緩存的設計、App與HTML5的交互、全局變量的使用。對於這些場景,各位讀者是否有似曾相識的感受,是否能從個人解決方案中產生共鳴?

  第4章介紹Android的命名規範和編碼規範。網上的各類規範多如牛毛,但咱們不能直接拿來就使用,要有批判地繼承吸取,要總結出適合本身團隊的規範。因此,即便是我這章內容,也請各位讀者有選擇地採納。我寫這一章的目的,就是要強調「無規矩不成方圓」,代碼亦如是。

  第5章和第6章組成了Android崩潰分析三部曲。寫這本書用了一年,其中有半年多時間花在這兩章上。一方面,要不斷優化本身的算法,訓練機器對崩潰進行分類;另外一方面,則是對八十多種線上崩潰追根溯源,找到其真正的緣由。

  第7章講Android中的代碼混淆。本不應有這一章,只是在工做中發現網上關於ProGuard的介紹大都隻言片語。官方卻是有一份白皮書,可是針對Android的介紹卻不是不少,因而便寫了這章,系統而全面地介紹了在Android中使用ProGuard的理論和實踐。

  第8章講持續集成(CI)。十年傳統軟件的經驗,使我在這方面駕輕就熟。這一章所要解決的是,如何把傳統軟件的思想遷移到App上。

  第9章講App競品分析,是研究了市場上幾十款著名App並參閱了大量技術文章後寫出的。以前積累了十年的軟件研發經驗,這時極大地幫助了我。

  第10章講項目管理,是爲App量身打造的敏捷過程,是我在團隊中一直堅持使用的開發模式。App通常2周發一次版本,迭代週期很是快,適合用敏捷開發模式。

  第11章講平常工做中的問題解決辦法。那是在一段刀尖上舔血的日子中總結出的辦法,那時天天都在戰戰兢兢中度過,有問題要在最短期內查找到緣由並儘量修復;那也是我的能力提高最快的一段時光,每一次成功解決問題都伴隨着我的的成長。

  第12章講App團隊建設。我是一個孔雀型性格的老闆,因此個人團隊中可能是外向型的人,或者說,把各類悶騷型技術宅男改形成明騷;我是從技術社區走出來的,因此我會推崇技術分享,關心每一個人的成長;我有8年軟件公司的工做經驗,因此我擅長寫文檔、畫流程圖,以確保一切盡在掌握之中。有這樣一位奇葩老闆,對面的你,還不快到個人碗裏來,個人郵箱是16230091@qq.com,個人團隊,期待你的加入。

 

心如猛虎,細嗅薔薇

  話說,我也是無心間踏上編程這條道路的。若是不是在大三實在學不明白實變函數這門課的話,我如今也許是一個數學家,或者和個人那些同窗同樣作操盤手或是二級市場。

  我真正的愛好是看書,最初是資治通鑑、二十四史,後來發如今飯桌上說這些會被師弟師妹們當作怪物,因而按照中文系同窗的建議翻看張愛玲、王小波的小說,讀梁實秋的隨筆。在復旦的四年時光,薰出了一身的「臭毛病」,好比說看着夜空中的月亮會莫名其妙地流眼淚,會喜歡喝奶茶而且挑剔珍珠的口感。

  不要覺得程序員只會寫代碼。程序員作烘焙絕對是逆天的,由於這用到軟件學中的設計模式,我也曾研發出失敗的甜品,作餅乾時把黃油錯用成了淡奶油,而後把烤得硬邦邦的餅乾次日拿給同事們吃。

  我涉及的領域還有不少,好比煮咖啡、唱K、看老電影,都是在編程技術到了必定瓶頸後學會的,每一類都有很深的學問。不要一門心思地看代碼,生活能教會咱們不少,而後反過來讓咱們對編程有更深入的認識。

  心如有桃園,何處不是水雲間。

 

會當凌絕頂,一覽衆山小

  若是後續還有第二卷,我但願是講數據驅動產品。就在本書寫做期間,個人思想發生了一次昇華,那是在2015年初的一個雪夜,我完成了從糾結於寫代碼的方法到放眼於數據驅動產品的轉變。這也是這本書前面代碼不少,越到後面代碼越少的緣由。

  數據驅動產品是將來十年的戰略佈局。以前,咱們過多地關注於寫代碼的方法了,卻始終搞不清用戶是否願意爲咱們辛辛苦苦作出來的產品買單,技術人員不知道,產品人員更不知道。產品人員須要技術人員提供工具來幫助他們進行分析,好比說ABTest,好比說精準推送平臺,好比說用戶畫像,而咱們檢查本身的代碼,卻發現連PV和UV都不能確保準確。

  這也是我接下來的研究和工做方向。

相關文章
相關標籤/搜索