精品国产亚洲一区二区三区|亚洲国产精彩中文乱码AV|久久久久亚洲AV综合波多野结衣|漂亮少妇各种调教玩弄在线

<blockquote id="ixlwe"><option id="ixlwe"></option></blockquote>
  • <span id="ixlwe"></span>

  • <abbr id="ixlwe"></abbr>

    從校招生到核心架構(gòu)師,支付寶研究員李俊奎談如何成為一名優(yōu)秀的程序員

    校招進(jìn)入支付寶,11年時(shí)間,從一線工程師成長(zhǎng)為支付寶安全核心架構(gòu)師,這個(gè)技術(shù)牛人就是李俊奎。

    李俊奎一直聚焦風(fēng)控平臺(tái)的技術(shù)和架構(gòu)發(fā)展,并著手搭建了中國(guó)第一家云上的商業(yè)銀行——網(wǎng)商銀行。

    在2016年雙11和新春紅包等活動(dòng)中,李俊奎和他的團(tuán)隊(duì)實(shí)現(xiàn)歷史性突破,即在系統(tǒng)不被降級(jí)的壓力下,控制資源消耗不超過(guò)2015財(cái)年雙11,并且很好地滿足了業(yè)務(wù)需求。

    同時(shí),李俊奎率領(lǐng)團(tuán)隊(duì)實(shí)現(xiàn)了風(fēng)控系統(tǒng)的異地多活,打造出新一代的風(fēng)控體系。支付寶創(chuàng)立之初即提出“敢付敢賠”的口號(hào),其背后的支撐就是由李俊奎及其團(tuán)隊(duì)負(fù)責(zé)建設(shè)的實(shí)時(shí)風(fēng)控平臺(tái)。

    李俊奎樂(lè)于知識(shí)分享,經(jīng)常在工作中對(duì)其他同學(xué)進(jìn)行輔導(dǎo),深受一線工程師的尊重和認(rèn)可,被大家尊稱為“向爺”(花名:向秀)。

    不久前,在支付寶 BASIC College以代碼為主題的分享活動(dòng)中,李俊奎回顧了自己與代碼是如何結(jié)緣的,并對(duì)程序員職業(yè)發(fā)展談了談自己的想法?! ?/p>

    從校招生到核心架構(gòu)師,支付寶研究員李俊奎談如何成為一名優(yōu)秀的程序員

    一、給初入行程序員的建議

    從在校學(xué)生到初入職場(chǎng),首先是要過(guò)三關(guān),很重要的一關(guān)就是在工作的第一天或頭幾天,就要接觸到代碼,因?yàn)橹挥薪佑|到代碼心里才感覺是有點(diǎn)踏實(shí)的。

    我加入公司的時(shí)候,還是相對(duì)比較簡(jiǎn)單的,不像現(xiàn)在代碼量,公司體量已經(jīng)很大了,不管是系統(tǒng)數(shù)還是代碼數(shù)以及變更的數(shù)量都是很大的。08年的時(shí)候阿璽(螞蟻金服副CTO)帶著我們一起搭全站的系統(tǒng)環(huán)境,當(dāng)時(shí)是50多個(gè),基本上三個(gè)人,花一上午就能夠把整個(gè)支付寶所有的環(huán)境搭起來(lái)。

    剛剛加入公司的時(shí)候會(huì)有一段強(qiáng)烈的新鮮感時(shí)光,是來(lái)源于我們總覺得代碼其實(shí)是最重要的。我現(xiàn)在也會(huì)和很多的新同學(xué)說(shuō),新人同學(xué)進(jìn)來(lái)首先是要過(guò)三關(guān),很重要的一關(guān)就是希望他在工作的第一天,就是要接觸到到代碼(如果是技術(shù)同學(xué)),能看到代碼,最好能寫代碼,因?yàn)橹挥薪佑|到代碼心里才感覺有點(diǎn)踏實(shí)的。

    比如說(shuō)你工作了幾天,代碼沒看到或系統(tǒng)也不知道,這個(gè)時(shí)候心里是不踏實(shí)的,不知道自己在干嘛,會(huì)有點(diǎn)失落。

    我入職后的一兩個(gè)月都是覺得支付寶代碼也還好,數(shù)量還可以,但是后來(lái)就發(fā)現(xiàn)我只看到了冰山的一角。

    二、如何快速成長(zhǎng)?

    在項(xiàng)目中成長(zhǎng),從我個(gè)人的經(jīng)歷來(lái)看也是這樣的,項(xiàng)目在你修煉自己的代碼的這種能力里面是非常重要的。

    今天最想要講的就是項(xiàng)目中成長(zhǎng),我跟代碼結(jié)緣以來(lái)最主要的經(jīng)歷就是在項(xiàng)目中的成長(zhǎng)。

    1.要寫代碼先看代碼

    支付寶的代碼分成三類:第一類代碼是寫得很好的,這個(gè)好跟不好其實(shí)是有非常重要的一個(gè)評(píng)價(jià),就是你能否可以快速了解它,覺得它賞心悅目并且能夠快速地抓住它主要設(shè)計(jì)的精髓。

    我覺得這種代碼是好的代碼。這一類代碼,很多就是在什么地方呢?

    第一個(gè)就是在一些公共的庫(kù),第二個(gè)是一些所謂的核心的系統(tǒng)。

    我很長(zhǎng)一段時(shí)間,一部分是自己參加一些項(xiàng)目,第二部分就是看代碼。

    我認(rèn)為Code Review其實(shí)很多情況下并不是提交了代碼然后讓人來(lái)Code Review,這是一個(gè)過(guò)程。我認(rèn)為的Code Review更多的是“看代碼”,代碼有好的也有壞的。

    好的就是我剛才說(shuō)的一些比較核心的系統(tǒng),比較重要的庫(kù),這些代碼能看到很多一些設(shè)計(jì),很多的原理。新同學(xué)多看一些代碼,這對(duì)于其了解全貌很有益處。

    2.考古

    很多同學(xué)可能接觸到一些別人推送過(guò)來(lái)的系統(tǒng),交接過(guò)來(lái)的系統(tǒng),會(huì)發(fā)現(xiàn)文檔不一定是最好的,很多情況下就需要考古。我也考了很多的古,做每個(gè)項(xiàng)目之前很大一個(gè)工作其實(shí)就是要了解過(guò)往的系統(tǒng)到底是怎么運(yùn)作的,或者說(shuō)整個(gè)鏈路是怎么運(yùn)作的,這個(gè)時(shí)候就需要去考古了。

    不能說(shuō)看一些PPT上面的東西就能把這個(gè)方案能夠做得非常細(xì)致,非常典型的是一些拆分類的項(xiàng)目或者移交過(guò)來(lái)的比較大的系統(tǒng)。這個(gè)時(shí)候你只能去看PPT那個(gè)層面,當(dāng)然這是一個(gè)惡習(xí),PPT畫得高大上無(wú)比,真正到代碼上就各種坑,各種不注意的細(xì)節(jié)。

    考古我覺得是非常重要也是非常有必要的。只有把代碼基本上能夠粗略的看全,然后才真正能夠通過(guò)代碼大概了解它的運(yùn)作方式,這是非常重要的。

    3.不斷磨煉

    第三類代碼就是說(shuō)代碼跟配置其實(shí)很多情況下是分離的,這種情況下出問(wèn)題可能會(huì)比較大。

    我的例子就是當(dāng)時(shí)我是在做前臺(tái)業(yè)務(wù),交易核心是最重要的系統(tǒng)的服務(wù)。交易其實(shí)代碼跟它的配置是分離的,交易的代碼,如果不知道它下一步往哪里走的,就只能把代碼跟配置一起來(lái)看,甚至要調(diào)試。

    這個(gè)時(shí)候,通過(guò)運(yùn)行它的配置的代碼,在整個(gè)運(yùn)行中看它的過(guò)程,而不是只看JAVA的代碼,實(shí)際上這個(gè)配置代表一些很重要的邏輯在里面,現(xiàn)在這樣的情況越來(lái)越多。我理解現(xiàn)在是比以前更加的難,或者說(shuō)范圍更加的廣。

    第三類代碼就是不斷地去做這樣的一個(gè)磨煉,我的理解就是自己在項(xiàng)目中做這種磨煉。

    關(guān)于磨練,我這里有幾個(gè)例子是自己經(jīng)歷過(guò)的。

    (1)看書

    不知道大家現(xiàn)在還看不看書?我當(dāng)然是指不是看《故事會(huì)》《小人書》,而是看一些設(shè)計(jì)的書或者別人代碼的這些書,我以前參加項(xiàng)目的過(guò)程中,其實(shí)忙里偷閑還是要去看一些書,我看魯肅(螞蟻金服CTO)也是這樣的習(xí)慣,經(jīng)??吹紧斆C拿了一堆的書自己在那里狂啃,這個(gè)確實(shí)是一個(gè)比較好的習(xí)慣。我自己的經(jīng)驗(yàn)是,看書的過(guò)程中可以使大家開闊思路。

    (2)單元測(cè)試

    第二個(gè)我剛才說(shuō)會(huì)看代碼,其實(shí)還有一部分看單元測(cè)試。當(dāng)然現(xiàn)在是在強(qiáng)制做,有覆蓋率的要求,單元測(cè)試是非常重要的一個(gè)環(huán)節(jié)。單元測(cè)試是相對(duì)非常小的一段,它能做一些測(cè)試、模擬,甚至說(shuō)做一些演示的工作。

    如果大家一味地看注釋,注釋不一定是準(zhǔn)確的,有的注釋寫得好,有的注釋寫得差,但是實(shí)際上單元測(cè)試如果它有一定的覆蓋率的話,其實(shí)在哪些邏輯不清楚的情況下,看或者寫一些單元測(cè)試對(duì)于理解系統(tǒng)運(yùn)行也是非常重要的。

    (3)設(shè)計(jì)的經(jīng)驗(yàn)

    比如SOFA框架(分布式中間件),我對(duì)新同學(xué)說(shuō),如果在試用期或?qū)嵙?xí)期,能夠把SOFA框架的整體的原理圖能夠搞清楚,它的一個(gè)依賴關(guān)系的那張圖能搞清楚,那么就抓住了SOFA的精髓。然后再去看支付寶主要的系統(tǒng)的代碼,就有據(jù)可依,這就是設(shè)計(jì)的一個(gè)好處。SOFA的框架相當(dāng)于龍骨,能看懂就會(huì)知道主要的一些代碼,核心代碼是寫在哪里的,一些主要的邏輯放在哪里的,這個(gè)很重要。

    設(shè)計(jì)的第一塊是向框架去學(xué)習(xí),第二塊其實(shí)就是向他人去學(xué)習(xí)。我經(jīng)常看項(xiàng)目組其他同學(xué)的代碼,看優(yōu)秀的代碼還會(huì)做一些總結(jié)。

    在項(xiàng)目中成長(zhǎng),對(duì)工程師來(lái)說(shuō)是非常重要的。從我個(gè)人的經(jīng)歷來(lái)看也是這樣的,項(xiàng)目在自己修煉代碼能力方面是非常重要的,大概占了百分之七八十。

    三、總結(jié)

    最后,是我給大家的一些建議。

    1.多看代碼,無(wú)論好壞,保持代碼敏感度。

    代碼方面,我認(rèn)為首先要看代碼,多看代碼,因?yàn)闊o(wú)論如何要保持自己對(duì)代碼的敏感。大家可能經(jīng)常自己吐槽是一個(gè)碼農(nóng),天天不管需求在哪里,只管代碼碼哪里,這個(gè)肯定不是最好的方式。好代碼跟壞代碼是有本質(zhì)的差距,好代碼是體現(xiàn)了人的思想,體現(xiàn)人的設(shè)計(jì)。壞代碼,為什么看壞代碼?某種原因也是給大家一個(gè)警示,這個(gè)我們要避免。

    2.寫代碼,多做總結(jié),一次比一次好。

    除了經(jīng)常看別人寫的好代碼或者考古別人的代碼,我也會(huì)經(jīng)?;剡^(guò)去看以前自己寫的代碼??吹臅r(shí)候就想,這個(gè)代碼,為什么覺得寫得好?為什么它那個(gè)地方是有一些問(wèn)題的。

    我相信不是所有的代碼都是好的,自己寫的代碼也不一定所有都是好的。但是自己給自己是有個(gè)評(píng)判,有的時(shí)候去看,這個(gè)地方做一下更多的抽象,或者更多地提取一些公共的一些東西,這個(gè)是非常重要的。

    多做總結(jié)其實(shí)是為了讓自己一次比一次寫得少,一次比一次好,能夠避免以前的一些坑,或者說(shuō)能夠避免以前的一些錯(cuò)誤,這個(gè)就是一個(gè)進(jìn)步。

    3.寫代碼前,一些設(shè)計(jì)很重要。

    寫代碼有很多種,有的是直接完全按照需求實(shí)現(xiàn),按邏輯實(shí)現(xiàn)。但我想即使這樣,如果大家要提高自己的代碼的能力或者代碼的意識(shí),一些設(shè)計(jì)特別重要。這個(gè)設(shè)計(jì)不是要去整設(shè)計(jì)模式,整高大上的框架。很多情況下是能夠通過(guò)一些代碼,能夠把一些這種共性的東西做一些寫法的不一樣,可能都是很好的設(shè)計(jì)。但是如果只是純粹的把邏輯實(shí)現(xiàn),或者說(shuō)就按照這個(gè)邏輯去這樣做,有的時(shí)候并不一定是最好的。

    4.養(yǎng)成看書的習(xí)慣。

    現(xiàn)在是時(shí)間碎片化非常嚴(yán)重的時(shí)代,獲取知識(shí)的渠道非常多,但是有一些經(jīng)典的書或者體系化的書,建議還是要去多看。養(yǎng)成看書的習(xí)慣,那么獲取的知識(shí)會(huì)比你看比如今日頭條或者一些網(wǎng)頁(yè)還是要來(lái)得更加的體系化。

    極客網(wǎng)企業(yè)會(huì)員

    免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

    2019-09-10
    從校招生到核心架構(gòu)師,支付寶研究員李俊奎談如何成為一名優(yōu)秀的程序員
    校招進(jìn)入支付寶,11年時(shí)間,從一線工程師成長(zhǎng)為支付寶安全核心架構(gòu)師,這個(gè)技術(shù)牛人就是李俊奎。

    長(zhǎng)按掃碼 閱讀全文