要成為軟件架構(gòu)師?
互聯(lián)網(wǎng)的發(fā)展帶動(dòng)了各行各業(yè)信息化的趨勢(shì),一大批高新企業(yè)如雨后春筍般出現(xiàn)在大眾的視野中。于是,不同類(lèi)型的軟件項(xiàng)目應(yīng)運(yùn)而生。在這些琳瑯滿目的項(xiàng)目中,有企業(yè)管理、電商平臺(tái)、財(cái)務(wù)報(bào)表、金融銀行、醫(yī)療器械、智慧城市和大數(shù)據(jù)分析等類(lèi)型。項(xiàng)目的層出不窮帶來(lái)了巨大的利潤(rùn),讓高新企業(yè)不斷地成長(zhǎng)起來(lái),與此同時(shí),也帶來(lái)了很多相關(guān)的就業(yè)崗位。
當(dāng)然,要順利地完成這些項(xiàng)目,就需要大量的軟件工程師。這種硬性的需求又養(yǎng)活了一大批培訓(xùn)機(jī)構(gòu),從事軟件行業(yè)的人員當(dāng)初是鳳毛麟角,現(xiàn)在依然是供不應(yīng)求。那么,如何提高軟件工程師的開(kāi)發(fā)技能就成了一個(gè)無(wú)法回避的問(wèn)題。誠(chéng)然,公司可以不定期進(jìn)行培訓(xùn),提高開(kāi)發(fā)人員的技能水平,但從更普遍、更直接的意義上來(lái)說(shuō),提高技能水平的最佳方式還是系統(tǒng)地閱讀相關(guān)書(shū)籍。
計(jì)算機(jī)語(yǔ)言從機(jī)器語(yǔ)言、匯編語(yǔ)言發(fā)展到現(xiàn)在的高級(jí)語(yǔ)言,這個(gè)過(guò)程中誕生了很多種語(yǔ)言。有些語(yǔ)言已經(jīng)逐步退出歷史舞臺(tái),有些語(yǔ)言仍然在小眾化的范圍內(nèi)存在。而Java語(yǔ)言,經(jīng)歷了二十多年的發(fā)展,仍然保持著旺盛的生命力,在編程語(yǔ)言排行榜中高居不下,Java程序員的數(shù)量也與日俱增,這種現(xiàn)象主要是由Java自身的優(yōu)勢(shì)決定的。作為開(kāi)發(fā)人員,需要關(guān)注的并不是底層的核心,更多的是Java帶給我們的簡(jiǎn)單、直觀、易于使用的平臺(tái)。因此,程序員不用關(guān)心虛擬機(jī)復(fù)雜的結(jié)構(gòu)和每一步的運(yùn)行情況,只需要關(guān)注項(xiàng)目業(yè)務(wù)的代碼即可。這種易于接受的情形,讓更多人把開(kāi)發(fā)當(dāng)成了一種樂(lè)趣。
最近,在業(yè)內(nèi)流行起來(lái)的全棧工程師的定位更像是高級(jí)程序員,而架構(gòu)師則需要站在更高的層面思考問(wèn)題。作為Java架構(gòu)師,不但要懂得前端插件化的開(kāi)發(fā)理念,為項(xiàng)目選擇合適的前端插件,還需要精通后端開(kāi)發(fā),為項(xiàng)目選擇合適的框架,這樣才能高效地完成任務(wù)。否則,極有可能出現(xiàn)事倍功半的情況。如果說(shuō)需要彌補(bǔ)架構(gòu)缺陷,最樂(lè)觀的情況是通過(guò)加班實(shí)現(xiàn),最糟糕的情況是直接導(dǎo)致項(xiàng)目失敗。因?yàn)轫?xiàng)目經(jīng)理可能并不會(huì)深入了解具體的代碼,他通常會(huì)參考架構(gòu)師的意見(jiàn),所以架構(gòu)師的意見(jiàn)就顯得極為重要。
《Spring微服務(wù)實(shí)戰(zhàn)》
[美]約翰卡內(nèi)爾(John Carnell)著
本書(shū)詳細(xì)介紹了微服務(wù)架構(gòu)下Spring體系(Spring ->Spring Boot->Spring Cloud),幫助 Java 開(kāi)發(fā)人員快速拆分單體應(yīng)用,并對(duì)微服務(wù)的全生命流程進(jìn)行了封裝,大大簡(jiǎn)化了開(kāi)發(fā)流程。
本書(shū)在構(gòu)建和部署Spring云應(yīng)用程序的同時(shí),讓讀者掌握如何進(jìn)行微服務(wù)設(shè)計(jì)。整本書(shū)是一個(gè)完整的例子,傳授作者多年的寶貴經(jīng)驗(yàn)。
本書(shū)以一個(gè)名為EagleEye的項(xiàng)目為主線,介紹云、微服務(wù)等概念以及Spring Boot和Spring Cloud等諸多Spring項(xiàng)目,并介紹如何將EagleEye項(xiàng)目一步一步地從單體架構(gòu)重構(gòu)成微服務(wù)架構(gòu),最終將這個(gè)項(xiàng)目拆分成眾多微服務(wù),讓它們運(yùn)行在各自的Docker容器中,實(shí)現(xiàn)持續(xù)集成/持續(xù)部署,并最終自動(dòng)部署到云環(huán)境(Amazon)中。針對(duì)在重構(gòu)過(guò)程中遇到的各種微服務(wù)開(kāi)發(fā)會(huì)面臨的典型問(wèn)題(包括開(kāi)發(fā)、測(cè)試和運(yùn)維等問(wèn)題),本書(shū)介紹了解決這些問(wèn)題的核心模式,然后在實(shí)戰(zhàn)中選擇特定Spring Cloud子項(xiàng)目或其他工具解決這些問(wèn)題。
《Spring 實(shí)戰(zhàn)(第4版)》
【美】Craig Walls(沃爾斯)著
全球有超過(guò)100 000的開(kāi)發(fā)者使用本書(shū)來(lái)學(xué)習(xí)Spring
中文版累計(jì)銷(xiāo)售超10萬(wàn)冊(cè),暢銷(xiāo)經(jīng)典Spring 技術(shù)圖書(shū),針對(duì)Spring 4 全新升級(jí) 作者Craig Walls,SpringSource的軟件開(kāi)發(fā)人員,也是一位暢銷(xiāo)書(shū)作者。 第3版譯者繼續(xù)翻譯新版,品質(zhì)保障!
《精通Spring MVC 4》
【美】Geoffroy Warin 著
Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring 框架提供了構(gòu)建 Web 應(yīng)用程序的全功能 MVC 模塊。Spring MVC4是當(dāng)前最新的版本,在眾多特性上有了進(jìn)一步的提升。
在本書(shū)中,我們將會(huì)從頭開(kāi)始構(gòu)建一個(gè)有用的Web應(yīng)用。本書(shū)共計(jì)10章,分別介紹了快速搭建Spring Web應(yīng)用、精通MVC結(jié)構(gòu)、URL映射、文件上傳與錯(cuò)誤處理、創(chuàng)建Restful應(yīng)用、保護(hù)應(yīng)用、單元測(cè)試與驗(yàn)收測(cè)試、優(yōu)化請(qǐng)求、將Web應(yīng)用部署到云等內(nèi)容,循序漸進(jìn)地講解了Spring MVC4的開(kāi)發(fā)技巧。
《深入理解Spring Cloud與微服務(wù)構(gòu)建》
方志朋 著
本書(shū)共分16章,全面涵蓋了Spring Cloud構(gòu)建微服務(wù)相關(guān)的知識(shí)點(diǎn)。第1、2章詳細(xì)介紹了微服務(wù)架構(gòu)和Spring Cloud。第3、4章講解了用Spring Cloud構(gòu)建微服務(wù)的準(zhǔn)備工作。第5~12章以案例為切入點(diǎn),講解了Spring Cloud構(gòu)建微服務(wù)的基礎(chǔ)組件,包括Eureka、Ribbon、Feign、Hystrix、Zuul、Config、Sleuth、Admint等組件。第13~15章講述了使用Spring Cloud OAuth2來(lái)保護(hù)微服務(wù)系統(tǒng)的相關(guān)知識(shí)。第16章用一個(gè)綜合案例,全面講解了如何使用Spring Cloud構(gòu)建微服務(wù),可以作為實(shí)際開(kāi)發(fā)的樣例工程。
《微服務(wù)分布式構(gòu)架開(kāi)發(fā)實(shí)戰(zhàn)》
龔鵬 著
本書(shū)語(yǔ)言簡(jiǎn)潔,內(nèi)容豐富,適合具備初級(jí)Java后端開(kāi)發(fā)能力的開(kāi)發(fā)人員,大中專(zhuān)相關(guān)專(zhuān)業(yè)師生,網(wǎng)站培訓(xùn)班學(xué)員,以前擁有單工程開(kāi)發(fā)經(jīng)驗(yàn)并且想嘗試分布式微服務(wù)架構(gòu)的人員。
《Java架構(gòu)師指南》
王波 著
資深Java專(zhuān)家多年經(jīng)驗(yàn)總結(jié),全程項(xiàng)目驅(qū)動(dòng),首本完整介紹Java入門(mén)進(jìn)階到架構(gòu)師的編程技術(shù)圖書(shū)。
程序員走向架構(gòu)師是必經(jīng)之路,本書(shū)基于官方API的完美解讀,從架構(gòu)師的角度來(lái)講解Java知識(shí)技能,并且從搭建虛擬機(jī)開(kāi)始,學(xué)習(xí)常用的Linux命令,力爭(zhēng)做到使程序員在較短的時(shí)間內(nèi)成功邁入架構(gòu)師的殿堂。
《分布式對(duì)象存儲(chǔ)——原理、架構(gòu)及Go語(yǔ)言實(shí)現(xiàn) 》
胡世杰 著
云存儲(chǔ)專(zhuān)家200分鐘視頻講解,掌握云存儲(chǔ)理論,動(dòng)手搭建分布式對(duì)象存儲(chǔ)架構(gòu)
本書(shū)首先從一個(gè)最簡(jiǎn)單的對(duì)象存儲(chǔ)服務(wù)原型開(kāi)始,討論在原型中存在的問(wèn)題并介紹對(duì)象存儲(chǔ)服務(wù)中一些常見(jiàn)的概念以及設(shè)計(jì)理念,然后通過(guò)改變架構(gòu)或添加功能的方式解決這些問(wèn)題。這一迭代步驟將發(fā)生多次,最終我們會(huì)收獲一個(gè)足夠完善的對(duì)象存儲(chǔ)服務(wù)。
《App架構(gòu)師實(shí)踐指南 》
SkySeraph 潘旭玲 著
一本講解從程序員轉(zhuǎn)變?yōu)榧軜?gòu)師需要了解的技能和思想,明確地給程序員指引了移動(dòng)架構(gòu)師成長(zhǎng)的路線,是想成為架構(gòu)師的程序員實(shí)用指南。
全面介紹了在移動(dòng)應(yīng)用開(kāi)發(fā)的架構(gòu)設(shè)計(jì)和性能優(yōu)化方面的知識(shí),是架構(gòu)師的必備書(shū)籍 。講述了移動(dòng)應(yīng)用架構(gòu)師需要了解的技能、思想等整體的發(fā)展方向,是移動(dòng)架構(gòu)師成長(zhǎng)的路線圖。
《遺留系統(tǒng)重建實(shí)戰(zhàn)》
[英]克里斯·伯查爾(Chris Birchall) 著
這是一本以經(jīng)驗(yàn)為主導(dǎo)的指南,能使遺留軟件項(xiàng)目脫胎換骨。它涵蓋了重構(gòu)、質(zhì)量度量學(xué)、工具鏈和工作流、持續(xù)集成、基礎(chǔ)設(shè)施自動(dòng)化以及組織文化等內(nèi)容。在技術(shù)層面,讀者將學(xué)習(xí)如何給代碼模塊化引進(jìn)依賴(lài)注入,如何定量地衡量軟件質(zhì)量,以及如何實(shí)現(xiàn)基礎(chǔ)設(shè)施的自動(dòng)化。
在策略層面,讀者將能學(xué)到的實(shí)踐有:軟件是應(yīng)該重寫(xiě)還是應(yīng)該重構(gòu),團(tuán)隊(duì)的組織架構(gòu)應(yīng)該是什么樣的,以及如何讓管理層意識(shí)到軟件質(zhì)量的重要性。本書(shū)的核心議題包括解析和模塊化棘手的代碼結(jié)構(gòu)、集成和自動(dòng)化測(cè)試、替換過(guò)時(shí)的構(gòu)建系統(tǒng),以及用Vagrant和Ansible 之類(lèi)的工具實(shí)現(xiàn)基礎(chǔ)設(shè)施自動(dòng)化。
《編寫(xiě)高性能的.NET代碼》
[美] Ben,Watson,沃森 著
想讓自己的.NET代碼獲得zui佳的性能嗎?本書(shū)將揭開(kāi)CLR的神秘面紗,不僅教你如何編寫(xiě)性能優(yōu)異的代碼,還能讓你“知其所以然”。作者參與設(shè)計(jì)并搭建的系統(tǒng)是世界上最大型的高性能.NET系統(tǒng)之一,他在本書(shū)中融入了很多的經(jīng)驗(yàn)教訓(xùn)。
本書(shū)不僅講解了CLR的工作機(jī)制,還詳細(xì)介紹了當(dāng)前獲得zui佳性能的新方法,涉及.NET環(huán)境下的優(yōu)化、對(duì)CLR功能的深入剖析、免費(fèi)的工具和教程推薦、頗有價(jià)值的案例軼事、評(píng)測(cè)并提升性能的具體步驟。
《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic構(gòu)建和部署》
克里斯托弗·尼格斯(Christopher Negus) 著
Linux系統(tǒng)或云環(huán)境上運(yùn)行Docker的實(shí)用指南!無(wú)論是在筆記本上還是在遠(yuǎn)程云上,Docker 都能夠改變創(chuàng)建、測(cè)試、部署和管理zui關(guān)鍵應(yīng)用的方式。本書(shū)中,作者Christopher Negus 幫助讀者從頭開(kāi)始掌握Docker 容器化技術(shù)。開(kāi)始的時(shí)候讀者能夠運(yùn)行一些Ubuntu、Fedora、RHEL、CoreOS 或Project Atomic 的Docker 容器鏡像,看完本書(shū)之后,讀者就可以在現(xiàn)代Linux 和云環(huán)境中部署企業(yè)級(jí)質(zhì)量、多容器的Kubernetes。
《OpenStack實(shí)戰(zhàn)》
[美]V. K.科迪·布姆加德納(V. K. CodyBumgardner)著
本書(shū)提供了真實(shí)環(huán)境使用案例和如何構(gòu)建你自己的云平臺(tái)的一步步的指導(dǎo)。本書(shū)能為你提供所需要的物理硬件集群和基礎(chǔ)設(shè)施服務(wù)設(shè)計(jì)指導(dǎo)。你將會(huì)學(xué)到如何選擇和設(shè)置虛擬服務(wù)器和物理服務(wù)器,如何實(shí)現(xiàn)軟件定義網(wǎng)絡(luò)以及在企業(yè)內(nèi)部設(shè)計(jì)、部署和運(yùn)營(yíng)一個(gè)OpenStack云的技術(shù)細(xì)節(jié),還會(huì)探索如何針對(duì)自己的環(huán)境對(duì)OpenStack部署做出最佳的定制。最后,你還會(huì)學(xué)到自己的云是如何提供面向用戶的軟件和基礎(chǔ)設(shè)施服務(wù)的。
《第一本Docker書(shū)(修訂版)》
[澳] 詹姆斯·特恩布爾(James Turnbull) 著
本書(shū)由Docker公司前服務(wù)與支持副總裁James Turnbull編寫(xiě),是Docker開(kāi)發(fā)指南。本書(shū)專(zhuān)注于Docker 1.9及以上版本,指導(dǎo)讀者完成Docker的安裝、部署、管理和擴(kuò)展,帶領(lǐng)讀者經(jīng)歷從測(cè)試到生產(chǎn)的整個(gè)開(kāi)發(fā)生命周期,讓讀者了解Docker適用于什么場(chǎng)景。