久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

畢玄:我在阿里的十年技術(shù)感悟

 liang1234_ 2019-01-24

阿里妹導(dǎo)讀:在阿里,我們習(xí)慣尊稱畢玄老師為“畢大師”,。他2007年加入阿里,,一手打造了HSF,十多年來(lái)更見(jiàn)證,、參與了阿里在基礎(chǔ)技術(shù)上的演進(jìn)與發(fā)展:如淘寶在2007-2009年的分布式應(yīng)用架構(gòu)升級(jí),、2013-2016年的阿里電商異地多活架構(gòu)升級(jí)等。但很少有人知道,,他大學(xué)讀的是生物專業(yè),。


左手代碼右手詩(shī),亦是生活亦是癡,。今天,,畢玄老師將為你講述十多年開(kāi)發(fā)經(jīng)歷的收獲與感悟,希望能對(duì)你有所啟發(fā),。


畢玄


本文轉(zhuǎn)自畢玄老師個(gè)人公眾號(hào):hellojavacases

(不常更新,,一更就是經(jīng)典)


從業(yè)余程序員到職業(yè)程序員


程序員剛?cè)胄袝r(shí),我覺(jué)得最重要的是把自己培養(yǎng)成職業(yè)的程序員,,我的程序員起步比同齡人都晚了很多,,更不用說(shuō)現(xiàn)在的年輕人了,,我大學(xué)讀的是生物專業(yè),,在上大學(xué)前基本算是完全沒(méi)接觸過(guò)計(jì)算機(jī),,軍訓(xùn)的時(shí)候因?yàn)楹軣o(wú)聊,我和室友每天跑去學(xué)校的機(jī)房玩,,我現(xiàn)在還印象很深刻,,我第一次走進(jìn)機(jī)房的時(shí)候,別人問(wèn),,你是要玩windows,,還是dos,我那是完全的一抹黑,,后來(lái)就只記得在機(jī)房一堆人都是在練習(xí)盲打,,軍訓(xùn)完,盲打倒是練的差不多了,,對(duì)計(jì)算機(jī)就這么產(chǎn)生了濃厚的興趣,,大一的時(shí)候都是玩組裝機(jī),搗鼓了一些,,對(duì)計(jì)算機(jī)的硬件有了那么一些了解,。


到大二后,買(mǎi)了一些書(shū)開(kāi)始學(xué)習(xí)當(dāng)時(shí)最火的網(wǎng)頁(yè)三劍客,,學(xué)會(huì)了手寫(xiě)HTML,、PS的基本玩法之類的,課余,、暑假也能開(kāi)始給人做做網(wǎng)站什么的(ps: 那個(gè)時(shí)候做網(wǎng)站真的好賺錢(qián)),,可能那樣過(guò)了個(gè)一年左右,做靜態(tài)的網(wǎng)頁(yè)就不好賺錢(qián)了,,也不好找實(shí)習(xí)工作,,于是就開(kāi)始學(xué)asp,寫(xiě)些簡(jiǎn)單的CRUD,,做做留言板,、論壇這些動(dòng)態(tài)程序,應(yīng)該算是在這個(gè)階段接觸編程了,。


畢業(yè)后加入了深圳的一家做政府行業(yè)軟件的公司,,一個(gè)非常靠譜和給我空間的Leader,,使得自己在那幾年有了不錯(cuò)的成長(zhǎng),,終于成了一個(gè)職業(yè)的程序員,通常來(lái)說(shuō),,業(yè)余或半職業(yè)的程序員,,多數(shù)是1個(gè)人,,或者很小的一個(gè)團(tuán)隊(duì)一起開(kāi)發(fā),使得在開(kāi)發(fā)流程,、協(xié)作工具(例如jira,、cvs/svn/git等)、測(cè)試上通常會(huì)有很大的欠缺,,而職業(yè)的程序員在這方面則會(huì)專業(yè)很多,,另外,通常,,職業(yè)的程序員做的系統(tǒng)都要運(yùn)行較長(zhǎng)的時(shí)間,,所以在可維護(hù)性上會(huì)特別注意,這點(diǎn)我是在加入阿里后理解更深的,,一個(gè)運(yùn)行10年的系統(tǒng),,和一個(gè)寫(xiě)來(lái)玩玩的系統(tǒng)顯然是有非常大差別的。

