職場中的祖傳代碼處理建議

程序員是如何看待“祖傳代碼”的?

祖傳代碼的由來

在實際的程序員工作中,祖傳代碼是常見的。因為真正的互聯網職場生活中,業務變動調整頻繁,每到一個新的業務線,第一件事就是熟悉現有工程代碼,看舊文檔等。而現有工程代碼往往是經歷了不知道多少人的迭代,修改,因此代碼風格,邏輯往往千頭萬緒,甚至讓人忍不住口吐芬芳。

如何正確看待祖傳代碼

但是現狀就是這樣,工作嘛,掙工資而已,既來之則安之,最后代碼還是要落到自己頭上來,畢竟你得在它的基礎上修改不是?因此調整心態也很重要。我們能做的

  1. 首先就是理清業務,明白大致的業務目標、流程;
  2. 整理出一個屬于自己的業務文檔,從而熟悉業務;
  3. 一邊看代碼一邊整理出一個代碼梳理文檔,否則看了也白看,人是會忘的;
  4. 從代碼中抽取有益的部分,總結沉淀為自己的知識,取其精華,向其學習。從這方面來說,祖傳代碼也是“傳家寶”,不是嗎?

如何處理惡心的祖傳代碼

有些祖傳代碼就比較惡心了。所謂惡心有兩種,一種是說它邏輯復雜,耦合業務非常嚴重,難以修改,或者說修改風險很高。另一種是說它代碼有漏洞,有bug。

對于第一種情況,建議最好不要動!!!程序員屆有種真理說法:只要代碼能跑,就不要改一來你不清楚它涉及的業務有哪些,隨便修改,后果未知啊。甚至是你覺得肯定沒問題的修改,到了線上也會出現非常奇葩的意外,物理學都不存在了這種。這種情況很常見,你不要覺得奇怪,除非你是職場新人。二來,修改后如果出了問題,那么你就是第一責任人,等著背鍋吧。這是很嚴重的,職場新人往往會在這方面風險意識不強,吃虧了才明白。因此這里給出這一劑免費的預防針。

對于第二種情況,如果你能看出代碼的bug,那么你敢修復嗎?修復后你敢承擔bug修改后導致新的bug的風險嗎?有點汗流浹背了吧。這種情況,建議是主動向組里拋出來問題,給出自己的方案,供大家討論,至于是否修復,還是要看是否有業務收益。否則,還是那句話,不要修改,不要修改,不要修改!

以上就是個人對職場中祖傳代碼的淺陋觀點,與君共勉吧

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719273.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

K8S中POD的控制器

一、Pod控制器及其功用 Pod控制器,又稱之為工作負載(workload),是用于實現管理pod的中間層,確保pod資源符合預期的狀態,pod的資源出現故障時,會嘗試進行重啟,當根據重啟策略無效&am…

Linux基礎命令[9]-wc

