MM131美女爱做视频在线看_性强烈的欧美三级视频_男女性潮高清免费网站_日日摸日日碰夜夜爽歪歪

IT培訓(xùn)-高端面授IT培訓(xùn)機(jī)構(gòu)
云和教育:云和數(shù)據(jù)集團(tuán)高端IT職業(yè)教育品牌
  • 國(guó)家級(jí)
    全民數(shù)字素養(yǎng)與技能培訓(xùn)基地
  • 河南省
    第一批產(chǎn)教融合型企業(yè)建設(shè)培育單位
  • 鄭州市
    數(shù)字技能人才(碼農(nóng))培養(yǎng)評(píng)價(jià)聯(lián)盟

出來(lái)混總是要還的@程序員,你的技術(shù)負(fù)債還了嗎?

  • 發(fā)布時(shí)間:
    2019-09-02
  • 版權(quán)所有:
    云和教育
  • 分享:

在軟件工程領(lǐng)域中,“技術(shù)債務(wù)“是一個(gè)貶義詞。人們?cè)谑褂眠@個(gè)詞的時(shí)候常常表達(dá)出某種遺憾,過(guò)去犯下的錯(cuò)誤,最終需要通過(guò)重構(gòu)來(lái)彌補(bǔ)。

什么是技術(shù)負(fù)債?

配圖1 程序員你的技術(shù)負(fù)債還了嗎.jpg

技術(shù)負(fù)債(英語(yǔ):Technical debt),又譯技術(shù)債,也稱(chēng)為設(shè)計(jì)負(fù)債(design debt)、代碼負(fù)債(code debt),是編程及軟件工程中的一個(gè)比喻。指開(kāi)發(fā)人員為了加速軟件開(kāi)發(fā),在應(yīng)該采用最佳方案時(shí)進(jìn)行了妥協(xié),改用了短期內(nèi)能加速軟件開(kāi)發(fā)的方案,從而在未來(lái)給自己帶來(lái)的額外開(kāi)發(fā)負(fù)擔(dān)。這種技術(shù)上的選擇,就像一筆債務(wù)一樣,雖然眼前看起來(lái)可以得到好處,但必須在未來(lái)償還。

技術(shù)債務(wù)的產(chǎn)生有著很多原因,但其中更多的是由于要在短時(shí)間內(nèi)匆忙完成原本耗時(shí)較長(zhǎng)的工作,導(dǎo)致部分業(yè)務(wù)邏輯沒(méi)有完整的設(shè)計(jì)等,使得產(chǎn)品在短時(shí)間內(nèi)有效,但是長(zhǎng)遠(yuǎn)來(lái)看,卻是一顆不穩(wěn)定的炸彈,一旦觸發(fā),對(duì)產(chǎn)品、對(duì)企業(yè)都有可能造成無(wú)法挽回的損失。

配圖2 程序員你的技術(shù)負(fù)債還了嗎.jpg

總而言之,技術(shù)債務(wù)會(huì)帶來(lái)很多麻煩,有些甚至是“致命”的。

那么身為技術(shù)開(kāi)發(fā)者,該如何償還技術(shù)負(fù)債?

如何償還技術(shù)負(fù)債?

技術(shù)債務(wù)分為有意的技術(shù)債務(wù)和無(wú)意的技術(shù)債務(wù),兩種形式的技術(shù)債務(wù)形成的原因和帶來(lái)的結(jié)果是不同的,解決方法也不同。

無(wú)意的

由于經(jīng)驗(yàn)的缺乏導(dǎo)致初級(jí)開(kāi)發(fā)者編寫(xiě)了質(zhì)量低劣的代碼。

解決方案

技術(shù)培訓(xùn)

配圖3 程序員你的技術(shù)負(fù)債還了嗎.jpg

畢竟大部分的程序員學(xué)習(xí)能力還是很強(qiáng)的,部門(mén)牛人的培訓(xùn)還是很有必要的,也是學(xué)習(xí)的重要途徑之一。

從最開(kāi)始的代碼規(guī)范、到熟悉業(yè)務(wù)、最后再到編寫(xiě)文檔。

2.CodeReview

CodeReview 是非常重要的,同時(shí)也是對(duì)自身的一個(gè)提高。

在這個(gè)階段不同工程師之間可以相互review,審查別人的代碼能夠發(fā)現(xiàn)很多問(wèn)題,同時(shí)也能學(xué)到很多知識(shí)。

