文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-748788.html
1.?提出問(wèn)題
1.1.?所有的工程師都應(yīng)該提出問(wèn)題,這是學(xué)習(xí)的一個(gè)重要部分
1.2.?新手工程師會(huì)擔(dān)心打擾隊(duì)友而試圖自己解決所有問(wèn)題,這樣做既慢又沒(méi)有效
1.3.?嘗試自己尋找答案
1.3.1.?即使你的同事知道答案,你也要付出努力,這樣你會(huì)學(xué)到更多
1.3.2.?如果你沒(méi)有找到答案,當(dāng)你尋求幫助時(shí),你的調(diào)查仍然會(huì)成為你的起點(diǎn)
1.3.3.?不要只是在互聯(lián)網(wǎng)上搜索
1.3.3.1.?信息還存在于文檔、內(nèi)部論壇、自述文件(README)、源代碼和錯(cuò)誤跟蹤器中
1.3.3.2.?如果你的問(wèn)題是關(guān)于代碼的,試著把它變成一個(gè)可以演示的單元測(cè)試
1.4.?設(shè)置一個(gè)時(shí)間限制
1.4.1.?限制你研究一個(gè)問(wèn)題時(shí)預(yù)期花費(fèi)的時(shí)間
1.4.2.?在你開(kāi)始研究之前就應(yīng)該設(shè)定好時(shí)間限制,這樣可以鼓勵(lì)你遵守這個(gè)限制,防止收益遞減(研究最終會(huì)拖累生產(chǎn)性)
1.5.?寫(xiě)下全過(guò)程
1.6.?別打擾別人
1.6.1.?其他人也在努力完成工作,他們需要專(zhuān)注
1.6.2.?公司有不同的慣例來(lái)標(biāo)識(shí)“請(qǐng)勿打擾”
1.6.2.1.?耳機(jī)、耳塞或耳罩是通用的標(biāo)識(shí)
1.7.?多用“非打擾式”交流
1.7.1.?組播(multicast)是指將消息發(fā)送到一個(gè)組而不是個(gè)人目標(biāo)
1.7.2.?異步(asynchronous)是指可以稍后處理的消息,而不需要立即響應(yīng)
1.7.3.?即使你需要一個(gè)特定的人來(lái)回答問(wèn)題,也要使用共享論壇
1.7.3.1.?你可以在帖子中提到他們的名字
1.8.?批量處理你的同步請(qǐng)求
1.8.1.?聊天和電子郵件對(duì)簡(jiǎn)單的問(wèn)題很實(shí)用,但復(fù)雜的討論很難異步進(jìn)行
1.8.2.?面對(duì)面的交流是“高帶寬”和“低延遲”的
1.8.2.1.?可以快速地解決很多問(wèn)題
1.8.3.?安排一次會(huì)議,或者使用“辦公室答疑時(shí)間”
1.8.3.1.?寫(xiě)下你的問(wèn)題并保留到會(huì)議上
1.8.3.2.?如果你已經(jīng)沒(méi)有問(wèn)題了,就請(qǐng)取消會(huì)議
1.8.3.3.?如果你發(fā)現(xiàn)自己反復(fù)地取消會(huì)議,就自省一下這種會(huì)議是否還有用
1.8.3.3.1.?如果已經(jīng)沒(méi)用了,就不要再安排
2.?行為準(zhǔn)則
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-748788.html
3.?冒充者綜合征
3.1.?大多數(shù)新手工程師在開(kāi)始工作時(shí)處于“有意識(shí)的無(wú)能力”階段
3.1.1.?有很多東西需要學(xué)習(xí),而其他人似乎早已遙遙領(lǐng)先
3.2.?他們說(shuō)他們只是很幸運(yùn),他們不值得別人認(rèn)可,或者是升職標(biāo)準(zhǔn)太寬松了。這就是冒充者綜合征
3.3.?冒充者綜合征,以及可能隨之并發(fā)的焦慮和抑郁,是一個(gè)復(fù)雜的話(huà)題
3.4.?冒充者綜合征會(huì)自我強(qiáng)化
3.4.1.?每一個(gè)錯(cuò)誤都會(huì)被看作能力匱乏的證明
3.4.2.?每一項(xiàng)成功都是優(yōu)秀“冒充者”冒充的證
3.4.3.?自我懷疑很常見(jiàn)
3.5.?不要忽視贊美和成就
3.5.1.?即使是小事情,也要把它們寫(xiě)下來(lái)
3.6.?獲得反饋也有助于緩解冒充者綜合征
3.7.?治療可能也會(huì)有幫助
3.7.1.?可以利用治療來(lái)獲得你的優(yōu)勢(shì),并克服短期的挑戰(zhàn)
4.?鄧寧-克魯格效應(yīng)
4.1.?鄧寧-克魯格效應(yīng)在新手工程師中并不常見(jiàn)
4.2.?一種認(rèn)知偏見(jiàn),人們認(rèn)為自己比實(shí)際情況更有能力
4.2.1.?與冒充者綜合征相反
4.3.?他們太自信了
4.4.?他們總是到處批判公司的技術(shù)棧,抱怨代碼的質(zhì)量,貶低設(shè)計(jì)
4.5.?他們確信自己的想法是正確的
4.6.?他們的默認(rèn)模式是直接回絕或無(wú)視反饋
4.7.?完全自信標(biāo)志著盲點(diǎn)
4.8.?應(yīng)對(duì)
4.8.1.?有意識(shí)地培養(yǎng)好奇心
4.8.2.?對(duì)犯錯(cuò)持開(kāi)放態(tài)度
4.8.3.?找到一位受人尊敬的工程師,詢(xún)問(wèn)他你做得怎么樣,并真正地傾聽(tīng)
4.8.4.?討論設(shè)計(jì)決策,尤其是那些你不同意的決策,問(wèn)問(wèn)為什么會(huì)做出這樣的決策
4.8.5.?培養(yǎng)一種權(quán)衡利弊的心態(tài),而不是非黑即白的心態(tài)
5.?代碼庫(kù)
5.1.?代碼庫(kù)就像阿爾勒的那個(gè)圓形劇場(chǎng)一樣
5.2.?一代人寫(xiě)了幾層,然后又改了改
5.3.?很多人都接觸過(guò)這些代碼
5.4.?測(cè)試缺失或強(qiáng)制執(zhí)行已經(jīng)過(guò)時(shí)的設(shè)定,不斷變化的需求扭曲了代碼的使用
6.?軟件的熵
6.1.?走向無(wú)序的趨勢(shì)被稱(chēng)為軟件的熵(software entropy)
6.2.?當(dāng)你瀏覽代碼時(shí),你就會(huì)注意到它的缺點(diǎn)
6.3.?混亂的代碼是變化的自然副作用
6.3.1.?不要把代碼的不整潔歸咎于開(kāi)發(fā)者
6.4.?很多事情都會(huì)導(dǎo)致軟件的熵
6.4.1.?開(kāi)發(fā)者誤解了其他人的代碼或風(fēng)格上的差異
6.4.2.?不斷進(jìn)步的技術(shù)棧
6.4.3.?不斷發(fā)展的產(chǎn)品需求
6.4.4.?bug修復(fù)和性能優(yōu)化帶來(lái)的復(fù)雜性
6.5.?軟件的熵可以被管理
6.5.1.?代碼風(fēng)格和bug檢測(cè)工具有助于保持代碼的整潔
6.5.2.?代碼評(píng)審有助于傳播知識(shí)和減少不一致
6.5.3.?持續(xù)的重構(gòu)可以減少熵
7.?技術(shù)債
7.1.?technical debt
7.2.?技術(shù)債(technical debt)是造成軟件的熵的一個(gè)主要原因
7.3.?技術(shù)債是為了修復(fù)現(xiàn)有的代碼不足而欠下的未來(lái)工作
7.4.?技術(shù)債總是不可避免的
7.4.1.?因?yàn)槟銦o(wú)法防止無(wú)意中的錯(cuò)誤
7.5.?技術(shù)債甚至可能是成功的標(biāo)志
7.5.1.?項(xiàng)目只有存活了足夠長(zhǎng)的時(shí)間,才會(huì)變得無(wú)序
7.6.?技術(shù)債也有“本金”和“利息”
7.6.1.?本金是那些需要修復(fù)的原始不足
7.6.2.?利息是隨著代碼的發(fā)展沒(méi)有解決的潛在不足,因?yàn)閷?shí)施了越來(lái)越復(fù)雜的變通方法
7.6.3.?隨著變通辦法的復(fù)制和鞏固,利息就會(huì)增加
7.7.?復(fù)雜性蔓延開(kāi)來(lái),就會(huì)造成bug
7.7.1.?未支付的技術(shù)債很常見(jiàn),遺留代碼里有很多這樣的債務(wù)
7.8.?你不同意的技術(shù)決策并不是技術(shù)債,你不喜歡的代碼也不是
7.9.?謹(jǐn)慎的、有意的技術(shù)債是技術(shù)債的典型形式
7.9.1.?在代碼的已知不足和交付速度之間進(jìn)行務(wù)實(shí)的取舍
7.9.2.?只要團(tuán)隊(duì)有規(guī)劃地解決這個(gè)問(wèn)題,這就是好的債務(wù)
7.10.?魯莽的、有意的技術(shù)債是在團(tuán)隊(duì)面臨交付壓力的情況下產(chǎn)生的
7.10.1.?出現(xiàn)“……就……”或“只是”這種詞就是在暗示討論中的內(nèi)容是魯莽的債務(wù)
7.11.?魯莽的、無(wú)意的技術(shù)債來(lái)自“不知道自己不知道”
7.11.1.?可以通過(guò)事前寫(xiě)下實(shí)施計(jì)劃并獲得反饋的方式,以及進(jìn)行代碼評(píng)審的方式來(lái)減輕這種債務(wù)的危險(xiǎn)
7.11.2.?持續(xù)學(xué)習(xí)也可以最大限度地減少這種無(wú)意的魯莽行為
7.12.?謹(jǐn)慎的、無(wú)意的技術(shù)債(是成長(zhǎng)經(jīng)驗(yàn)積累的自然結(jié)果
7.12.1.?有些教訓(xùn)只有在事后才會(huì)被吸取
7.12.2.?與謹(jǐn)慎的、有意的技術(shù)債不同,團(tuán)隊(duì)不會(huì)知道自己正在承擔(dān)債務(wù)
7.12.3.?與魯莽的、無(wú)意的技術(shù)債不同,這種類(lèi)型的債務(wù)更像是在出問(wèn)題的領(lǐng)域反思學(xué)習(xí)或作為軟件架構(gòu)師成長(zhǎng)的必經(jīng)之路
7.12.3.1.?不是未做功課這么簡(jiǎn)單
7.12.4.?健康的團(tuán)隊(duì)使用諸如項(xiàng)目回顧等做法來(lái)發(fā)現(xiàn)無(wú)心之債,并討論何時(shí)以及是否償還
7.13.?在短期內(nèi),償還技術(shù)債會(huì)拖慢交付特性的速度,而承擔(dān)更多的技術(shù)債會(huì)加速交付
7.14.?長(zhǎng)期來(lái)看,情況正好相反:償還技術(shù)債會(huì)加快交付的速度,而承擔(dān)更多的債務(wù)則會(huì)減緩交付
到了這里,關(guān)于讀程序員的README筆記02_軟件的熵與技術(shù)債的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!