官术网_书友最值得收藏!

前言 Preface

為什么要寫這本書

服務端開發涉及的面非常廣,特別是在阿里、騰訊、字節跳動這類動輒十億級用戶、億級DAU(Daily Active User,日均活躍用戶數)的頭部企業的核心業務場景中,服務端開發充滿挑戰。然而,在校園中,相關學科的編程實踐課程仍多停留在開發學生管理系統的水平上,與行業的實際需要脫節;在市面上,服務端開發相關的書籍大都聚焦于解讀某種編程語言、中間件、開發框架或編程思想,缺乏互聯網服務端開發實踐內容和對服務端開發的體系化介紹。一系列因素導致服務端開發長期以來被誤解為Java開發、Go開發之類的“某編程語言開發”,或者被簡單地定義為“編寫運行于服務器的程序”。

2020年,我在GitChat和CSDN上原創的技術博客突破一百萬字,成為博客專家。碼字科技創始人謝工建議我將博客專欄整理成書出版,并將我引薦給了機械工業出版社的楊福川老師。彼時,寫一本全景式介紹服務端開發書籍的想法在我心頭萌芽了。當我躊躇滿志地準備大干一場的時候,我意識到一個嚴重的問題:服務端開發涉及的內容實在太多了,紛繁復雜的知識點令人望而生畏。幾經思考,自認為沒有足夠的時間付之于此,于是我又退縮了。

時間來到2021年年底,支付寶會員與公益技術部要對入職兩年以內的服務端開發工程師進行技術培訓,晏嬰推薦我作為首門課程“大話系分設計”的講師。接到這個任務,我不由得心頭一緊。系分設計涵蓋需求分析、抽象建模、系統設計、數據設計和非功能性設計等內容,實際上就是一幅服務端開發全景圖。好在有將近一個月的時間準備,借此契機,我得以體系化地梳理服務端開發的知識脈絡。

在之后的線下授課和交流中,我發現服務端開發工程師存在一些普遍性問題:其一,傾向于將產品文檔“翻譯”成代碼,輕視業務,由于對業務領域全貌不了解,原本關鍵的抽象建模過程流于形式;其二,局限于圍繞數據庫開發,出手便是表結構設計,本末倒置;其三,在系統設計和開發中注重需求功能實現,對于高并發、高可用、高性能等非功能性問題考慮不足??紤]到短暫的線下培訓難以將上述問題逐一講透,我決定結合服務端開發的實際流程,編寫一部開發指南。無心插柳柳成蔭。隨著編寫工作的推進,寫書的時機悄然成熟了。于是,我再次聯系了楊福川老師,并在他的幫助下進一步完善了目錄,最終確定了寫作本書的計劃。

自2016年起,我一直堅持通過寫技術文章來分享知識,先后在CSDN、GitChat、知乎、阿里技術公眾號、阿里ATA等平臺上發表了數百篇技術文章,其中部分文章還曾入選平臺“年度最火文章合集”“年度好評TOP10”和“頭條推薦”。不過,這些文章像一個個分散的點,不成體系,對讀者的幫助相對有限。鑒于此,我希望通過本書,全景式、體系化地為讀者呈現服務端開發的方法和實用解決方案。

讀者對象

?IT從業人員:服務端開發工程師、客戶端開發工程師、產品經理、測試工程師等。

?高校學生:計算機、自動化、電氣、通信等專業的學生。

本書特色

在互聯網領域,技術日新月異,以有限的精力持續學習十分困難。幸運的是,無論技術如何演進,其背后的方法論往往大同小異,經典解決方案歷久彌新。因此,掌握方法論和實用解決方案尤為必要。不同于一般的技術書籍,本書不局限于任何一種具體的編程語言、框架、容器、中間件或編程思想,而是致力于全景式、體系化地解讀服務端開發的流程、重點和難點。

本書分為技術與方法、解決方案兩部分,理論結合實踐。第一部分對需求分析、抽象建模、系統設計、數據設計和非功能性設計等服務端開發的核心環節進行了深入的解讀,可以幫助讀者快速、體系化地掌握服務端開發的相關知識。第二部分針對高并發、高可用、高性能、緩存、冪等、數據一致性等問題提供了行業經典解決方案,可以幫助讀者夯實技術基礎,提升競爭力。為了便于讀者理解,本書還列舉了大量案例,并繪制了200多張圖,圖文并茂。

本書主要內容

本書共14章,內容分為兩部分。

第一部分包括第1~6章,主題是技術與方法。本部分首先介紹服務端開發的定義、職責、技術棧、核心流程和進階路徑,然后從需求分析、抽象建模、系統設計、數據設計、非功能性設計5個方面逐一展開,結合案例深入解讀服務端開發的實操方法、重點和難點,為讀者清晰呈現服務端開發的全景圖。通過學習本部分內容,讀者可以快速、體系化地掌握服務端開發的相關知識和方法。

第二部分包括第7~14章,主題是解決方案。本部分針對高并發、高可用、高性能、緩存、冪等、數據一致性等服務端開發的典型問題,結合業務場景進行系統性分析并給出實戰方案,并就接口設計、日志打印、異常處理、代碼編寫、代碼注釋等實施細節給出行業案例和規范。本部分內容如同一本服務端開發問題手冊,可幫助讀者解決實踐中遇到的問題。

需要特別說明的是,第一部分內容不僅適合服務端開發人員學習,還適合前端開發、測試、產品經理、運營等崗位的人員學習,對提升技能、構建用例、設計產品和梳理需求大有裨益。第二部分內容所介紹的解決方案和開發規范均為行業實踐經驗的總結,部分知識點具有一定難度。如果你是一名經驗較為豐富的工程師,可以直接閱讀這部分內容;如果你從業不久或為在校學生,建議從第一部分的基礎理論知識開始學習。

勘誤和支持

由于作者的水平有限,書中難免會出現一些錯誤或者不準確的地方,懇請讀者朋友批評指正。大家可以發送郵件至郵箱jin_guo2013@163.com,反饋錯誤和建議。我將盡量為讀者提供滿意的解答。期待能夠得到你們的真摯反饋。

致謝

首先要特別感謝支付寶會員與公益技術部的桑美和晏嬰,正是他們的信任和支持為我寫作本書創造了契機。感謝謝工老師的引薦促成了本書的出版。

感謝張榮華、張知臨、張燎原、聶曉龍、薛維永、丁丁、王仁會、吳浩、厲科嘉、許瑞琦、汪恭正、肖劍平、馬晨、費冬、陳弢、厙仕杰、李會東、楊楨棟、陳亨斌、任亞榮、韓光亮、姜建劍、朱寒陽、唐燁、鄭子穎、李陽、孫巖,他們的文章和建議對本書部分內容的訂正和完善起到了重要作用。

主站蜘蛛池模板: 卓尼县| 陆河县| 荔浦县| 榆社县| 平舆县| 韩城市| 宜兰市| 石家庄市| 樟树市| 濉溪县| 饶平县| 安宁市| 昔阳县| 永和县| 瑞昌市| 凌云县| 宣汉县| 定日县| 尼勒克县| 高雄市| 潼关县| 五指山市| 兴文县| 奉化市| 枝江市| 天长市| 金寨县| 台安县| 宣化县| 固安县| 聂拉木县| 翁源县| 龙泉市| 额尔古纳市| 双城市| 镇远县| 宜城市| 石嘴山市| 新宁县| 平顶山市| 安多县|