有意的

團(tuán)隊(duì)根據(jù)當(dāng)前而非未來(lái)進(jìn)行設(shè)計(jì)選型,這種方式可能很快就能解決當(dāng)前的問(wèn)題,但卻很拙劣。

這就情況很可能是為了圖省事才這樣干的。也有可能是工期太短,人員太少,技術(shù)問(wèn)題等等。

解決方案

1.系統(tǒng)設(shè)計(jì)的框架是對(duì)的

必須能夠有效處理當(dāng)前需求可預(yù)見(jiàn)的情況,對(duì)于未知的、可能出現(xiàn)的特殊情況,很小的改動(dòng)就能解決問(wèn)題。

配圖4 程序員你的技術(shù)負(fù)債還了嗎.jpg

根據(jù)當(dāng)前的業(yè)務(wù),進(jìn)行合理的創(chuàng)建數(shù)據(jù)表,盡量的代碼解耦和。必須有日志模塊,操作日志,錯(cuò)誤日志,業(yè)務(wù)日志等等…

2.所有的工程師有主人翁的意識(shí)

開(kāi)發(fā)前,針對(duì)產(chǎn)品提出的需求,進(jìn)行要進(jìn)行細(xì)節(jié)確認(rèn),自己也可以畫(huà)一個(gè)程序的流程圖。

開(kāi)發(fā)時(shí),首先把流程全部順下來(lái),其中遇到調(diào)用其他接口、技術(shù)難點(diǎn)、需求模糊,及時(shí)確認(rèn)或記錄 TODO 標(biāo)簽。

配圖5 程序員你的技術(shù)負(fù)債還了嗎.jpg

開(kāi)發(fā)后,及時(shí)對(duì)自己的流程進(jìn)行確認(rèn),查看代碼中是否有未解決的地方。

每個(gè)公司都有自己任務(wù)管理系統(tǒng),例如JIRA之類(lèi)的,提測(cè)后,時(shí)時(shí)關(guān)注自己的BUG。

如果與產(chǎn)品有分歧的地方一定要及時(shí)溝通,達(dá)成共識(shí)。

配圖6 程序員你的技術(shù)負(fù)債還了嗎.jpg

3.一定要有健全的測(cè)試環(huán)境、預(yù)發(fā)布環(huán)境、正式環(huán)境

因?yàn)橛行┏绦蚩赡苄枰M(jìn)行壓力測(cè)試,所以服務(wù)器的配置還是很關(guān)鍵的。

多個(gè)環(huán)境的測(cè)試,更能保證程序的健壯性。

4.定期處理一些技術(shù)債務(wù)

等產(chǎn)品上線(xiàn)后,開(kāi)發(fā)就沒(méi)有那么緊啦,這個(gè)時(shí)間大家可以找個(gè)時(shí)間處理技術(shù)債務(wù),一邊建立感情,一邊品味一下原來(lái)的代碼,是不是酸爽無(wú)比。

5.善于發(fā)現(xiàn)系統(tǒng)的技術(shù)債務(wù)

配圖7 程序員你的技術(shù)負(fù)債還了嗎.jpg

勇于發(fā)現(xiàn)系統(tǒng)中的技術(shù)債務(wù),當(dāng)然不是為了所謂的獎(jiǎng)勵(lì),僅僅是為了自己的提高,讓自己為系統(tǒng)負(fù)責(zé),而不是事不關(guān)己高高掛起。

當(dāng)然,最重要的其實(shí)是把技術(shù)債務(wù)的重要性提到一個(gè)被認(rèn)可的位置上。

工程師如果能遇見(jiàn)一個(gè)債務(wù)可能導(dǎo)致的問(wèn)題,自然愿意花時(shí)間去處理。

總結(jié)

配圖8 程序員你的技術(shù)負(fù)債還了嗎.jpg

技術(shù)債務(wù)是伴隨著項(xiàng)目出現(xiàn)而且無(wú)法避免,但是如何保持其在可控范圍之內(nèi),是我們應(yīng)該思考的問(wèn)題。技術(shù)債務(wù)的避免和消除都需要優(yōu)秀的開(kāi)發(fā)人員,人始終是軟件開(kāi)發(fā)中最重要的因素。作為一名普通的碼農(nóng),不斷地提升自己是非常必要的。