這塊自己感覺(jué)也很難講清楚,,只能說(shuō)模模糊糊有個(gè)這樣的概念,,通常在有興趣的基礎(chǔ)上,從業(yè)余程序員跨越到成為職業(yè)程序員我覺(jué)得不會(huì)太難,。


編程能力的成長(zhǎng)


作為程序員,,最重要的能力始終是編程能力,就我自己的感受而言,,我覺(jué)得編程能力的成長(zhǎng)主要有這么幾個(gè)部分,。


編程能力初級(jí):會(huì)用


編程,首先都是從學(xué)習(xí)編程語(yǔ)言的基本知識(shí)學(xué)起的,,不論是什么編程語(yǔ)言,,有很多共同的基本知識(shí),例如怎么寫(xiě)第一個(gè)Hello World,、if/while/for,、變量等,因此我比較建議在剛剛開(kāi)始學(xué)一門(mén)編程語(yǔ)言的時(shí)候,,還是就看看編程語(yǔ)言自己的一些文檔就好,,而不要上來(lái)就去看一些高階的書(shū),我當(dāng)年學(xué)Java的時(shí)候上來(lái)就看Think in Java,、Effective Java之類的,,真心好難懂。


除了看文檔以外,,編程是個(gè)超級(jí)實(shí)踐的活,,所以一定要多寫(xiě)代碼,只有這樣才能真正熟練起來(lái),這也是為什么我還是覺(jué)得在面試的時(shí)候讓面試者手寫(xiě)代碼是很重要的,,這個(gè)過(guò)程是非常容易判斷寫(xiě)代碼的熟悉程度的,,很多人會(huì)說(shuō)由于寫(xiě)代碼都是高度依賴IDE的,導(dǎo)致手寫(xiě)很難,,但我絕對(duì)相信寫(xiě)代碼寫(xiě)了很多的人,,手寫(xiě)一段不是太復(fù)雜的可運(yùn)行的代碼是不難的,即使像我這種三年多沒(méi)寫(xiě)過(guò)代碼的人,,讓我現(xiàn)在手寫(xiě)一段不太復(fù)雜的可運(yùn)行的Java程序,,還是沒(méi)問(wèn)題的,,前面N年的寫(xiě)代碼生涯使得很多東西已經(jīng)深入骨髓了,。


我覺(jué)得編程能力初級(jí)這個(gè)階段對(duì)于大部分程序員來(lái)說(shuō)都不會(huì)是問(wèn)題,勤學(xué)苦練,,是這個(gè)階段的核心,。



編程能力中級(jí):會(huì)查和避免問(wèn)題


除了初級(jí)要掌握的會(huì)熟練的使用編程語(yǔ)言去解決問(wèn)題外,中級(jí)我覺(jué)得首先是提升查問(wèn)題的能力,。


在寫(xiě)代碼的過(guò)程中,,出問(wèn)題是非常正常的,怎么去有效且高效的排查問(wèn)題,,是程序員群體中通常能感受到的大家在編程能力上最大的差距,,解決問(wèn)題能力強(qiáng)的基本很容易在程序員群體里得到很高的認(rèn)可,在查問(wèn)題的能力上,,首先要掌握的是一些基本的調(diào)試技巧,,好用的調(diào)試工具,就像在Java里JDK自帶的jstat,、jmap,、jinfo,不在JDK里的mat,、gperf,、btrace等,工欲善其事必先利其器,,在查問(wèn)題上是非常典型的,,有些時(shí)候大家在查問(wèn)題時(shí)的能力差距,有可能僅僅是因?yàn)閯e人比你多知道一個(gè)工具而已,,除了調(diào)試技巧和工具外,,查問(wèn)題的更高境界會(huì)和編程能力的高級(jí)階段有非常大的關(guān)系,就是懂原理,,一個(gè)懂原理的程序員在查問(wèn)題的水平上是有明顯差距的,,我想很多的同學(xué)應(yīng)該能感受到,有些時(shí)候查出問(wèn)題的原因僅僅是因?yàn)橛行У墓ぞ?,知其然不知其所以然,,我給很多阿里的同學(xué)培訓(xùn)過(guò)Java排查問(wèn)題的方法,,在這個(gè)培訓(xùn)里,我經(jīng)常也會(huì)講到查問(wèn)題的能力的培養(yǎng)最主要的也是熟練,,多嘗試給自己寫(xiě)一些會(huì)出問(wèn)題的程序,,多積極的看別人是怎么查問(wèn)題的,多積極的去參與排查問(wèn)題,,很多最后查問(wèn)題能力強(qiáng)的人多數(shù)僅僅是因?yàn)椤盁o(wú)他,,但手熟爾”。


