《App研發錄》面世

來源:互聯網
上載者:User

標籤:

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

  於是,曆時一年,嘔心瀝血,結合自身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年軟體公司的工作經驗,所以我擅長寫文檔、畫流程圖,以確保一切盡在掌握之中。有這樣一位奇葩老闆,對面的你,還不快到我的碗裡來,我的郵箱是[email protected],我的團隊,期待你的加入。

 

心如猛虎,細嗅薔薇

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

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

  不要以為程式員只會寫代碼。程式員做烘焙絕對是逆天的,因為這用到軟體學中的設計模式,我也曾研發出失敗的甜品,做餅乾時把黃油錯用成了淡奶油,然後把烤得硬邦邦的餅乾第二天拿給同事們吃。

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

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

 

會當淩絕頂,一覽眾山小

  如果後續還有第二卷,我希望是講資料驅動產品。就在本書寫作期間,我的思想發生了一次升華,那是在2015年初的一個雪夜,我完成了從糾結於寫代碼的方法到放眼於資料驅動產品的轉變。這也是這本書前面代碼很多,越到後面代碼越少的原因。

  資料驅動產品是未來十年的戰略布局。之前,我們過多地關注於寫代碼的方法了,卻始終搞不清使用者是否願意為我們辛辛苦苦做出來的產品買單,技術人員不知道,產品人員更不知道。產品人員需要技術人員提供工具來協助他們進行分析,比如說ABTest,比如說精準推送平台,比如說使用者畫像,而我們檢查自己的代碼,卻發現連PV和UV都不能確保準確。

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

 

《App研發錄》面世

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.