文章目錄 1. wc 命令說明2. wc 命令語法3. wc 命令示例3.1 不加參數3.2 -c(統計字節數)3.3 -m(統計字符數)3.4 -l(統計行數)3.5 -L(最長一行的長度)3.6 -w(統計單詞數&am…

Arcgis實現點位空間位置從上到下從左到右排序

效果 背景 工作項目中經常會遇到需要對網格進行編號,而編號是有一定原則的,比如空間位置從上到下從左到右,或者其它原則,那么都可以通過下面的方式來實現 1、準備數據 點shp文件,查看初始FID字段標注,目…

transformer--transformer模型構建和測試

前面幾節進行了各種組件的學習和編碼,本節將組件組成transformer,并對其進行測試 EncoderDecoder 編碼器解碼器構建 使用EnconderDecoder實現編碼器-解碼器結構 # 使用EncoderDeconder類實現編碼器和解碼器class EncoderDecoder(nn.Module):def __ini…

飛書文檔批量導出

背景需求 最近所參與的項目即將結項,需要將飛書中的產品需求文檔(PRD)交付給甲方,由于文檔較多,大概有兩百多個,一個一個的下載導出,太麻煩了(PS:本人比較懶)…

ROS create_wall_timer/create_timer函數區別

在ROS(Robot Operating System)中,create_wall_timer 和 create_timer 是用于創建定時器的兩個不同的函數,它們在使用上有一些區別: Clock Type: create_wall_timer: 創建的定時器是基于Wall clock的,這意…

軟考筆記--結構化分析方法

結構化分析(SA)方法的基本思想是自定向下,逐層分解,把一個大問題分解成若干個小問題,每一個小問題再分解成若干個更小的問題。經過逐層分解,每個最低層的問題都是足夠簡單、容易解決的。 SA方法分析模型的…

78. 子集(力扣LeetCode)

文章目錄 78. 子集題目描述回溯算法 78. 子集 題目描述 給你一個整數數組 nums ,數組中的元素 互不相同 。返回該數組所有可能的子集(冪集)。 解集 不能 包含重復的子集。你可以按 任意順序 返回解集。 示例 1: 輸入&#xff…

selenium高亮元素

def set_high_light_elment(self, element): """高亮web元素。 Args: element: WebElement:web元素 """ element_styleelement.get_attribute(style) self.mark_dom_text(element_s…

【MySQL】表的約束——空屬性、默認值、列描述、zerofill、主鍵、自增長、唯一鍵、外鍵

文章目錄 MySQL表的約束1. 空屬性2. 默認值3. 列描述4. zerofill5. 主鍵6. 自增長7. 唯一鍵8. 外鍵 MySQL 表的約束 MySQL中的表的約束是一種規則,用于限制或保護表中數據的完整性和合法性。約束可以確保數據在插入、更新或刪除時滿足特定的條件,從而維護…

MySQL相關問題

MySQL相關問題 一、MySQL支持哪些存儲引擎?二、MySQL是如何執行一條SQL的?三、MySQL數據庫InnoDB存儲引擎是如何工作的?四、如果要對數據庫進行優化,該怎么優化?五、MySQL如何定位慢查詢?六、如何分析MySQL…

揭秘App訪問量背后的秘密:數據統計與分析

在移動互聯網時代,App已成為人們日常生活的重要組成部分。對于App運營者來說,了解用戶的訪問量、行為習慣等數據至關重要。本文將深入探討如何精準統計App訪問量,為運營者提供有價值的數據支持。 一、App訪問量統計的重要性 訪問量是衡量A…

計算機專業必看的十部電影

計算機專業必看的十部電影 1. 人工智能2. 黑客帝國3. 盜夢空間4. 社交網絡5. Her6. 模仿游戲7. 斯諾登8. 頭號玩家9. 暗網10. 網絡迷蹤 計算機專業必看的十部電影,就像一場精彩盛宴! 《黑客帝國》讓你穿越虛擬世界,感受高科技的魅力《模仿游戲…

公網IP怎么獲取?

公網IP是網絡中設備的唯一標識符,用于在Internet上進行通信和定位。對于普通用戶來說,了解如何獲取自己的公網IP是很有必要的,本文將介紹幾種獲取公網IP的方法。 方法一:通過路由器查詢 大多數家庭和辦公室使用的路由器都會有一個…

深入解析Mybatis-Plus框架:簡化Java持久層開發(七)

🍀 前言 博客地址: CSDN:https://blog.csdn.net/powerbiubiu 👋 簡介 本章節介紹如何通過Mybatis-Plus刪除數據庫中的數據。 本章節不需要前置準備,繼續使用之前的測試類,數據庫表進行操作。 &#x1f4…

一文詳解mysql 的鎖

MySQL鎖是用于管理數據庫中的并發操作的一種機制,它可以確保數據的一致性和完整性。 按范圍劃分:包括全局鎖、表級鎖、頁級鎖和行級鎖。 按類型劃分:包括間隙鎖、臨鍵鎖和記錄鎖。 按級別劃分:包括共享鎖(S鎖&#xff…

如何在Windows輕量應用服務器上安裝和配置SSH?

如何在Windows輕量應用服務器上安裝和配置SSH? 檢查OpenSSH的可用性:首先,需要以管理員身份打開PowerShell并運行命令Get-WindowsCapability - Online | Where-Object Name - like OpenSSH*來檢查OpenSSH服務是否可用。如果服務未啟動或不可…

day03_Vue_Element

文章目錄 01.Ajax1.1 Ajax 概述1.2 同步異步1.3 原生Ajax 2. Axios2.1 Axios的基本使用2.2 Axios快速入門2.3請求方法的別名2.4 案例 3 前后臺分離開發3.1 前后臺分離開發介紹 04 YAPI4.1 YAPI介紹4.2 接口文檔管理 05 前端工程化5.1 前端工程化介紹5.2 前端工程化入門5.2.1 環…

【Python】變量的引用

🚩 WRITE IN FRONT 🚩 🔎 介紹:"謓澤"正在路上朝著"攻城獅"方向"前進四" 🔎🏅 榮譽:2021|2022年度博客之星物聯網與嵌入式開發TOP5|TOP4、2021|2222年獲評…

2024.3.4 作業

1、流式域套接字 1>tcp服務端實現 #include<myhead.h> int main(int argc, const char *argv[]) {//1、創建套接字int sfd socket(AF_UNIX, SOCK_STREAM, 0);if(sfd -1){perror("socket error");return -1;}//2、判斷套接字文件是否存在&#xff0c;如果…