就像我自己,,排查問(wèn)題能力的提升主要是在2009年和2010年,,那兩年作為淘寶消防隊(duì)(處理各種問(wèn)題和故障的虛擬團(tuán)隊(duì))的成員處理了很多的故障和問(wèn)題,當(dāng)時(shí)消防隊(duì)還有阿里最公認(rèn)的技術(shù)大神多隆,,向他學(xué)習(xí)到了很多排查問(wèn)題的技巧,,和他比,我排查問(wèn)題的能力就是初級(jí)的那種,,我印象最深刻的是有一次我們一起查一個(gè)應(yīng)用cpu us高的問(wèn)題,,我們兩定位到是一段代碼在某種輸入?yún)?shù)的時(shí)候會(huì)造成cpu us高的原因后,我能想到的繼續(xù)查的方法是去生產(chǎn)環(huán)境抓輸入?yún)?shù),,然后再用參數(shù)來(lái)本地debug看是什么原因,,但多隆在看了一會(huì)那段代碼后,給了我一個(gè)輸入?yún)?shù),,我拿這個(gè)參數(shù)一運(yùn)行,,果然cpu us很高,哎,,而且這種case不是一次兩次,,所以我經(jīng)常和別人說(shuō),我是需要有問(wèn)題場(chǎng)景才能排查出問(wèn)題的,,但多隆是完全有可能直接看代碼就能看出問(wèn)題的,,這是本質(zhì)的差距。



除了查問(wèn)題外,,更厲害的程序員是在寫(xiě)代碼的過(guò)程就會(huì)很好的去避免問(wèn)題,,大家最容易理解的就是在寫(xiě)代碼時(shí)處理各種異常情況,但這里通常也是程序員們很大的差距的地方,,寫(xiě)一段正向邏輯的代碼,,大部分情況下即使有差距,也不會(huì)太大,,但在怎么很好的處理這個(gè)過(guò)程中有可能出現(xiàn)的異常上,,這個(gè)時(shí)候的功力差距會(huì)非常明顯,很多時(shí)候一段代碼里處理異常邏輯的部分都會(huì)超過(guò)正常邏輯的代碼量,我經(jīng)常說(shuō),,一個(gè)優(yōu)秀程序員和普通程序員的差距,,很多時(shí)候壓根就不需要看什么滿天飛的架構(gòu)圖,而只用show一小段的代碼就可以,,舉一個(gè)小case大家感受下,,當(dāng)年有一個(gè)嚴(yán)重故障,最后查出的原因是輸入的參數(shù)里有一個(gè)是數(shù)組,,把這個(gè)數(shù)組里的值作為參數(shù)去查數(shù)據(jù)庫(kù),,結(jié)果前面輸入了一個(gè)很大的數(shù)組,導(dǎo)致從數(shù)據(jù)庫(kù)查了大量的數(shù)據(jù),,內(nèi)存溢出了,,很多程序員現(xiàn)在看都會(huì)明白對(duì)入?yún)ⅰ⒊鰠⒌谋Wo(hù)check,,但類似這樣的case在我自己排查問(wèn)題的經(jīng)歷了真的碰到了好多,。


在中級(jí)這個(gè)階段,我會(huì)推薦大家盡可能的多刻意的去培養(yǎng)下自己這兩個(gè)方面的能力,,成為一個(gè)能寫(xiě)出高質(zhì)量代碼、有效排查問(wèn)題的優(yōu)秀程序員,。


編程能力高級(jí):懂高級(jí)API和原理


