這是一本從開(kāi)發(fā)流程、技術(shù)棧、典型問(wèn)題解決方案和開(kāi)發(fā)規(guī)范等維度全面講解服務(wù)端開(kāi)發(fā)的著作。它衍生自作者在某著名互聯(lián)網(wǎng)科技公司內(nèi)部講授的高口碑課程,是作者近10年服務(wù)端開(kāi)發(fā)經(jīng)驗(yàn)的總結(jié),同時(shí)融合了業(yè)界在服務(wù)端開(kāi)發(fā)方面的寶貴項(xiàng)目經(jīng)驗(yàn)和實(shí)踐智慧。
本書理論與實(shí)踐結(jié)合,擺脫編程語(yǔ)言、框架、中間件及傳統(tǒng)編程思想的束縛,全景式、體系化地闡述了服務(wù)端開(kāi)發(fā),核心內(nèi)容包括以下兩個(gè)部分。
第1部分:服務(wù)端開(kāi)發(fā)的技術(shù)和方法
首先,介紹了服務(wù)端開(kāi)發(fā)的職責(zé)、技術(shù)棧、核心流程和進(jìn)階路徑;然后,從需求分析、抽象建模、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)和非功能性設(shè)計(jì)5個(gè)方面展開(kāi),結(jié)合案例深入講解了服務(wù)端開(kāi)發(fā)的實(shí)操方法和重難點(diǎn),為讀者呈現(xiàn)出服務(wù)端開(kāi)發(fā)的全景圖,幫助讀者快速、體系化地掌握服務(wù)端開(kāi)發(fā)的相關(guān)知識(shí)和方法。
第2部分:服務(wù)端典型問(wèn)題的解決方案
針對(duì)高并發(fā)、高性能、高可用、緩存、數(shù)據(jù)一致性、冪等、秒殺等服務(wù)端開(kāi)發(fā)實(shí)踐中的典型問(wèn)題,給出了對(duì)應(yīng)的解決方案和開(kāi)發(fā)規(guī)范,同時(shí)還結(jié)合案例深入分析了不同方案的優(yōu)缺點(diǎn)。此外,還總結(jié)了接口設(shè)計(jì)、日志打印、異常處理、代碼編寫、代碼注釋等落地層面的行業(yè)案例和規(guī)范。
【為什么要寫這本書】
服務(wù)端開(kāi)發(fā)涉及的面非常廣,特別是在阿里、騰訊、字節(jié)跳動(dòng)這類動(dòng)輒十億級(jí)用戶、億級(jí) DAU(Daily Active User,日均活躍用戶數(shù))的頭部企業(yè)的核心業(yè)務(wù)場(chǎng)景中,服務(wù)端開(kāi)發(fā)充滿挑戰(zhàn)。然而,在校園中,相關(guān)學(xué)科的編程實(shí)踐課程仍多停留在開(kāi)發(fā)學(xué)生管理系統(tǒng)的水平上,與行業(yè)的實(shí)際需要脫節(jié);在市面上,服務(wù)端開(kāi)發(fā)相關(guān)的書籍大都聚焦于解讀某種編程語(yǔ)言、中間件、開(kāi)發(fā)框架或編程思想,缺乏互聯(lián)網(wǎng)服務(wù)端開(kāi)發(fā)實(shí)踐內(nèi)容和對(duì)服務(wù)端開(kāi)發(fā)的體系化介紹。一系列因素導(dǎo)致服務(wù)端開(kāi)發(fā)長(zhǎng)期以來(lái)被誤解為 Java 開(kāi)發(fā)、Go 開(kāi)發(fā)之類的某編程語(yǔ)言開(kāi)發(fā),或者被簡(jiǎn)單地定義為編寫運(yùn)行于服務(wù)器的程序。
2020 年,我在GitChat 和 CSDN上原創(chuàng)的技術(shù)博客突破一百萬(wàn)字,成為博客專家。碼字科技創(chuàng)始人謝工建議我將博客專欄整理成書出版,并將我引薦給了機(jī)械工業(yè)出版社的楊福川老師。彼時(shí),寫一本全景式介紹服務(wù)端開(kāi)發(fā)書籍的想法在我心頭萌芽了。當(dāng)我躊躇滿志地準(zhǔn)備大干一場(chǎng)的時(shí)候,我意識(shí)到一個(gè)嚴(yán)重的問(wèn)題:服務(wù)端開(kāi)發(fā)涉及的內(nèi)容實(shí)在太多了,紛繁復(fù)雜的知識(shí)點(diǎn)令人望而生畏。幾經(jīng)思考,自認(rèn)為沒(méi)有足夠的時(shí)間付之于此,于是我又退縮了。
時(shí)間來(lái)到 2021年年底,支付寶會(huì)員與公益技術(shù)部要對(duì)入職兩年以內(nèi)的服務(wù)端開(kāi)發(fā)工程師進(jìn)行技術(shù)培訓(xùn),晏嬰推薦我作為首門課程大話系分設(shè)計(jì)的講師。接到這個(gè)任務(wù),我不由得心頭一緊。系分設(shè)計(jì)涵蓋需求分析、抽象建模、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)和非功能性設(shè)計(jì)等內(nèi)容,實(shí)際上就是一幅服務(wù)端開(kāi)發(fā)全景圖。好在有將近一個(gè)月的時(shí)間準(zhǔn)備,借此契機(jī),我得以體系化地梳理服務(wù)端開(kāi)發(fā)的知識(shí)脈絡(luò)。
在之后的線下授課和交流中,我發(fā)現(xiàn)服務(wù)端開(kāi)發(fā)工程師存在一些普遍性問(wèn)題:其一,傾向于將產(chǎn)品文檔翻譯成代碼,輕視業(yè)務(wù),由于對(duì)業(yè)務(wù)領(lǐng)域全貌不了解,原本關(guān)鍵的抽象建模過(guò)程流于形式;其二,局限于圍繞數(shù)據(jù)庫(kù)開(kāi)發(fā),出手便是表結(jié)構(gòu)設(shè)計(jì),本末倒置;其三,在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)中注重需求功能實(shí)現(xiàn),對(duì)于高并發(fā)、高可用、高性能等非功能性問(wèn)題考慮不足?紤]到短暫的線下培訓(xùn)難以將上述問(wèn)題逐一講透,我決定結(jié)合服務(wù)端開(kāi)發(fā)的實(shí)際流程,編寫一部開(kāi)發(fā)指南。無(wú)心插柳柳成蔭。隨著編寫工作的推進(jìn),寫書的時(shí)機(jī)悄然成熟了。于是,我再次聯(lián)系了楊福川老師,并在他的幫助下進(jìn)一步完善了目錄,最終確定了寫作本書的計(jì)劃。
自 2016 年起,我一直堅(jiān)持通過(guò)寫技術(shù)文章來(lái)分享知識(shí),先后在 CSDN、GitChat、知乎、阿里技術(shù)公眾號(hào)、阿里 ATA 等平臺(tái)上發(fā)表了數(shù)百篇技術(shù)文章,其中部分文章還曾入選平臺(tái)年度最火文章合集年度好評(píng) TOP10和頭條推薦。不過(guò),這些文章像一個(gè)個(gè)分散的點(diǎn),不成體系,對(duì)讀者的幫助相對(duì)有限。鑒于此,我希望通過(guò)本書,全景式、體系化地為讀者呈現(xiàn)服務(wù)端開(kāi)發(fā)的方法和實(shí)用解決方案。
【讀者對(duì)象】
IT 從業(yè)人員:服務(wù)端開(kāi)發(fā)工程師、客戶端開(kāi)發(fā)工程師、產(chǎn)品經(jīng)理、測(cè)試工程師等。
高校學(xué)生:計(jì)算機(jī)、自動(dòng)化、電氣、通信等專業(yè)的學(xué)生。
【本書特色】
在互聯(lián)網(wǎng)領(lǐng)域,技術(shù)日新月異,以有限的精力持續(xù)學(xué)習(xí)十分困難。幸運(yùn)的是,無(wú)論技術(shù)如何演進(jìn),其背后的方法論往往大同小異,經(jīng)典解決方案歷久彌新。因此,掌握方法論和實(shí)用解決方案尤為必要。不同于一般的技術(shù)書籍,本書不局限于任何一種具體的編程語(yǔ)言、框架、容器、中間件或編程思想,而是致力于全景式、體系化地解讀服務(wù)端開(kāi)發(fā)的流程、重點(diǎn)和難點(diǎn)。
本書分為技術(shù)與方法、解決方案兩部分,理論結(jié)合實(shí)踐。第一部分對(duì)需求分析、抽象建模、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)和非功能性設(shè)計(jì)等服務(wù)端開(kāi)發(fā)的核心環(huán)節(jié)進(jìn)行了深入的解讀,可以幫助讀者快速、體系化地掌握服務(wù)端開(kāi)發(fā)的相關(guān)知識(shí)。第二部分針對(duì)高并發(fā)、高可用、高性能、緩存、冪等、數(shù)據(jù)一致性等問(wèn)題提供了行業(yè)經(jīng)典解決方案,可以幫助讀者夯實(shí)技術(shù)基礎(chǔ),提升競(jìng)爭(zhēng)力。為了便于讀者理解,本書還列舉了大量案例,并繪制了200多張圖,圖文并茂。
【本書主要內(nèi)容】
本書共 14 章,內(nèi)容分為兩部分。
第1部分包括第 1~6 章,主題是技術(shù)與方法。本部分首先介紹服務(wù)端開(kāi)發(fā)的定義、職責(zé)、技術(shù)棧、核心流程和進(jìn)階路徑,然后從需求分析、抽象建模、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、非功能性設(shè)計(jì)5個(gè)方面逐一展開(kāi),結(jié)合案例深入解讀服務(wù)端開(kāi)發(fā)的實(shí)操方法、重點(diǎn)和難點(diǎn),為讀者清晰呈現(xiàn)服務(wù)端開(kāi)發(fā)的全景圖。通過(guò)學(xué)習(xí)本部分內(nèi)容,讀者可以快速、體系化地掌握服務(wù)端開(kāi)發(fā)的相關(guān)知識(shí)和方法。
第2部分包括第7~14 章,主題是解決方案。本部分針對(duì)高并發(fā)、高可用、高性能、緩存、冪等、數(shù)據(jù)一致性等服務(wù)端開(kāi)發(fā)的典型問(wèn)題,結(jié)合業(yè)務(wù)場(chǎng)景進(jìn)行系統(tǒng)性分析并給出實(shí)戰(zhàn)方案,并就接口設(shè)計(jì)、日志打印、異常處理、代碼編寫、代碼注釋等實(shí)施細(xì)節(jié)給出行業(yè)案例和規(guī)范。本部分內(nèi)容如同一本服務(wù)端開(kāi)發(fā)問(wèn)題手冊(cè),可幫助讀者解決實(shí)踐中遇到的問(wèn)題。
需要特別說(shuō)明的是,第一部分內(nèi)容不僅適合服務(wù)端開(kāi)發(fā)人員學(xué)習(xí),還適合前端開(kāi)發(fā)、測(cè)試、產(chǎn)品經(jīng)理、運(yùn)營(yíng)等崗位的人員學(xué)習(xí),對(duì)提升技能、構(gòu)建用例、設(shè)計(jì)產(chǎn)品和梳理需求大有裨益。第二部分內(nèi)容所介紹的解決方案和開(kāi)發(fā)規(guī)范均為行業(yè)實(shí)踐經(jīng)驗(yàn)的總結(jié),部分知識(shí)點(diǎn)具有一定難度。如果你是一名經(jīng)驗(yàn)較為豐富的工程師,可以直接閱讀這部分內(nèi)容;如果你從業(yè)不久或?yàn)樵谛W(xué)生,建議從第一部分的基礎(chǔ)理論知識(shí)開(kāi)始學(xué)習(xí)。
郭進(jìn)
浙江大學(xué)工學(xué)碩士,杭州市高層次人才現(xiàn)任某著名互聯(lián)網(wǎng)科技公司服務(wù)端技術(shù)專家先后從事過(guò)智能控制算法、分布式中間件和服務(wù)端研發(fā)。相關(guān)成果曾發(fā)表于領(lǐng)域頂級(jí)會(huì)議和SCI期刊。
近年來(lái),致力于構(gòu)建高效、可靠、可擴(kuò)展的服務(wù)端系統(tǒng),作為核心成員設(shè)計(jì)并開(kāi)發(fā)了承載百萬(wàn)級(jí)QPS、服務(wù)億級(jí)用戶的大型分布式系統(tǒng),在領(lǐng)域建模、系統(tǒng)架構(gòu)、信息流推薦及研發(fā)規(guī)范方面積累了大量?jī)?yōu)秀實(shí)踐曾獲得阿里第二屆技術(shù)講師課程大賽冠軍、華為總裁嘉獎(jiǎng)令、浙江省優(yōu)秀畢業(yè)生、NUEDC(全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽 ) 全國(guó)一等獎(jiǎng)及瑞薩特別獎(jiǎng)、國(guó)家獎(jiǎng)學(xué)金等30余個(gè)獎(jiǎng)項(xiàng)。
CSDN博客專家,阿里高階技術(shù)傳橙官,先后在CSDN、阿里技術(shù)公眾號(hào)阿里ATA 等平臺(tái)發(fā)表技術(shù)文章數(shù)百篇,多篇文章入選平臺(tái)年度最火文章合集年度好評(píng)TOP 10和頭條推薦