成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

跟遺留代碼打交道:干掉頑固漏洞的簡單方式

安全
事實證明,跟遺留代碼打交道未必需要花費數天時間去研究晦澀難懂的注釋。要想找到并修復漏洞,開發者可采用簡單的測試工具來對問題抽絲剝繭。

事實證明,跟遺留代碼打交道未必需要花費數天時間去研究晦澀難懂的注釋。要想找到并修復漏洞,開發者可采用簡單的測試工具來對問題抽絲剝繭。

[[119973]]

跟遺留代碼打交道會是比較困難的,尤其是如果代碼是由某位不知道名字的程序員用一種不熟悉的語言編寫的話。但跟據Mob Programming 的R Jason Kerney 和Llewellyn Falco的說法,遺留應用中的bug是可以相對迅速地發現和修補好的,這個過程只需要若干相當直截了當的技巧。

“我通常是沒有機會去理解(遺留)代碼的,所以我必須想出辦法在不理解的情況下繼續工作,”Falco說。

在奧蘭多舉行的Agile2014的一場研討會上,Falco和Kerney展示了他們在不需要過多的研究遺留代碼的情況下尋找和修補漏洞的能力。該研討會的主題是遺留代碼處置,兩位程序員把有效地跟遺留代碼打交道比作切芒果。芒果肉就是重要代碼。其余的則是皮或者核。他們給自己的技術起了個通俗的叫法:“去皮切塊”。

去皮切塊法的原理是縮小焦點直至待檢查的代碼是與特定漏洞直接相關的。Falco解釋了如何從外部開始層層剝離直至重要的代碼。Kerney展示了如何在存疑的代碼中切塊。這樣的話,很容易就可以看到哪里出了問題,知道如何去修復。

用例

他們使用了一個假設的金融應用來進行演示,該應用會在給現有記錄追加信息時時產生多項新記錄。大致是如果“Joe”有3筆獨立的貸款,遺留代碼就會為他生成3條獨立的記錄,每一筆貸款一條。應用應該已經給Joe原來的那條記錄追加了貸款。

討論的遺留應用假設是由捷克的外包軟件團隊編寫的,現在這支團隊已經不復存在,因此沒人可以對代碼做出解釋。在這種設想的情況下,是沒有辦法可以輕松訪問數據庫本身的,因此也沒辦法通過庫去了解。

難以破譯的遺留代碼樣例

唯一知道的變量是代碼執行時預期應該做什么事情,以及代碼的實際執行情況。Falco和Kerney說,僅利用這一點信息,他們就可以確定遺留代碼的問題出在哪里并修復問題。

代碼分離

剝除代碼技術要求把硬代碼和重要代碼分離。基本計劃是把一個復雜的方法分成兩部分。***部分包含的是硬代碼,第二部分包含的是我們希望理解的代碼。然后把重要代碼析取出來作為第二個方法,與其他代碼區隔對待。

一般而言,這會需要對“代碼的推拿”進行一些簡單的重構,讓執行順序變得更加可行。Kerney和Falco強調,這一重構仍然是非常簡單的,足以在無需理解待測遺留應用的遺留代碼庫的情況下就能完成。

逐塊分割

往往會有部分代碼不好打交道,沒辦法像上面那樣進行分離。這些就是Falco-Kerney芒果方法論中的坑。這里就要采取切割術了,即把有問題的組件模擬出來。

Kerney使用了一種叫做EasyMock的工具來把數據庫模擬出來,然后把它從不相干的東西中抽象出來。他指出這與測試驅動開發的模擬過程非常類似。區別只是前者不去檢查新代碼是否通過測試,而是測試現有代碼中那一部分沒有通過測試。

打補丁

通過首先剝除問題范圍以外的代碼,然后將問題范圍內不相干的代碼切除,Falco 和Kerney***得到的幾行代碼可能就是問題所在。由于只需要聚焦于幾行代碼,兩人就可以更好的確定什么地方出了問題。