就我自己的經(jīng)歷而言,,我是在寫(xiě)了多年的Java代碼后,才開(kāi)始真正更細(xì)致的學(xué)習(xí)和掌握J(rèn)ava的一些更高級(jí)的API,,我相信多數(shù)Java程序員也是如此,,我算是從2003年開(kāi)始用Java寫(xiě)商業(yè)系統(tǒng)的代碼,但直到在2007年加入淘寶后,,才開(kāi)始非常認(rèn)真的學(xué)習(xí)Java的IO通信,、并發(fā)這些部分的API,盡管以前也學(xué)過(guò)也寫(xiě)過(guò)一些這樣的代碼,,但完全就是皮毛,,當(dāng)然,這些通常來(lái)說(shuō)有很大部分的原因會(huì)是工作的相關(guān)性,,多數(shù)的寫(xiě)業(yè)務(wù)系統(tǒng)的程序員可能基本就不需要用到這些,,所以導(dǎo)致會(huì)很難懂這些相對(duì)高級(jí)一些的API,但這些API對(duì)真正的理解一門(mén)編程語(yǔ)言我覺(jué)得至關(guān)重要,,在之前的程序員成長(zhǎng)路線的文章里我也講到了這個(gè)部分,,在沒(méi)有場(chǎng)景的情況下,只能靠自己去創(chuàng)造場(chǎng)景來(lái)學(xué)習(xí)好,,我覺(jué)得只要有足夠的興趣,,這個(gè)問(wèn)題還是不大的,畢竟現(xiàn)在有各種開(kāi)源,這些是可以非常好的幫助自己創(chuàng)造機(jī)會(huì)學(xué)習(xí)的,,例如學(xué)Java NIO,,可以自己基于NIO包一個(gè)框架,然后對(duì)比Netty,,看看哪些寫(xiě)的是不如Netty的,,這樣會(huì)非常有助于真正的理解。


在學(xué)習(xí)高級(jí)API的過(guò)程中,,以及排查問(wèn)題的過(guò)程中,,我自己越來(lái)越明白懂編程語(yǔ)言的運(yùn)行原理是非常重要的,因此我到了后面的階段開(kāi)始學(xué)習(xí)Java的編譯機(jī)制,、內(nèi)存管理,、線程機(jī)制等,對(duì)于我這種非科班出身的而言,,學(xué)這些會(huì)因?yàn)槿狈A(chǔ)更難很多,,但這些更原理性的東西學(xué)會(huì)了后,對(duì)自己的編程能力會(huì)有質(zhì)的提升,,包括以后學(xué)習(xí)其他編程語(yǔ)言的能力,,學(xué)這些原理最好的方法我覺(jué)得是先看看一些講相關(guān)知識(shí)的書(shū),然后去翻看源碼,,這樣才能真正的更好的掌握,,最后是在以后寫(xiě)代碼的過(guò)程中、查問(wèn)題的過(guò)程中多結(jié)合掌握的原理,,才能做到即使在N年后也不會(huì)忘,。


在編程能力的成長(zhǎng)上,我覺(jué)得沒(méi)什么捷徑,,非常贊同1萬(wàn)小時(shí)理論,,在中級(jí)、高級(jí)階段如果有人指點(diǎn)或和優(yōu)秀的程序員們共事,,會(huì)好非常多,,不過(guò)我覺(jué)得這個(gè)和讀書(shū)也有點(diǎn)像,到了一定階段后(例如高中),,天分會(huì)成為最重要的分水嶺,,不過(guò)就和大部分行業(yè)一樣,大部分的情況下都還沒(méi)到拼天分的時(shí)候,,只需要拼勤奮就好,。


系統(tǒng)設(shè)計(jì)能力的成長(zhǎng)


除了少數(shù)程序員會(huì)進(jìn)入專深的領(lǐng)域,例如Linux Kernel,、JVM,,其他多數(shù)的程序員除了編程能力的成長(zhǎng)外,,也會(huì)越來(lái)越需要在系統(tǒng)設(shè)計(jì)能力上成長(zhǎng)。


通常一個(gè)編程能力不錯(cuò)的程序員,,在一定階段后就會(huì)開(kāi)始承擔(dān)一個(gè)模塊的工作,,進(jìn)而承擔(dān)一個(gè)子系統(tǒng)、系統(tǒng),、跨多領(lǐng)域的更大系統(tǒng)等,。


