中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

技術(shù)債務(wù)是一種自然現(xiàn)象,看到它的出現(xiàn)可能表明人們正在發(fā)現(xiàn)您的軟件有用

發(fā)布于:2021-01-12 13:39:08

0

77

0

技術(shù)債務(wù) devops

每個工程經(jīng)理和CTO都會想到技術(shù)債務(wù)。通過快速而骯臟的方式從未來“借”時間可能會在以后引起巨大的問題。我們采訪了Liran Haimovitch,討論了什么是技術(shù)債務(wù),如何將其與傳統(tǒng)代碼區(qū)分開來等等。

JAXenter:“技術(shù)債務(wù)是一個浪漫的隱喻,用來掩蓋開發(fā)人員的愚蠢行為。” 您是否同意這個想法?

Liran Haimovitch:我的想法是這樣的:技術(shù)債務(wù)是真實的事情,并且可能由錯誤的設(shè)計決策或匆忙的開發(fā)引起。真正的技術(shù)債務(wù)是我們應(yīng)該設(shè)法減少的東西。但是,我們所謂的技術(shù)債務(wù)很多根本不是技術(shù)債務(wù)。這只是我們開發(fā)人員不了解的東西。

問題在于,當開發(fā)人員或團隊不想做某事或不知道如何使用現(xiàn)有的舊代碼執(zhí)行操作時,“技術(shù)債務(wù)”已成為最終的借口。遺留代碼與技術(shù)債務(wù)不同。傳統(tǒng)代碼可以快速,穩(wěn)定且安靜地運行數(shù)年,即使編寫它的開發(fā)人員已經(jīng)離開很久了。好的代碼并不會因為沒有人理解而成為真正的技術(shù)債務(wù)。隨著軟件組織的成熟,他們不僅需要應(yīng)對真實的技術(shù)債務(wù),而且還需要保持對代碼的理解,以避免這種虛假的技術(shù)債務(wù)。

JAXenter:為什么技術(shù)債務(wù)對DevOps如此重要?

Liran Haimovitch: DevOps最終將致力于以快速且可持續(xù)的速度提供高質(zhì)量的軟件。承擔技術(shù)債務(wù)有點像借貸:從未來的自我中借錢可以幫助您更快地交付軟件,但它并不總是可持續(xù)的。如果您借入的貸款利率過高而又沒有迅速償還債務(wù),則還款可能會失控。

但是,將一段復雜的代碼稱為“技術(shù)債務(wù)”有時可以成為避免理解他人工作的借口。一些開發(fā)人員寧愿花時間和精力來重建從頭開始起作用的東西,以“消除技術(shù)債務(wù)”,而不是學習現(xiàn)有代碼的工作原理。

這可能是一個問題,尤其是在公司中,開發(fā)人員的績效是根據(jù)他們編寫的新代碼的多少來衡量的。對舊的現(xiàn)有代碼進行試驗很難衡量或向管理人員證明。由研發(fā)負責人證明,理解現(xiàn)有代碼庫具有價值,而替換現(xiàn)有代碼庫并非總是正確的選擇。

賈克森特(JAXenter): 有人爭論說技術(shù)債務(wù)也可以幫助項目。您對此有何看法?

Liran Haimovitch:科技債務(wù)本身并沒有幫助,但它的存在可以證明您做對了事。

技術(shù)債務(wù)是一種自然現(xiàn)象,看到它的出現(xiàn)可能表明人們正在發(fā)現(xiàn)您的軟件有用。畢竟,如果不使用某些東西,那就沒有任何債務(wù)了。僅當您要添加功能或改進功能時,技術(shù)債務(wù)才變得重要。

假冒技術(shù)債務(wù)也是產(chǎn)品和公司日趨成熟的積極信號。隨著功能性代碼進入第二個十年,我們不應(yīng)該感到驚訝,原始的開發(fā)者已經(jīng)走了很長時間,而當前的一代卻很難理解古代人的智慧。同樣,這應(yīng)該與真正的技術(shù)債務(wù)區(qū)分開

賈克森特(JAXenter): 您有什么要做的事情要分享?如何補救技術(shù)債務(wù)問題或?qū)⑵溆糜谖覀兊睦妫?/span>

麗蘭·海莫維奇(Liran Haimovitch):首先,學會區(qū)分真正的技術(shù)債務(wù)和您根本不了解的東西。如果項目使用的框架已過時,隨著時間的推移變得越來越難以維護,或者項目速度緩慢或占用大量內(nèi)存,那么這些都是您正在處理實際技術(shù)債務(wù)的一些線索。通常,這些系統(tǒng)需要持續(xù)的維護和TLC,因此開發(fā)人員實際上非常了解它們。

另一方面,如果一段代碼悄悄有效地完成了工作,那么它*可能*不是技術(shù)債務(wù)。也許沒人知道它是如何工作的,因為距它需要任何修復已經(jīng)有十年了!當您確實需要進行更改時,可能會更難,但這不是原始開發(fā)人員的錯。補救這種虛假的技術(shù)債務(wù)的關(guān)鍵是讓開發(fā)人員了解代碼的工作原理。

理想情況下,這可以通過良好的內(nèi)部文檔來實現(xiàn),但實際上,內(nèi)部文檔通常很差或得不到維護–有時稱為“文檔債務(wù)”,這本身就是一個問題。

可觀察性對于學習代碼的工作方式至關(guān)重要。APM工具(如Datadog或AppDynamics)和異常管理器(如Sentry)有助于提供良好的概述?;鹧鎴D可以提供視覺幫助,跟蹤解決方案可以幫助顯示應(yīng)用程序流程。

另一個選擇是調(diào)試。我們的一位開發(fā)人員喜歡通過添加大量斷點來查看遺留代碼,并查看擊中了哪些分支,直到他了解所有分支的工作方式為止。Rookout的不間斷斷點使您可以在代碼運行時進行實驗,而不會增加任何開銷,從而使其成為進行此類探索的好工具。

一些真正的技術(shù)債務(wù)是不可避免的。您可以通過制定良好的設(shè)計決策來將其最小化,但是隨著代碼的老化,即使是最好的決策也可能會變成需要替換的負擔。牢記持續(xù)的維護和未來的需求可以幫助您掌握技術(shù)問題,但您永遠無法真正知道軟件的未來。

遇到看似技術(shù)債務(wù)的問題時,請問“如果我理解代碼,我還會感到嗎?” 如果答案是“否”,那不是技術(shù)債務(wù);而是 這是知識的不足,也是學習的機會。