在本例中,***的結果表明,有兩行代碼寫錯了次序。通常情況下這兩行代碼的次序是沒有影響的。這里出了問題是因為Java語言及其運作方式的錯綜復雜。

Falco和Kerney對簡化后的代碼運行測試時,顯然是***行代碼被調用得太快了。找到正確的順序、修訂漏洞并反敗為勝并沒有花費太多的時間—這一切都不需要理解代碼。

一點告誡

重要的是要注意到這些技術并不能保證新的依賴性錯誤不會發生,如果外部代碼引用了被修改的代碼的話。然而,正如Kerney所指出那樣:“理解代碼并不能確保在其身上不會出現任何連綿不絕的依賴性。”

至于在舊的遺留應用上尋找和修補漏洞,有人會提出說找出遺留代碼的工作方式純屬浪費時間。不花時間學寫代碼的話可能會喪失掉一些(也許是可觀的)學習的機會。然而,如果這種學習如果真的值得開發者花時間的話,他或她可以在漏洞解決之后再去學習代碼。

看看工具

Falco和Kerney利用了面向Java的軟件工具進行演示。他們使用的基礎工具是Eclipse IDE、JUnit測試工具、覆蓋測試用的是EclEmma,模擬對象則使用EasyMock來生成。究竟用什么工具要視具體的項目而言。

后續步驟

Llewellyn Falco針對.Net開發者解釋這些過程的系列視頻可以在YouTube上面找到。

你可能不想將遺留應用遷移到云上,但在云端進行開發和測試仍然有一些好處。

當你把遺留代碼的所有漏洞都補上時別忘了跟蹤新項目的缺陷。

責任編輯:藍雨淚 來源: TechTarget中國
相關推薦

2015-02-11 09:38:19

2024-04-01 10:07:47

應用程序數據數據庫

2010-11-08 11:50:29

求職

2023-07-21 10:28:31

高管技術領導者

2022-09-15 14:51:05

Python機器學習人工智能

2011-02-17 11:19:24

Linux Live

2010-08-23 17:57:43

交換機配置dhcp

2025-04-18 01:00:00

CIO項目經理IT運營

2015-03-05 15:01:52

2019-09-19 14:44:18

LinuxWindows操作系統

2020-11-04 07:13:57

數據工程代碼編程

2023-12-29 11:06:47

OpenAIChatGPT人工智能

2018-09-03 00:04:39

2020-03-09 14:10:48

代碼開發工具

2010-04-07 09:34:43

Firefox漏洞

2021-12-03 07:27:30

全景瀏覽Three.js

2011-09-19 11:39:31

Android手機Touchqode

2010-12-30 10:10:06

NetLinux學習

2009-06-29 15:12:00

JNA

2020-05-15 08:48:06

JavaScript函數性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.日本国产 | 91精品在线播放 | 久久一区二区视频 | 色婷婷综合久久久中字幕精品久久 | 视频一区 国产精品 | 亚洲欧美一区二区三区在线 | av永久| 亚洲视频在线免费观看 | 啪一啪在线视频 | 国产亚洲欧美在线 | 国产中文字幕在线 | 欧美一级片在线看 | 亚洲欧美日本在线 | 免费色网址 | 美女黄色在线观看 | 色成人免费网站 | 亚洲精品久久久一区二区三区 | 国产在线精品一区二区三区 | 午夜视频在线观看视频 | 欧美精品在线免费观看 | 成人国产精品免费观看视频 | 粉嫩高清一区二区三区 | 一区二区精品在线 | 亚洲一区国产精品 | 狠狠操在线 | 欧美三区| 日本一区高清 | 亚洲福利av| 欧美成人一区二区 | 色男人的天堂 | 日本中出视频 | 精品国产乱码久久久久久影片 | 中文精品视频 | 国产精品久久久久无码av | 日日夜夜天天 | 二区在线观看 | 国产小网站 | 日韩国产一区二区三区 | 日韩av在线一区二区 | 国产高清一区二区 | 最近日韩中文字幕 |