我自己在工作的第三年開(kāi)始承擔(dān)一個(gè)流程引擎的設(shè)計(jì)和實(shí)現(xiàn)工作,算是一個(gè)不算小的系統(tǒng),,并且也是當(dāng)時(shí)那個(gè)項(xiàng)目里的核心部分,,那個(gè)階段學(xué)會(huì)了一些系統(tǒng)設(shè)計(jì)的基本知識(shí),例如需要想清楚整個(gè)系統(tǒng)的目標(biāo),、模塊的劃分和職責(zé),、關(guān)鍵的對(duì)象設(shè)計(jì)等,而不是上來(lái)就開(kāi)始寫(xiě)代碼,,但那個(gè)時(shí)候由于我是一個(gè)人寫(xiě)整個(gè)系統(tǒng),,所以其實(shí)對(duì)設(shè)計(jì)的感覺(jué)并還沒(méi)有那么強(qiáng)力的感覺(jué)。


在那之后的幾年也負(fù)責(zé)過(guò)一些系統(tǒng),,但總體感覺(jué)好像在系統(tǒng)設(shè)計(jì)上的成長(zhǎng)沒(méi)那么多,,直到在阿里的經(jīng)歷,才敢上自己在系統(tǒng)設(shè)計(jì)上有了越來(lái)越多的體會(huì)(References里有一篇我在系統(tǒng)設(shè)計(jì)上犯過(guò)的14個(gè)錯(cuò),,可以看到我走的一堆的彎路),,在阿里有一次做分享,講到我在系統(tǒng)設(shè)計(jì)能力方面的成長(zhǎng),,主要是因?yàn)槿谓?jīng)歷,負(fù)責(zé)專業(yè)領(lǐng)域系統(tǒng)的設(shè)計(jì) -> 負(fù)責(zé)跨專業(yè)領(lǐng)域的專業(yè)系統(tǒng)的設(shè)計(jì) -> 負(fù)責(zé)阿里電商系統(tǒng)架構(gòu)級(jí)改造的設(shè)計(jì),。


第一段經(jīng)歷,,是我負(fù)責(zé)HSF,HSF是一個(gè)從0開(kāi)始打造的系統(tǒng),,它主要是作為支撐服務(wù)化的框架,,是個(gè)非常專業(yè)領(lǐng)域的系統(tǒng),放在整個(gè)淘寶電商的大系統(tǒng)來(lái)看,,其實(shí)它就是一個(gè)很小的子系統(tǒng),,這段經(jīng)歷里讓我最深刻的有三點(diǎn):


1). 要設(shè)計(jì)好這種非常專業(yè)領(lǐng)域的系統(tǒng),專業(yè)的知識(shí)深度是非常重要的,,我在最早設(shè)計(jì)HSF的幾個(gè)框的時(shí)候,,是沒(méi)有設(shè)計(jì)好服務(wù)消費(fèi)者/提供者要怎么和現(xiàn)有框架結(jié)合的,在設(shè)計(jì)負(fù)載均衡這個(gè)部分也反復(fù)了幾次,,這個(gè)主要是因?yàn)樽约寒?dāng)時(shí)對(duì)這個(gè)領(lǐng)域掌握不深的原因造成的;


2). 太技術(shù)化,,在HSF的階段,,出于情懷,在有一個(gè)版本里投入了非常大的精力去引進(jìn)OSGi以及去做動(dòng)態(tài)化,,這個(gè)后來(lái)事實(shí)證明是個(gè)非常非常錯(cuò)誤的決定,,從這個(gè)點(diǎn)我才真正明白在設(shè)計(jì)系統(tǒng)時(shí)一定要想清楚目標(biāo),而目標(biāo)很重要的是和公司發(fā)展階段結(jié)合,;


3). 可持續(xù)性,,作為一個(gè)要在生產(chǎn)環(huán)境持續(xù)運(yùn)行很多年的系統(tǒng)而言,怎么樣讓其在未來(lái)更可持續(xù)的發(fā)展,,這個(gè)對(duì)設(shè)計(jì)階段來(lái)說(shuō)至關(guān)重要,,這里最low的例子是最早設(shè)計(jì)HSF協(xié)議的時(shí)候,協(xié)議頭里竟然沒(méi)有版本號(hào),,導(dǎo)致后來(lái)升級(jí)都特別復(fù)雜,,最典型的例子是HSF在早期缺乏了缺乏了服務(wù)Tracing這方面的設(shè)計(jì),導(dǎo)致后面發(fā)現(xiàn)了這個(gè)地方非常重要后,,全部落地花了長(zhǎng)達(dá)幾年的時(shí)間,,又例如HSF早期缺乏Filter Chain的設(shè)計(jì),導(dǎo)致很多擴(kuò)展,、定制化做起來(lái)非常不方便,。


