[置頂] 2016年終總結(jié)
來源:程序員人生 發(fā)布時間:2017-02-15 09:45:48 閱讀次數(shù):3222次
1、技術(shù)總結(jié)
(1)App/JavaWeb后臺系統(tǒng)
1.1、采取RestFul架構(gòu)的SSM(Spring SpringMVC MyBatis)框架集成開發(fā)的App后臺系統(tǒng),將用戶鑒權(quán)分離出來單獨(dú)的模塊,將用戶鑒權(quán)登錄狀態(tài)Token保存到Redis內(nèi)存數(shù)據(jù)庫中,從而便于上層業(yè)務(wù)后臺系統(tǒng)彈性部署,提高系統(tǒng)的可用性和伸縮性,也為API高并發(fā)訪問提供安全基礎(chǔ)。
1.2、后臺系統(tǒng)特別是Web或App后臺通常由后臺處理業(yè)務(wù)相干數(shù)據(jù)展現(xiàn)到前端頁面或返回Json字符串?dāng)?shù)據(jù)到客戶端。項(xiàng)目隨著業(yè)務(wù)發(fā)展和用戶數(shù)的增多通常會不斷重構(gòu),采取Maven進(jìn)行項(xiàng)目構(gòu)建和作為項(xiàng)目管理工具,將項(xiàng)目制作成Maven多模塊,core模塊、service模塊、web模塊、common模塊、controller模塊等。
1.3、MVC模式分modle層、dao層、service層,controller層。model層用于將業(yè)務(wù)實(shí)體封裝成數(shù)據(jù)模型,dao層用于操作數(shù)據(jù)庫的接口層,service層用于調(diào)用dao層和外部系統(tǒng)的接口層,比較復(fù)雜的業(yè)務(wù)邏輯1般都按原子性操作封裝在service層,controller層主要用于控制分發(fā),將業(yè)務(wù)處理結(jié)果的Json數(shù)據(jù)或前端頁面分發(fā)到客戶端訪問層。
1.4、工作到現(xiàn)在用過很多API,JSON格式和XML格式都有。總結(jié)使用經(jīng)驗(yàn)覺得JSON格式的更好用。JSON格式通常是更加簡潔的(以致于傳輸?shù)臄?shù)據(jù)量更小),也更容易展現(xiàn)復(fù)雜的對象(精確)而且能運(yùn)行得像其他格式1樣好。
1.5、用裝備號/裝備mac地址作為Token:服務(wù)端接收到該參數(shù)后,便用1個變量來接收同時將其作為Token保存在數(shù)據(jù)庫,并將該Token設(shè)置到session中,客戶端每次要求的時候都要統(tǒng)1攔截,并將客戶端傳遞的token和服務(wù)器端session中的token進(jìn)行對照,如果相同則放行,不同則謝絕。
1.6、對1些需要異步處理的,不要直接new1個thread,應(yīng)當(dāng)使用線程池。使用線程池的時候應(yīng)當(dāng)對線程數(shù)量大小公道設(shè)置,1般最大不超過50個,固然還需要斟酌你的IO和CPU。容器類變量,如果變化比較大且頻繁,盡可能定義的時候設(shè)置初始容量大小,減少擴(kuò)容帶來的消耗。分支判斷if…else的時候,最常符合的條件處理放在前面。對象比較的時候常量放前面,養(yǎng)成好習(xí)慣,減少空指針的出現(xiàn)。減少synchronized中等待處理的代碼,能放在外面就盡可能放在外面。
1.7、關(guān)于數(shù)據(jù),1般查詢比較慢,很有多是沒有建索引或索引沒用到,多去檢查1下。兩個大表的關(guān)聯(lián)查詢,可使用2次訪問數(shù)據(jù)庫替換,先查出A表的數(shù)據(jù),利用關(guān)聯(lián)字段再查B表的。不要1味想著1條sql弄定最好。堅(jiān)決避免,查全表數(shù)據(jù)或數(shù)量大的數(shù)據(jù),返回list加載到內(nèi)存中,1不謹(jǐn)慎查了100w數(shù)據(jù),又查得比較頻繁,內(nèi)存的爆了。有這類風(fēng)險的改成份頁查詢。不要select
*,按需取列。多斟酌避免事務(wù)里面有長連接或長事務(wù),如果大量這類情況出現(xiàn)占用數(shù)據(jù)連接,會影響性能。1些無必要的邏輯可以放到事務(wù)外履行。對字段的加減乘除處理放到sql,嚴(yán)格避免先get處理,然后運(yùn)算在set到數(shù)據(jù)庫里面,并發(fā)情況非常容易致使失真。
1.8、方法里面代碼不要太長,注意封裝,命名語義化,代碼整潔。
(2)、基于Netty底層通訊的消息推送系統(tǒng)的研發(fā)
2.1、NIO類庫的異步通訊框架架構(gòu)特點(diǎn)是:異步非阻塞、基于事件驅(qū)動、高性能、高可靠性和高可定制性。
2.2、提供對多種編解碼框架的集成,包括谷歌的Protobuf、Jboss marshalling、Java序列化、緊縮編解碼、XML解碼、字符串編解碼等,這些編解碼框架可以被用戶直接使用。
2.3、提供情勢多樣的編解碼基礎(chǔ)類庫,可以非常方便的實(shí)現(xiàn)私有協(xié)議棧編解碼框架的2次定制和開發(fā)。
2.4、基于職責(zé)鏈模式的Pipeline-Handler機(jī)制,用戶可以非常方便的對網(wǎng)絡(luò)事件進(jìn)行攔截和定制。
2.5、所有的IO操作都是異步的,用戶可以通過Future-Listener機(jī)制主動Get結(jié)果或由IO線程操作完成以后主動Notify結(jié)果,用戶的業(yè)務(wù)線程不需要同步等待。
2.6、隨著網(wǎng)站范圍的不斷擴(kuò)大,系統(tǒng)并發(fā)訪問量也愈來愈高,傳統(tǒng)基于Tomcat等Web容器的垂直架構(gòu)已沒法滿足需求,需要拆分利用進(jìn)行服務(wù)化,以提高開發(fā)和保護(hù)效力。從組網(wǎng)情況看,垂直的架構(gòu)拆分以后,系統(tǒng)采取散布式部署,各個節(jié)點(diǎn)之間需要遠(yuǎn)程服務(wù)調(diào)用,高性能的RPC框架必不可少,Netty作為異步高性能的通訊框架,常常作為基礎(chǔ)通訊組件被這些RPC框架使用。
2.7、阿里散布式服務(wù)框架Dubbo的RPC框架使用Dubbo協(xié)議進(jìn)行節(jié)點(diǎn)間通訊,Dubbo協(xié)議默許使用Netty作為基礎(chǔ)通訊組件,用于實(shí)現(xiàn)各進(jìn)程節(jié)點(diǎn)之間的內(nèi)部通訊。其中,服務(wù)提供者和服務(wù)消費(fèi)者之間,服務(wù)提供者、服務(wù)消費(fèi)者和性能統(tǒng)計(jì)節(jié)點(diǎn)之間使用Netty進(jìn)行異步/同步通訊。除Dubbo以外,淘寶的消息中間件RocketMQ的消息生產(chǎn)者和消息消費(fèi)者之間,也采取Netty進(jìn)行高性能、異步通訊。
(3)、Jenkins延續(xù)集成
3.1、對Git、JIRA、Jenkins、GitLab、Maven等自動化的基于主干分支開發(fā)方式的延續(xù)集成,Jenkins Maven自動測試、延續(xù)構(gòu)建,Jenkins延續(xù)部署,延續(xù)交付等集成工具的安裝使用,及基于此基礎(chǔ)上的項(xiàng)目管理和項(xiàng)目交付。
3.2、Git主干開發(fā)開發(fā)方式,每一個人在項(xiàng)目經(jīng)理安排的任務(wù)下,基于需求開發(fā),此時都基于develop創(chuàng)建1個特勤分支,如,develop-zhanghaiyang分成下開發(fā)自己的需求,本地開發(fā)完成經(jīng)測試無誤合并到develop主干分支,下面可以通知測試人員測試剛開發(fā)的需求。
3.3、GitLab或開源中國Git托管或GitHub托管平臺都可以設(shè)置鉤子和Jenkins集成,Jenkins1旦檢測到設(shè)置好的分支有推送或合并響應(yīng)會重新利用Maven進(jìn)行構(gòu)建和自動化測試,測試通過落后行重新部署,即實(shí)現(xiàn)需求到開發(fā)的延續(xù)集成,開發(fā)到測試的延續(xù)測試,測試到利用交付的延續(xù)交付。
3.4、JIRA是很優(yōu)秀的開源的項(xiàng)目Bug跟蹤管理工具,從項(xiàng)目需求到開發(fā)測試交付的全部流程的bug跟蹤,便于各個層面的人員進(jìn)行調(diào)和,減少項(xiàng)目開發(fā)進(jìn)程中開發(fā)人員與測試人員,產(chǎn)品經(jīng)理與測試人員等溝通本錢。
3.5、GitLab是類似于GitHub的代碼托管軟件,即Git服務(wù)器,著名的開源中國碼云就是基于GitLab2次開發(fā)的優(yōu)秀的Git代碼托管平臺。
(4)、Docker容器使用
4.1、簡化配置:這是Docker公司宣揚(yáng)的Docker的主要使用處景。虛擬機(jī)的最大好處是能在你的硬件設(shè)施上運(yùn)行各種配置不1樣的平臺(軟件、系統(tǒng)),Docker在下降額外開消的情況下提供了一樣的功能。它能讓你將運(yùn)行環(huán)境和配置放在代碼中然后部署,同1個Docker的配置可以在不同的環(huán)境中使用,這樣就下降了硬件要求和利用環(huán)境之間耦合度。
4.2、代碼流水線(Code Pipeline)管理:前1個場景對管理代碼的流水線起到了很大的幫助。代碼從開發(fā)者的機(jī)器到終究在生產(chǎn)環(huán)境上的部署,需要經(jīng)過很多的中間環(huán)境。而每個中間環(huán)境都有自己微小的差別,Docker給利用提供了1個從開發(fā)到上線均1致的環(huán)境,讓代碼的流水線變得簡單很多。
4.3、提高開發(fā)效力:不同的開發(fā)環(huán)境中,我們都想把兩件事做好。1是我們想讓開發(fā)環(huán)境盡可能貼近生產(chǎn)環(huán)境,2是我們想快速搭建開發(fā)環(huán)境。理想狀態(tài)中,要到達(dá)第1個目標(biāo),我們需要將每個服務(wù)都跑在獨(dú)立的虛擬機(jī)中以便監(jiān)控生產(chǎn)環(huán)境中服務(wù)的運(yùn)行狀態(tài)。但是,我們卻不想每次都需要網(wǎng)絡(luò)連接,每次重新編譯的時候遠(yuǎn)程連接上去特別麻煩。這就是Docker做的特別好的地方,開發(fā)環(huán)境的機(jī)器通常內(nèi)存比較小,之前使用虛擬的時候,我們常常需要為開發(fā)環(huán)境的機(jī)器加內(nèi)存,而現(xiàn)在Docker可以輕易的讓幾10個服務(wù)在Docker中跑起來。
4.4、隔離利用:有很多種緣由會讓你選擇在1個機(jī)器上運(yùn)行不同的利用,比如之條件到的提高開發(fā)效力的場景等。我們常常需要斟酌兩點(diǎn),1是由于要下降本錢而進(jìn)行服務(wù)器整合,2是將1個整體式的利用拆分成松耦合的單個服務(wù)
4.5、整合服務(wù)器:正如通過虛擬機(jī)來整合多個利用,Docker隔離利用的能力使得Docker可以整合多個服務(wù)器以下降本錢。由于沒有多個操作系統(tǒng)的內(nèi)存占用,和能在多個實(shí)例之間同享沒有使用的內(nèi)存,Docker可以比虛擬機(jī)提供更好的服務(wù)器整合解決方案。
4.6、調(diào)試能力:Docker提供了很多的工具,這些工具不1定只是針對容器,但是卻適用于容器。它們提供了很多的功能,包括可以為容器設(shè)置檢查點(diǎn)、設(shè)置版本和查看兩個容器之間的差別,這些特性可以幫助調(diào)試Bug。
4.7、多租戶環(huán)境:使用Docker,可以為每個租戶的利用層的多個實(shí)例創(chuàng)建隔離的環(huán)境,這不但簡單而且本錢低廉,固然這1切得益于Docker環(huán)境的啟動速度和其高效的diff命令。
4.8、快速部署:在虛擬機(jī)之前,引入新的硬件資源需要消耗幾天的時間。虛擬化技術(shù)(Virtualization)將這個時間縮短到了分鐘級別。而Docker通過為進(jìn)程僅僅創(chuàng)建1個容器而無需啟動1個操作系統(tǒng),再次將這個進(jìn)程縮短到了秒級。這正是Google和Facebook都看重的特性。
(5)、網(wǎng)站架構(gòu)設(shè)計(jì)
5.1、性能:性能是網(wǎng)站架構(gòu)設(shè)計(jì)的1個重要方面,任何軟件架構(gòu)設(shè)計(jì)方案都必須斟酌可能帶來的性能問題。也正由于性能問題幾近無處不在,所以優(yōu)化網(wǎng)站性能的手段也非常多:閱讀器端:可以通過閱讀器緩存、頁面緊縮傳輸、公道布局頁面、減少Cookie傳輸?shù)仁侄危酥量墒褂肅DN加速功能。利用服務(wù)器端:可使用服務(wù)器本地緩存和散布式緩存,也能夠通過異步操作方式來加快響應(yīng),在高并發(fā)要求的情況下,可以將多臺利用服務(wù)器組成1個集群共同對外服務(wù),提高整體處理能力,改良性能。 數(shù)據(jù)庫服務(wù)器端:可用使用索引、緩存、SQL性能優(yōu)化等手段,還可使用NoSQL數(shù)據(jù)庫來優(yōu)化數(shù)據(jù)模型、存儲結(jié)構(gòu)等。衡量網(wǎng)站性能有1系列指標(biāo),重要的有響應(yīng)時間、TPS、系統(tǒng)性能計(jì)數(shù)器等,通過這些指標(biāo)以肯定系統(tǒng)設(shè)計(jì)是不是到達(dá)目標(biāo)。
5.2、可用性:可用性即能夠不中斷提供服務(wù)的時間。幾近所有網(wǎng)站都許諾7×24小時可用,但事實(shí)上任何網(wǎng)站都不可能到達(dá)完全的7×24,總會有1些故障時間,扣除這些故障時間,就是網(wǎng)站的可用時間。1些大型網(wǎng)站可以做到4個9以上的可用性,也就是99.99%。網(wǎng)站高可用的主要手段就是冗余,利用部署在多臺服務(wù)器上同時提供服務(wù),數(shù)據(jù)存儲在多臺服務(wù)器上相互備份,任何1臺服務(wù)器都不會影響利用的整體可以,通常的實(shí)現(xiàn)手段即把多臺服務(wù)器通過負(fù)載均衡裝備組成1個集群。
衡量1個系統(tǒng)架構(gòu)設(shè)計(jì)是不是滿足高可用的目標(biāo),就是假定系統(tǒng)中任何1臺或多臺服務(wù)器宕機(jī)時,和出現(xiàn)各種不可預(yù)期的問題時,系統(tǒng)整體是不是仍然可用。
5.3、伸縮性:大型網(wǎng)站需要面對大量用戶的高并發(fā)訪問和存儲海量數(shù)據(jù),網(wǎng)站通過集群的方式將多臺服務(wù)器組成1個整體共同提供服務(wù)。所謂伸縮性是指通過不斷向集群中加入服務(wù)器的手段來減緩不斷整體上市用戶并發(fā)訪問壓力和不斷增長的數(shù)據(jù)存儲需求。衡量架構(gòu)伸縮性的主要標(biāo)準(zhǔn)就是是不是可用多臺服務(wù)器構(gòu)建集群,是不是容易向集群中添加新的服務(wù)器。加入新的服務(wù)器后是不是可以提供和原來的服務(wù)器無差別的服務(wù)。集群中可容納的總服務(wù)器數(shù)量是不是有限制。
5.4、擴(kuò)大性:不同于其他架構(gòu)要素主要關(guān)注非功能性需求,網(wǎng)站的擴(kuò)大性架構(gòu)直接關(guān)注網(wǎng)站的功能需求。網(wǎng)站快速發(fā)展,功能不斷擴(kuò)大,如何設(shè)計(jì)網(wǎng)站的架構(gòu)使其能夠快速響應(yīng)需求變化,是網(wǎng)站可擴(kuò)大架構(gòu)的主要目標(biāo)。衡量網(wǎng)站架構(gòu)擴(kuò)大性好壞的主要標(biāo)準(zhǔn)就是在網(wǎng)站增加新的業(yè)務(wù)產(chǎn)品時,是不是可以實(shí)現(xiàn)對現(xiàn)有產(chǎn)品透明無影響,不同產(chǎn)品之間是不是很少耦合等。網(wǎng)站可擴(kuò)大架構(gòu)的主要手段是事件驅(qū)動架構(gòu)和散布式服務(wù)。
事件驅(qū)動通常利用消息隊(duì)列實(shí)現(xiàn),通過這類方式將消息生產(chǎn)和處理邏輯分隔開。 服務(wù)器服務(wù)則是將業(yè)務(wù)和可復(fù)用服務(wù)分離開來,通過散布式服務(wù)框架調(diào)用。新增加產(chǎn)品可用通過調(diào)用可復(fù)用的服務(wù)來實(shí)現(xiàn)本身的業(yè)務(wù)邏輯,而對現(xiàn)有產(chǎn)品沒有任何影響。
5.5、安全性:互聯(lián)網(wǎng)是開放的,任何人在任何地方都可以訪問網(wǎng)站。網(wǎng)站的安全架構(gòu)就是保護(hù)網(wǎng)站不受歹意訪問和攻擊,保護(hù)網(wǎng)站的重要數(shù)據(jù)不被盜取。衡量網(wǎng)站安全架構(gòu)的標(biāo)準(zhǔn)就是針對現(xiàn)存和潛伏的各種攻擊和竊密手段,是不是有可靠的應(yīng)對策略。
(6)、SQL規(guī)范與性能優(yōu)化--主要針對Mysql
6.1、甚么是履行計(jì)劃:a.決定如何訪問表數(shù)據(jù),是不是通過索引,是不是排序等。b.多表關(guān)聯(lián)是先訪問哪一個表。c.多表關(guān)聯(lián)時,使用哪一種連接方式,不過現(xiàn)在MySQL只有嵌套連接(嵌套循環(huán),顧名思義就是將1個表為動身點(diǎn),將該表全部記錄逐條去遍歷另外1張表的記錄)。
6.2、SQL履行順序:a.檢查語法是不是正確。b.檢查表是不是存在、權(quán)限是不是滿足等。c.根據(jù)統(tǒng)計(jì)信息(如data length,rows,index length、索引唯1度),生成較優(yōu)的履行計(jì)劃。d.根據(jù)履行計(jì)劃,進(jìn)行數(shù)據(jù)檢索、過濾、合并、排序等操作。訪問數(shù)據(jù)時,內(nèi)存中如存在表數(shù)據(jù),則直接進(jìn)行操作;否則,從磁帶讀取表數(shù)據(jù),放入內(nèi)存,再進(jìn)行操作;如內(nèi)存不足,則內(nèi)存中較冷數(shù)據(jù)涮出內(nèi)存,再從內(nèi)存中讀取數(shù)據(jù)。
6.3、索引:查詢的時候如果使用上了索引,可以提高效力,由于建立了索引后,可以理解為數(shù)據(jù)字典的結(jié)構(gòu)存儲,因此根據(jù)條件查詢的時候更加高效。下面看1下MySQL經(jīng)常使用的索引類型的概念。普通索引:在創(chuàng)建普通索引時,不附加任何限制條件。這類索引可以創(chuàng)建在任何數(shù)據(jù)類型中,其值是不是唯1和非空由字段本身的完全性束縛條件決定。建立索引以后,查詢時可以通過索引進(jìn)行查詢。例如,在student表的stu_id字段上建立1個普通索引。查詢記錄時,就能夠根據(jù)該索引進(jìn)行查詢。唯1性索引:使用UNIQUE參數(shù)可以設(shè)置索引為唯1性索引。在創(chuàng)建唯1性索引時,限制該索引的值必須是唯1的。例如,在student表的stu_name字段中創(chuàng)建唯1性索引,那末stu_name字段的值就必須是唯1的。通過唯1性索引,可以更快速地肯定某條記錄。主鍵就是1種特殊唯1性索引。單列索引:在表中的單個字段上創(chuàng)建索引。單列索引只根據(jù)該字段進(jìn)行索引。單列索引可以是普通索引,也能夠是唯1性索引,還可以是全文索引。只要保證該索引只對應(yīng)1個字段
便可。多列索引:多列索引是在表的多個字段上創(chuàng)建1個索引。該索引指向創(chuàng)建時對應(yīng)的多個字段,可以通過這幾個字段進(jìn)行查詢。但是,只有查詢條件中使用了這些字段中第1個字段時,索引才會被使用。例如,在表中的id、name和sex字段上建立1個多列索引,那末,只有查詢條件使用了id字段時該索引才會被使用。
6.4、1般1張表索引不要超過5個,而且避免重復(fù)索引,而且也不是建了索引,根據(jù)索引字段條件查詢,索引就會起作用。
6.5、1般哪些場景會致使索引失效:a.使用like關(guān)鍵字匹配字符串第1個為”%”的場景。b.條件中包括or、in、not in、<>關(guān)鍵字,默許不走索引的。c.訪問表上的數(shù)據(jù)行超越表總記錄數(shù)30%,變玉成表掃描。d.查詢條件使用函數(shù)在索引列上,或?qū)λ饕羞M(jìn)行運(yùn)算。e.多列索引中,第1個索引列使用范圍查詢,只能用到部分或沒法使用索引。f.多列索引中,第1個查詢條件不是最左索引列,上面多列索引概念中也有提到。
6.6、不能同時使用兩個索引,1個過濾數(shù)據(jù),1個用于排序(主鍵除外)。DML語句如果使用索引,會致使lock全表;如果使用了非唯1索引,可能只是鎖住1定范圍。對此,建議更新/刪除數(shù)據(jù)盡可能用上索引,如果可以最好用上主鍵或唯1索引,另外事務(wù)要及時提交。
6.7、關(guān)于事務(wù):a.日志記錄盡可能放在獨(dú)立事務(wù)里面,避免后面的異常產(chǎn)生致使日志丟失。b.上面已幾次提到,盡早提交事務(wù),避免事務(wù)太長,因此寫代碼的時候,1些可以不放到事務(wù)的邏輯可以移到外面,長事務(wù)看能否拆成兩個事務(wù)。
2、工作心得
(1)、和同事多維度溝通;學(xué)會使用筆記本如云筆記本記錄平常工作進(jìn)程和會議重點(diǎn);常常總結(jié)思考理解思路;側(cè)重學(xué)習(xí)和工作效力,效力第1,質(zhì)量第1。
(2)、多聽其他同事和老板上司的意見。
(3)、用發(fā)展的眼光和變化的眼光看待公司的業(yè)務(wù)和自己的掌握的技術(shù)及手頭上的工作。
(4)、心態(tài)決定1切,工作的價值在于自己的心態(tài)的控制和調(diào)理。
3、職業(yè)發(fā)展及2017計(jì)劃
(1)、先博而后淵:感覺自己的技術(shù)點(diǎn)還是理解的蠻多的,但感覺很多都不夠深入,未來是互聯(lián)網(wǎng)+時期,社會變遷很快,特別是信息爆炸的今天,東西太多,不肯能都學(xué)的很通。所以未來應(yīng)當(dāng)偏向?qū)嵱抿?qū)動,即如果在實(shí)際實(shí)用處景需要某個技術(shù)再去深入學(xué)習(xí),邊學(xué)邊用更能體現(xiàn)學(xué)以致用!
(2)、重視業(yè)務(wù),積累業(yè)務(wù)和管理經(jīng)驗(yàn):技術(shù)再牛不能解決實(shí)際業(yè)務(wù)問題都是啥流氓。另外對業(yè)務(wù)更理解有益于自己對項(xiàng)目管理工作更加順利的展開。作為項(xiàng)目管理人員,項(xiàng)目的人員調(diào)和與時間安排計(jì)劃,責(zé)任越大,思考的問題就越多,遇到的問題處理經(jīng)驗(yàn)就越豐富。把控能力也比較強(qiáng)。
(3)、學(xué)會和更多的同學(xué)同事交朋友:業(yè)余時間多和同事大學(xué)同學(xué)等交換同享,更有益于自己的多元化發(fā)展,及適當(dāng)?shù)耐卣棺约旱呐笥讶Α?/span>
(4)、對不懂的東西保持學(xué)習(xí)心態(tài):學(xué)習(xí)最能集中注意力的情況是有著比較強(qiáng)的好奇心和求知欲。所以1般1些技術(shù)分享或老員工討論的問題,可能很多概念知識你都不懂,這時候候你就能夠去學(xué)習(xí)了解這些知識。或你工作中遇到的問題,盡可能尋根究底的去弄清楚是甚么緣由致使的,不要1些老司機(jī)幫忙解決了就1了了之。或是其他同事遇到的問題,你都可以去了解1下。
(5)、2017重視技術(shù)的應(yīng)用:技術(shù)和業(yè)務(wù)的結(jié)合,向項(xiàng)目資深管理方向邁進(jìn)!在項(xiàng)目管理和技術(shù)方向上“55分賬”,特別是多關(guān)注大公司資深管理方面的書籍和經(jīng)驗(yàn)。
(6)、2017技術(shù)類書單:
《重構(gòu)》
《代碼整潔之道》
《Java并發(fā)編程的藝術(shù)》
《高性能Linux服務(wù)器構(gòu)建實(shí)踐及性能調(diào)優(yōu)與集群利用》
《Java多線程編程核心技術(shù)》
《SOA與Rest》--用Rest構(gòu)建企業(yè)級SOA解決方案
《Spring實(shí)踐》
《CentOS Linux系統(tǒng)運(yùn)維》
《科技之巔》
《硅谷百年史》--共3冊
《VMWare虛擬化與云計(jì)算利用案例詳解》
《Java經(jīng)常使用算法手冊》
《Docker生產(chǎn)環(huán)境實(shí)踐指南》
《Docker技術(shù)入門與實(shí)踐》
《DevOps實(shí)踐》
《Java EE開發(fā)的顛覆者Spring Boot實(shí)戰(zhàn)》
《算法導(dǎo)論》
《散布式服務(wù)框架原理與實(shí)踐》
《大話數(shù)據(jù)結(jié)構(gòu)》
《神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí)》
《Redis設(shè)計(jì)與實(shí)現(xiàn)》
《用戶體驗(yàn)要素》--以用戶為中心的產(chǎn)品設(shè)計(jì)
《白話大數(shù)據(jù)與機(jī)器學(xué)習(xí)》
《高性能MySQL》
《Hadoop權(quán)威指南》
《數(shù)據(jù)發(fā)掘與數(shù)據(jù)化運(yùn)營實(shí)戰(zhàn) 思路、方法、技能與利用》
《深入理解計(jì)算機(jī)系統(tǒng)》
《數(shù)據(jù)結(jié)構(gòu)與算法分析:Java語言描寫》
《Spring技術(shù)內(nèi)幕:深入解析Spring架構(gòu)與設(shè)計(jì)原理》
《機(jī)器學(xué)習(xí)》
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