“山”程式碼不一定以“山”開頭,它背後可能總有乙個故事!

Mondo 社會 更新 2024-02-01

所謂“山”**一開始不一定是“山”,只要你是程式設計師,基本都很難避免寫成“山”**在變成“山”之前可能很優雅**,其實是有乙個過程成為“山”**的。 尤其是那些接觸過“山”**的程式設計師,如果感到憤慨,你有沒有想過,自己可能是下乙個“山”**的創造者? 當你忍不住想跑的時候,想想你第一次接觸“山”**時的心態,或許你會對“山”**有一定的了解!

我曾經在一家ERP軟體公司工作,該公司已經迭代到2根據研發總監的說法,版本 0 是需要迭代到 2 的原因版本 0,那是因為 1框架的版本 0 太“”了!

這家公司的老闆曾經是國內一家知名ERP軟體公司的研發經理,後來和幾個朋友出去獨自創辦了這家公司。 老闆和這幾個朋友的能力不錯,對於10版ERP軟體開發非常用心,開發完成得非常快。

因為當時國內ERP軟體公司相對較少,他們開發的ERP軟體一推出就得到了客戶的認可。 ERP軟體基本上是按月或按年支付的,但僅靠月費或年費肯定不足以支援公司的生存。 因此,老闆故意採用低月費和低年費來增加產品競爭力,而盈利的主要方式就是依靠個性化需求的發展! 當然,基於個性化需求發展利潤的決定並不是一開始就做出的,所以也為後面的“山”埋下了伏筆。

實際上,一開始我正在寫 1使用0版本的軟體時,幾位研發人員對軟體設計還是很有想法的,畢竟是出自大廠。 但是,當使用者數量增加時,仍然會有很多需求不在他們的考慮範圍內。 可以做些什麼來滿足這群人的需求? 只能寫底部**或加槽! 但是,這與外掛程式開發不同,外掛程式開發是以在框架的基礎上預留介面為前提的,他們遇到的基本上是直接修改原始碼的問題。

因此,在公司經營幾年後,原來的**框架“漏洞百出”,根本看不出來! 所以,老闆準備重構 1版本 0,開發 20 個版本的軟體創意,並給出 2 個版本版本 0 足以實現開發後的靈活性。 然而,儘管經過深思熟慮,2軟體的版本 0 仍然滿足和 1軟體版本 0 也有同樣的問題! 這是無法避免的!

這只是乙個小例子,那麼,“山”**是怎麼來的呢? 上面給出的例子有點太大了,所以讓我們舉幾個小例子。

例如,如果某個段落中有乙個 if 語句,在程式的開頭,這個 if 語句假設有必要確定乙個數字是否為 0,很多人可能只是寫 if(num == 0) 就完成了。 但是,如果突然有一天,這個數字不僅會變成0,還會變成......可能大多數程式設計師只會在它變成 1 時,甚至在它變成 1 時新增 else if(num == 1)。

在這一點上,這個 if 語句足以將其重構為乙個 switch-case,但大多數程式設計師此時不敢移動這個 ** 結構,因為它很可能會引起問題。

為了讓這個**保持無差錯狀態,很多程式設計師可能知道多寫else-if只會把這個**推上“山”,但是他們不得不這樣寫! 在大多數情況下,“山”就是這樣產生的!

例如,我負責乙個專案,因為客戶是工廠,所以每個車間軟體的主操作介面是一樣的,子操作介面是不同的。 因此,我在設計軟體時,主操作介面基本固定,子操作介面可以根據不同情況靈活配置。

在我發出軟體設計後,相關人員稱讚我“周到”“完美”,但實際情況如何?

有一天,車間A的主管說他想在主介面上加乙個功能,我告訴他可以加這個,但是要問其他車間的主管要不要這個東西,其他車間的主管說不想要, 這讓我很尷尬。

後來,在與客戶方的研發人員討論後,給出的解決方案是根據車間型別對主介面進行特殊判斷,用於功能按鈕的顯示和隱藏。 雖然很不情願,但是有老闆,他要掙這個錢,有客戶,他要有這個功能,我只是乙個普通的研發,我只能努力寫**!

不過,這件事情還沒結束,我滿足了車間A主管的要求,但是在接下來的時間裡,每個車間的主管都向我提出了新的要求,最後在主介面上出現了大量的硬**。

不是這個東西不能重構,而是一旦重構了,軟體客戶就已經在用了,如果重構出了問題,這個責任誰也承擔不起,那就動手吧!

有趣的是,我們公司乙個年輕的程式設計師接手我的**時,因為不知道這個**是我開發的,直接告訴我這是“山”!

所以,《山》**和很多東西一樣,一開始可能很周到、很優雅**,但隨著時間的流逝,只能因為特殊的判斷、辛苦**或者因為害怕問題**而重構,只能重構,最後可讀性和可維護性慢慢變差,就變成了《山》。

不管是大公司還是小公司,其實都避不開“山”**我們有時會看到一些知名軟體突然有了大的更新,甚至前後感覺好像有兩個版本,老程式設計師一眼就能看穿發生了什麼!

相關問題答案

    主場戰勝泰國不一定是板上釘釘的事情? 媒體分析開始收緊發條

    我是來談談家常事的 人物 世界預選賽國家足球隊很難說對陣泰國很難贏 月,他們背靠背對陣新加坡,而泰國則背靠背對陣南韓。現在有些人擔心新加坡不是乙個安全的地方,尤其是在客場。他們以乾淨和明確的方式對待泰國隊,國家足球隊正處於動盪時期。當然,泰國隊對這兩場比賽頗有希望,中國隊已經錯失了先機,他們甚至可以...

    “未來一天不一定很長”。

    未來的日子並不總是很長,我們總以為還有很多時間要做,但實際上,時間是有限的。我們應該珍惜每一分鐘和每一秒,不要讓時間從指縫中溜走。在這個快節奏的社會中,我們常常被各種瑣碎的事情所困擾,而忽略了身邊的美好。我們總是想等到有時間再做某件事,但往往當我們有時間的時候,我們發現自己已經失去了一開始的熱情和動...

    哪種狐狸味產品好 進口不一定適合你

    止汗除臭劑作為我們日常生活中常見的產品,可以有效幫助我們解決出汗過多帶來的問題。今天,我們就來聊聊那些國內外知名的止汗劑品牌。我們先來談談三個國外品牌。一 度 這個品牌來自美國,Degree的止汗化妝水香味清新,質地輕盈,吸收迅速,特別適合夏季使用。許多使用者表示,使用後可以整天保持乾燥,沒有異味。...

    不良信用是“壞人”嗎? 不一定!

    我們經常聽到 不良信用 和 黑信用 這兩個詞,很多人把它們和徵信聯絡在一起,但這種說法不一定正確,下面我們一起來看看 什麼是不良信用?不良信用是個人信用記錄,借款人申請貸款或信用卡後,由於某些原因,借款人有逾期還款記錄,可以稱為不良信用報告。信用不良的貸款或信用卡申請難度大,甚至會被列入 信用黑名單...

    禁區內犯規是點球嗎? 不一定,裁判需要考慮多種因素

    在足球比賽中,禁區內的犯規往往會引起裁判的注意,並可能導致點球。然而,禁區內的每一次犯規都會導致點球嗎?本文將執行此操作。首先,我們需要明確什麼是禁區。罰球區是體育場內位於球門前後的區域,具有特定的規則和限制。球員在禁區內的任何犯規都可能被裁判視為犯規,觸發處罰。然而,並非所有禁區內的犯規都會導致處...