第二段經(jīng)歷,是做T4,,T4是基于LXC的阿里的容器,,它和HSF的不同是,它其實(shí)是一個(gè)跨多領(lǐng)域的系統(tǒng),,包括了單機(jī)上的容器引擎,,容器管理系統(tǒng),容器管理系統(tǒng)對(duì)外提供API,,其他系統(tǒng)或用戶通過(guò)這個(gè)來(lái)管理容器,,這個(gè)系統(tǒng)發(fā)展過(guò)程也是各種犯錯(cuò),犯錯(cuò)的主要原因也是因?yàn)轭I(lǐng)域掌握不深,,在做T4的日子里,,學(xué)會(huì)到的最重要的是怎么去設(shè)計(jì)這種跨多個(gè)專業(yè)領(lǐng)域的系統(tǒng),怎么更好的劃分模塊的職責(zé),,設(shè)計(jì)交互邏輯,,這段經(jīng)歷對(duì)我自己更為重要的意義是我有了做更大一些系統(tǒng)的架構(gòu)的信心。



第三段經(jīng)歷,,是做阿里電商的異地多活,,這對(duì)我來(lái)說(shuō)是真正的去做一個(gè)巨大系統(tǒng)的架構(gòu)師,盡管我以前做HSF的時(shí)候參與了淘寶電商2.0-3.0的重大技術(shù)改造,,但參與和自己主導(dǎo)是有很大區(qū)別的,,這個(gè)架構(gòu)改造涉及到了阿里電商眾多不同專業(yè)領(lǐng)域的技術(shù)團(tuán)隊(duì),,在這個(gè)階段,我學(xué)會(huì)的最主要的:


1). 子系統(tǒng)職責(zé)劃分,,在這種超大的技術(shù)方案中,,很容易出現(xiàn)某些部分的職責(zé)重疊和沖突,這個(gè)時(shí)候怎么去劃分子系統(tǒng),,就非常重要了,,作為大架構(gòu)師,這個(gè)時(shí)候要從團(tuán)隊(duì)的職責(zé),、團(tuán)隊(duì)的可持續(xù)性上去選擇團(tuán)隊(duì),;


2). 大架構(gòu)師最主要的職責(zé)是控制系統(tǒng)風(fēng)險(xiǎn),對(duì)于這種超大系統(tǒng),,一定是多個(gè)專業(yè)領(lǐng)域的架構(gòu)師和大架構(gòu)師共同設(shè)計(jì),,怎么確保在執(zhí)行的過(guò)程中對(duì)于系統(tǒng)而言最重要的風(fēng)險(xiǎn)能夠被控制住,這是我真正的理解什么叫系統(tǒng)設(shè)計(jì)文檔里設(shè)計(jì)原則的部分,,設(shè)計(jì)原則我自己覺(jué)得就是用來(lái)確保各個(gè)子系統(tǒng)在設(shè)計(jì)時(shí)都會(huì)遵循和考慮的,,一定不能是虛的東西,例如在異地多活架構(gòu)里,,最重要的是如何控制數(shù)據(jù)風(fēng)險(xiǎn),,這個(gè)需要在原則里寫(xiě)上,最基本的原則是可接受系統(tǒng)不可用,,但也要保障數(shù)據(jù)一致,,而我看過(guò)更多的系統(tǒng)設(shè)計(jì)里設(shè)計(jì)原則只是寫(xiě)寫(xiě)的,或者千篇一律的,,設(shè)計(jì)原則切實(shí)的體現(xiàn)了架構(gòu)師對(duì)目標(biāo)的理解(例如當(dāng)時(shí)異地多活這個(gè)其實(shí)開(kāi)始只是個(gè)概念,,但做到什么程度才叫做到異地多活,這是需要解讀的,,也要確保在技術(shù)層面的設(shè)計(jì)上是達(dá)到了目標(biāo)的),,技術(shù)方案層面上的選擇原則,并確保在細(xì)節(jié)的設(shè)計(jì)方案里有對(duì)于設(shè)計(jì)原則的承接以及執(zhí)行,;


