<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這 10 個(gè)程序員的好習(xí)慣,讓我變強(qiáng)了

          共 2713字,需瀏覽 6分鐘

           ·

          2021-12-10 01:00

          我總結(jié)了 10 個(gè)程序員的好習(xí)慣,今天分享給大家。

          1. 引入新的技術(shù)棧的時(shí)候,要以官方文檔為主

          在項(xiàng)目里,無(wú)論使用新的 jar 包,還是用新的中間件,一定要去看官方文檔。

          現(xiàn)在網(wǎng)上的技術(shù)文章魚(yú)龍混雜,再加上國(guó)內(nèi)那個(gè)不咋地的搜索引擎,所以在網(wǎng)上搜靠譜的技術(shù)文章,就相當(dāng)于在屎坑里撈金子。

          比如,如果你想要對(duì) SpringBoot2 寫(xiě)的代碼進(jìn)行單元測(cè)試,JUnit 版本你可能已經(jīng)是 5 了。但你搜到的網(wǎng)上文章很可能會(huì)告訴你測(cè)試用例需要注解:

          @RunWith(SpringRunner.class)

          但是官方文檔說(shuō)了,其實(shí)如果你用 JUnit5,就不用加這個(gè)注解了,加了反而可能引起不必要的沖突。

          所以,官方文檔對(duì)新技術(shù)的引入是唯一的參考金標(biāo)準(zhǔn)。

          2. 一定要悄悄地把代碼測(cè)的沒(méi)問(wèn)題了再交付

          在職場(chǎng)上,什么樣的人才能快速成長(zhǎng)、快速得到重用?答案是可靠的人。

          那就程序員來(lái)說(shuō),什么樣的人才算是可靠的人?答案是交付可靠的技術(shù)產(chǎn)品。

          那可靠的產(chǎn)品第一評(píng)估標(biāo)準(zhǔn)就是 bug 少。這個(gè) bug 少是別人評(píng)估的,而不是自己評(píng)估的。

          無(wú)論咱們自己代碼實(shí)現(xiàn)成什么樣子,哪怕是代碼寫(xiě)的還不完美,但是,只要咱們通過(guò)自測(cè),在提交之前盡可能把問(wèn)題解決掉,讓別人少發(fā)現(xiàn)你的錯(cuò)誤,尤其是低級(jí) bug,那么你才是一位可靠的程序員。

          所以,交付任務(wù)前,一定要自己把代碼全方位地測(cè)試一遍,保證自己有著優(yōu)秀的口碑才好。

          3. 打日志的時(shí)候盡可能把輸入、輸出以及耗時(shí)都打印出來(lái)

          我們打日志的目的是什么?是為了定位問(wèn)題的。

          問(wèn)題有哪些?其實(shí)大體就兩種,邏輯問(wèn)題和性能問(wèn)題。

          邏輯問(wèn)題,我們?nèi)绻蛴×溯斎牒洼敵觯敲锤鶕?jù)業(yè)務(wù)規(guī)則,這么一對(duì)照就能很容易定位到問(wèn)題。

          性能問(wèn)題,我們無(wú)論是通過(guò)像 grep、sort 等 shell 命令去直接對(duì)日志做個(gè)過(guò)濾加排序,還是通過(guò)日志搜集加日志搜索等工具,都能很容易的發(fā)現(xiàn)到問(wèn)題。甚至還可以和監(jiān)控系統(tǒng)聯(lián)合起來(lái),直接做預(yù)警。

          所以,打日志的時(shí)候,我們要記得把輸入和輸出以及時(shí)間都打印出來(lái)。

          4. 學(xué)好 Git

          Git 這東西太重要了。現(xiàn)在的團(tuán)隊(duì)開(kāi)發(fā),用 Git 管理各種代碼版本,代碼分支。如果你用不好 Git,很容易就會(huì)因?yàn)楹喜⒋a、升級(jí)版本等情況,產(chǎn)生出許多沒(méi)必要的 bug。

          一個(gè)用不好 Git 的團(tuán)隊(duì),可能每次上線,都會(huì)帶來(lái)那么幾個(gè)莫名其妙的問(wèn)題。

          給大家分享一本非常不錯(cuò)的 Git 開(kāi)源手冊(cè)。

          這本手冊(cè)在豆瓣上評(píng)價(jià)極高,之前 9.3,現(xiàn)在也有 9.1 的高分,其作者是 GitHub 的員工,內(nèi)容主要側(cè)重于各種場(chǎng)合中的慣用法和底層原理的講述,手冊(cè)中還針對(duì)不同的使用場(chǎng)景,設(shè)計(jì)了幾個(gè)合適的版本管理策略。

          簡(jiǎn)而言之,這本手冊(cè)無(wú)論是對(duì)于初學(xué)者還是想進(jìn)一步了解 Git 工作原理的開(kāi)發(fā)者都非常合適。

          5. 優(yōu)先實(shí)現(xiàn)功能,性能問(wèn)題或許沒(méi)那么著急

          我在帶團(tuán)隊(duì)的時(shí)候,經(jīng)常發(fā)現(xiàn)有些剛?cè)胄械耐拢瑫?huì)邊寫(xiě)代碼邊糾結(jié)自己寫(xiě)的代碼性能是否有問(wèn)題。其實(shí)真的不必這樣。像我們這些老程序員,都知道過(guò)早優(yōu)化有時(shí)候可能白花費(fèi)功夫。

          像咱們?nèi)绻麑?xiě)一個(gè)批處理的定時(shí)任務(wù),這個(gè)任務(wù)要求只要在凌晨運(yùn)行,在大家上班前任務(wù)完成就行。那么,這個(gè)任務(wù)從凌晨?jī)牲c(diǎn)運(yùn)行到六點(diǎn)和運(yùn)行到四點(diǎn),有什么區(qū)別嗎?

          優(yōu)化代碼一定要適度,要在寫(xiě)完功能之后,看功能會(huì)怎么被使用,根據(jù)實(shí)際的要求,去優(yōu)化真正需要優(yōu)化的地方。

          6. 先實(shí)現(xiàn)最確定的需求,不確定或者模糊的需求先往后放

          實(shí)現(xiàn)需求的先后順序,注意一定要以需求的可靠程度為準(zhǔn)。

          在分配給我們的需求里一般分兩類:

          • 有的需求是我們和產(chǎn)品經(jīng)理都非常明確的需求;
          • 也有的需求比較模糊:開(kāi)會(huì)討論時(shí)大家都覺(jué)得沒(méi)什么問(wèn)題,但是一到代碼實(shí)現(xiàn)的時(shí)候,就發(fā)現(xiàn)還存在很多問(wèn)題。

          這時(shí)候,咱們應(yīng)對(duì)的技巧是,先對(duì)這些需求搭一個(gè)統(tǒng)一的架子,把已經(jīng)非常明確的需求先開(kāi)發(fā)出來(lái)。

          由于架子搭建出來(lái)了,這時(shí)候再和產(chǎn)品經(jīng)理討論那些模糊的需求,很容易就能讓產(chǎn)品明白困難的地方,這樣就可以把溝通難度降到最低。

          7. 主動(dòng)找項(xiàng)目里的問(wèn)題并給出解決方案

          問(wèn)題是什么?問(wèn)題就是在實(shí)踐過(guò)程中需要解決的東西。

          把這些問(wèn)題一個(gè)個(gè)找出來(lái),解決掉,這些解決問(wèn)題中產(chǎn)生出來(lái)的方案,全會(huì)形成推動(dòng)項(xiàng)目前進(jìn)的推動(dòng)力。那么產(chǎn)生這些推動(dòng)力的你自己,一定會(huì)從中獲益良多。

          8. 評(píng)估開(kāi)發(fā)周期,要留出冗余時(shí)間

          留出冗余時(shí)間的目的很明確,在咱們開(kāi)發(fā)的時(shí)候,遇到的意外情況太多了:

          • 需求又雙叒叕變了
          • 團(tuán)隊(duì)人員有變化
          • 當(dāng)初估算的時(shí)間樂(lè)觀了
          • 這個(gè)功能需要?jiǎng)永洗a
          • 需要跨團(tuán)隊(duì)合作開(kāi)發(fā)
          • 領(lǐng)導(dǎo)說(shuō)“加個(gè)小功能”,領(lǐng)導(dǎo)認(rèn)為這個(gè)小功能不影響開(kāi)發(fā)周期(此處省略二百字)
          • ……

          所以,冗余時(shí)間是要留出來(lái)的。

          留出的冗余時(shí)間不等于摸魚(yú)時(shí)間,開(kāi)發(fā)還是按照正常的節(jié)奏干,早做完早交付。

          9. 不要光看書(shū)去學(xué)習(xí)技術(shù),要把感興趣的技術(shù)通過(guò)代碼實(shí)現(xiàn)出來(lái)

          咱們程序員最重要的就是實(shí)踐,能把學(xué)到的知識(shí)轉(zhuǎn)化為實(shí)踐用到工作上。

          光看書(shū)學(xué)習(xí)技術(shù),很可能只會(huì)讓咱們產(chǎn)生出已經(jīng)學(xué)會(huì)的錯(cuò)覺(jué)。只有通過(guò)代碼把感興趣的技術(shù)實(shí)踐練習(xí)了一遍,咱們才真正能明白這技術(shù)實(shí)際用起來(lái)是什么樣子,需要注意什么。

          動(dòng)手實(shí)踐的重要性就不多說(shuō)了,我之前也寫(xiě)過(guò)一些文章介紹過(guò)如何動(dòng)手實(shí)踐,比如這篇通過(guò)模擬環(huán)境來(lái)學(xué)習(xí)高并發(fā):我招了個(gè)“水貨”程序員

          10. 英語(yǔ)還是挺重要的

          你不得不承認(rèn),IT 這行,基本所有的創(chuàng)新都誕生于英語(yǔ)的世界。

          比如 k8s,就我所知就是國(guó)內(nèi)英語(yǔ)好的技術(shù)人員從英語(yǔ)社區(qū)逐漸在國(guó)內(nèi)推廣開(kāi)來(lái),而這些推廣了 k8s 的先驅(qū)也自然掌握了 k8s 的話語(yǔ)權(quán)。大家可以看看 k8s 在市場(chǎng)上的流行程度,也可以看看一位 k8s 專家的工資大概是多少。

          而且,我前面說(shuō)過(guò),大家引入新技術(shù)一定要看官方文檔,官方文檔百分之八十都是英語(yǔ)的,所以英語(yǔ)確實(shí)重要。

          如果英語(yǔ)不好,是不是就沒(méi)機(jī)會(huì)了?沒(méi)這么絕對(duì)。

          就說(shuō)我吧,不瞞大家,我英語(yǔ)四級(jí)沒(méi)過(guò),但還是照樣能看英語(yǔ)資料,照樣和別人一起翻譯了國(guó)內(nèi)的第一本 Hibernate 技術(shù)書(shū)。

          當(dāng)初我用 Hibernate 在國(guó)內(nèi)算是比較早的一批程序員了,也經(jīng)常去論壇回答問(wèn)題,所以后來(lái)就有人找我一起翻譯書(shū)。我最開(kāi)始是抗拒的,覺(jué)得自己英語(yǔ)太爛了,翻譯不好。后來(lái)我又想,既然我能看著英語(yǔ)文檔學(xué) Hibernate,要不就試試。于是就這么著干了一把。

          作為一個(gè)過(guò)來(lái)人,我想說(shuō)的是,技術(shù)文檔沒(méi)有特別復(fù)雜的語(yǔ)法、生僻單詞,而且現(xiàn)在還有翻譯軟件、插件可以幫我們閱讀。即使英語(yǔ)基礎(chǔ)一般,也沒(méi)什么大不了的。

          -完-

          看完覺(jué)得有收獲,可以點(diǎn)個(gè)在看



          瀏覽 34
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品久久久久久久久久久易记 | 高清无码视频在线免费看 | AV免费在线网站 | 国产三级在线观看 | 天天干天天二 |