如何閱讀修改別人的代碼?
如何閱讀別人的代碼?
讀代碼的時間總是比寫代碼的時間更長
維護升級老代碼或者同事突然離職交接,
讀代碼是必不可少的過程。
不誇張的說,可能沒有人覺的讀代碼比寫代碼輕松。
但這又是工作中不得不面對的場景。
- 如果已有代碼可以運行,那便跑起來看看
- 看看需求,知道這段代碼幹了什麽事情,如果能夠理解業務就更好了
- 看看數據庫表結構。結合需求
- 一定會有數據,運行時候的數據對比數據庫的數據更容易理解邏輯
- 看看已有的設計文檔、更業務邏輯對應
- 根據功能分類一個一個的讀代碼吧
如何在已有基礎上進行再次開發?
再次開發一定是在閱讀理解已有代碼的基礎上進行的。
如果是增加新功能,並且已有代碼的擴展性良好的的話,可以說是件很幸運的事了。
- 首先看看單元測試,在了解功能和數據的情況下,判斷單元測試是否能跑過,嘗試跑通已有的單元測試。
- 熟悉現有的代碼結構,在其基礎上對將要擴展的功能進行設計,考慮未來的擴展。
- 如果有不好的預感,越早重構越能降低未來的成本。
- 保證原有單元測試正常運行。寫代碼
如何閱讀修改別人的代碼?
相關推薦
如何閱讀修改別人的代碼?
數據對比 分類 正常 功能 邏輯 同事 幸運 沒有 代碼結構 如何閱讀別人的代碼? 讀代碼的時間總是比寫代碼的時間更長 維護升級老代碼或者同事突然離職交接, 讀代碼是必不可少的過程。 不誇張的說,可能沒有人覺的讀代碼比寫代碼輕松。 但這又是工作中不得不面對的場景。 如果已
不要濫用面向對象,寫出難以閱讀和修改的代碼
設計 關系 例如 幹什麽 獨立 bsp 成員 沒有 鼓勵 筆者參與過一些完全以面向對象為設計思想的項目,不過感覺都不太好,例如,它們往往有非常之多的硬編碼和隱藏的邏輯,導致小小的修改往往會出現意外的問題;因為對象調用跳轉太多,代碼也很難閱讀和修改,調用關系很難理解。
拿什麽心情來閱讀我的代碼(程序員的必備心理技能)
概念 術語 挖掘 偏好設置 而在 set 以及 理解 集中 原文首發於我的微信公眾號:GeekArtT . 閱讀源代碼的開始階段,最好從感興趣、自己有直觀感受且有相對豐富準確的文檔的項目開始。如同最開始閱讀數學證明,最好從淺顯易懂的教材開始,之後再開始最前沿的pape
解決eclipse修改後臺代碼ctrl+s總是【自動重啟服務器】問題
action ctrl+s mage deb ima nbsp 修改 debug lips 每次修改後臺代碼保存總是自啟動服務很是耗時,以下設置可以解決你的煩惱: 雙擊你要設置的項目; 點擊ok,最後ctrl+s一下就搞定了。 這時候你隨便修改後臺代碼隨便ctrl+s
閱讀sqlmap源代碼,編寫burpsuite插件--sqlmapapi
burpsuite burpsuite插件 sqlmapapi burpsuite插件編寫---sql injection 0x00 概要 在安全測試過程中,大部分人會使用burpsuite的scanner模塊進行測試,可以發現一些淺顯的漏洞:比如xss、sql injection、c***f、x
閱讀sqlmap源代碼,編寫burpsuite插件--sqlmapapi(二)
模塊 ini IT pos back evel data active target burpsuite插件編寫---sql injection 0x00 概要 在安全測試過程中,大部分人會使用burpsuite的scanner模塊進行測試,可以發現一些淺顯的漏洞:比如xs
開啟被獨佔的檔案方法(二) -- 修改控制代碼訪問許可權
修改控制代碼訪問許可權 所有被佔用的檔案通常都可以用讀屬性(FILE_READ_ATTRIBUTES)開啟,這樣就可以讀取檔案的屬性,取得它的大小,列舉NTSF stream,但遺憾的是,ReadFile就不能成功呼叫了。開啟檔案時各種訪問屬性的區別在哪裡呢?顯然,開啟檔案時,系統會記錄訪問屬性,之後會
忘了pull,直接修改並且commit的問題--github上傳內容前先檢查別人有沒有推送新代碼的解決方法
本地 最新 修改 完成 開始 找到 hub 沖突 span 早上來公司之後,忘了pull下最新的代碼,就直接開始在本地做更改了,而且還給commit上去了,結果推不上去,然後看見“pull”那裏顯示了有內容沒有pull下來,這下可糟了,當場就蒙圈了,不知道咋辦,幸好有學長助
《代碼閱讀》讀書筆記(一)
需求 的人 一行 編碼 重要 流動 使用 分析 缺少 《代碼閱讀》讀書筆記(一) 《代碼閱讀》(《Code Reading The Open Source Perspective》)Diomidis Spinellis 著 ---------------------
淘寶數據庫OceanBase SQL編譯器部分 源代碼閱讀--解析SQL語法樹
git itemtype 工具 銷毀 cin bsp 年輕 you any OceanBase是阿裏巴巴集團自主研發的可擴展的關系型數據庫,實現了跨行跨表的事務,支持數千億條記錄、數百TB數據上的SQL操作。在阿裏巴巴集團下,OceanBase數據庫支持了多個重
動軟代碼生成器生成實體時,修改模板簡化實體的封裝
rem table rip return tex info ber 如果 ret 首先點擊代碼模板右鍵新建一個模板 <#@ template language="c#" HostSpecific="True" #> <#@ output exten
git fork代碼並修改胡提交到自己的git倉庫
添加 detail 成功 開發 嘗試 fetch .com mes -m 最近在參加阿裏天池大數據中間件比賽(毫無頭緒,打醬油中).看參賽要求,需要將官網的git工程clone下來,在此基礎上做修改後提交到自己的倉庫中. 由於以前並沒有使用過git,所以差了比較多的資料
3D Slicer Programmatically Set Slice Offset and Intersections 用代碼修改Slicer中的切片偏移和交叉點顯示
cnblogs 們的 int mod call eof col all mha 在3D Slicer中,當我們導入.mha/.mhd等格式的volume文件後,那麽我們就可以在Axial, Sagittal, Coronal三個方向來觀察我們的MRI或者CT的圖像了。
CI框架源代碼閱讀筆記6 擴展鉤子 Hook.php
cti enable blog have 子列 rmi 是否 lap tool CI框架同意你在不改動系統核心代碼的基礎上加入或者更改系統的核心功能(如重寫緩存、輸出等)。比如,在系統開啟hook的條件下(config.php中$config[‘enable_hooks
u-boot移植(四)---代碼修改---時鐘修改、SDRAM
port write 啟動 tro nor ble 大小 pro 正常 最開始已經建立了新單板以及配置文件,現在就需要做的是代碼的修改,配置成適合目標板使用的u-boot。 一、時鐘修改 在代碼流程分析中,我們知道,系統的啟動是: 設置 CPU 為管理員模式 關閉
看到別人寫的代碼,我該從何入手
感想 如今社會代碼橫行的年代,到處都是代碼,看到代碼自己一臉懵逼,該怎末辦,從頭再學,還是保持原態。社會已經被代碼侵占,沒有代碼,社會將不知何去何從。 比如:mySQL:是用於管理文件的一個軟件 - 服務端軟件 - socket服務端 - 本地文件操作
怎樣閱讀公司的項目代碼
內容 嘗試 client 領域 小夥伴 自動 哈哈 處理 lin 看到ITFriend中有些小夥伴剛進入公司,面對大量的項目代碼,往往手足無措,有點慌,我說下我的經歷。 聲明:我從事的是C++開發工作。閱讀的代碼都是基於client/server的,下面談的是C++項
u-boot移植(七)---代碼修改---存儲控制器
relative onf 修改 param nan 內存 literal def 定義 一、CPU訪問芯片的條件 CPU通過訪問存儲控制器,來讀取外部設備的數據。 CPU想訪問一個芯片,需要如下條件(配置信息): 地址線 數據線:8位/16位/32位數據
淘寶數據庫OceanBase SQL編譯器部分 源代碼閱讀--生成邏輯計劃
多重 做了 return int32 ack sun 數據庫系統 unary left 淘寶數據庫OceanBase SQL編譯器部分 源代碼閱讀--生成邏輯計劃 SQL編譯解析三部曲分為:構建語法樹。生成邏輯計劃。指定物理運行計劃。第一步驟,在我的上一篇博客淘
ios xib和代碼的frame布局 iOSXib布局後代碼修改約束的值
top word color 產生 view tar cnblogs fill lai 如何修改autolayout 約束的值? 1 2 3 4 5 6 目前我已知的方法有5種 1.修改frame(有時候可能會不起作用,但可以做動畫) 2.修改約束的flo