3). 考慮問(wèn)題的全面性,像異地多活這種大架構(gòu)改造,,涉及業(yè)務(wù)層面,、各種基礎(chǔ)技術(shù)層面、基礎(chǔ)設(shè)施層面,,對(duì)于執(zhí)行節(jié)奏的決定要綜合考慮人力投入,、機(jī)器成本、基礎(chǔ)設(shè)施布局訴求,、穩(wěn)定性控制等,,這會(huì)比只是做一個(gè)小的系統(tǒng)的設(shè)計(jì)復(fù)雜非常多,。


系統(tǒng)設(shè)計(jì)能力的成長(zhǎng),我自己覺(jué)得最重要的一是先在一兩個(gè)技術(shù)領(lǐng)域做到專業(yè),,然后盡量擴(kuò)大自己的知識(shí)廣度,,例如除了自己的代碼部分外,還應(yīng)該知道具體是怎么部署的,,部署到哪去了,,部署的環(huán)境具體是怎么樣的,和整個(gè)系統(tǒng)的關(guān)系是什么樣的,,像我自己,,是在加入基礎(chǔ)設(shè)施團(tuán)隊(duì)后才更加明白有些時(shí)候軟件上做的一個(gè)決策,會(huì)導(dǎo)致基礎(chǔ)設(shè)施上巨大的硬件,、網(wǎng)絡(luò)或機(jī)房的投入,,但其實(shí)有可能只需要在軟件上做些調(diào)整就可以避免,做做研發(fā),、做做運(yùn)維可能是比較好的把知識(shí)廣度擴(kuò)大的方法,,第二點(diǎn)是練習(xí)自己做tradeoff的能力,這個(gè)比較難,,做tradeoff這事需要綜合各種因素做選擇,,但這也是所有的架構(gòu)師最關(guān)鍵的,可以回頭反思下自己在做各種系統(tǒng)設(shè)計(jì)時(shí)做出的tradeoff是什么,,這個(gè)最好是親身經(jīng)歷,,聽(tīng)一些有經(jīng)驗(yàn)的架構(gòu)師分享他們選擇背后的邏輯也會(huì)很有幫助,尤其是如果恰好你也在同樣的挑戰(zhàn)階段,,光聽(tīng)最終的架構(gòu)結(jié)果其實(shí)大多數(shù)時(shí)候幫助有限,。


技術(shù)Leader我覺(jué)得最好是能在架構(gòu)師的基礎(chǔ)上,后續(xù)注重成長(zhǎng)的方面還是有挺大差別,,就不在這篇里寫(xiě)了,,后面再專門(mén)來(lái)寫(xiě)一篇。


程序員金字塔


我認(rèn)為程序員的價(jià)值關(guān)鍵體現(xiàn)在作品上,,被打上作品標(biāo)簽是一種很大的榮幸,,作品影響程度的大小我覺(jué)得決定了金字塔的層次,所以我會(huì)這么去理解程序員的金字塔,。



當(dāng)然,,要打造一款作品,僅有上面的兩點(diǎn)能力是不夠的,,作品里很重要的一點(diǎn)是對(duì)業(yè)務(wù),、技術(shù)趨勢(shì)的判斷,希望作為程序員的大伙,,都能有機(jī)會(huì)打造一款世界級(jí)的作品,,去為技術(shù)圈的發(fā)展做出貢獻(xiàn),。


由于目前IT技術(shù)更新速度還是很快的,程序員這個(gè)行當(dāng)是特別需要學(xué)習(xí)能力的,,我一直認(rèn)為,,只有對(duì)程序員這個(gè)職業(yè)真正的充滿興趣,保持自驅(qū),,才有可能在這個(gè)職業(yè)上做好,,否則的話是很容易淘汰的。




阿里技術(shù)重磅發(fā)布,!年度精選集開(kāi)放下載


《數(shù)字經(jīng)濟(jì)下的算法力量:阿里算法年度精選集》電子書(shū),,精選數(shù)十篇年度算法頂級(jí)干貨,合計(jì)300 頁(yè),,為你呈現(xiàn)阿里最新的算法實(shí)踐案例,。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多