2026年5月23日 星期六

[感言] 夕陽系統的千瘡百孔

凡事都有兩面,有好處,自然有壞處;有得,自有失;沒有完美,總有它的限制。

沒有一個程式可以解決所有的問題,沒有一個系統沒有漏洞。它能到達「成熟」的階段,但它永不會完美。之後就是隨著年日總有「老化」的一天,或是世界進步了,或是已經maintain不到了……科技的日新月異,隨著programming languages本身的更新,components/dependencies的新version推出,本來work的logic又要隨著新版本而需修改,而往往不是所有東西都能完全實現於新版本中……

而且languages/components/dependencies也有它本來的限制,所以depends on它們的產品也自然帶著它們的不完全。

只是說database(s),隨年日累積,多大的容量也總有一天會遇上爆data不能再寫入的問題,需要operational handling,加大容量作能維持使用得到,所以系統建構完成也需要維護才能保持正常運作。

再者,假若系統是由一個群體寫成,一個群體中總有每人的個性喜好,寫出的合成體也總不會完全統一(syntactically, semantically),寫法背後的設計,因著不同角度、理解與分工,也不會完全一致,所以只能看程式員的包容程度,去修改別人/前人遺留的問題,再加以個人的改進/新功能。

就算是one man band,今天的自己與昨天的自己也可以不同了,寫出來的東西又可以一切都被推翻、可以前後不對應……

隨年日的增長,系統複雜性愈來愈高,假如只再聘用junior programmers來開發新功能,卻不加入前人的幫助,指導當中的訣竅與地雷,任由小職員亂衝亂撞,不理解背後的動機設計,系統只會強硬地被修改得遍體鱗傷。

加上,如果人只以MVP為目標而開發系統,結果只會變成體無完膚……

基於人的問題、軟硬件的不完全等原因(而且所列出的因素只是冰山一角),系統千瘡百孔地運行著。再面對的是修改不正確,以及不斷累積的technical debts,以致會到達「老化」「衰敗」的階段,已經到達極限,無能為力了。

問問AI如何解決/幫助夕陽系統維持生命值,re-factoring、code reviews、automated scanning、backlogging可能有些果效,但它也只是減慢老化的過程,總有一些地方,人無能為力。

老闆總不喜歡成本花在re-factoring上,因為它(短視地)不賺錢;code reviews需要有能之士,但他們也有他們的時間/能力限制,並不足以完全解決所有問題;使用automated scanning的工具又要在程式以上多花一層功夫才能run得到,而這層功夫又可能會帶來更多的問題;backlogging只是把問題記下,不能解決問題本身……

當然,系統來到「老化」之前,自然有它「年青力壯」的階段,有它曾經的輝煌。這就是一個系統的一生,曾經風光,也總會面對被淘汰的一天。正如人生一樣。要保持系統的健康並不簡單。

我猜想,其實每位開發者都曾經夢想過,寫有用的系統,開發健康的codes。當終於面對現實,這個期望與落差,又有多大啊。

說回AI這回事,theoretically,AI model被train到某個程度,它也會有錯亂至死去的階段,緃然它「輝煌」過。不過「舊嘅唔去,新嘅唔嚟」,新嘅model出現,又多容易呢。

將來(現在)AI寫code的世代,可能re-factoring、code reviews、automated scanning、backlogging也只是一個command的事,天曉得。但又負面一想,要看穿系統漏洞也同樣只是一個command的事,多恐怖呢。

又廢話了一頓,人也需要關機了。

沒有留言:

張貼留言

辦公室心態秘技輯錄

要過感恩的生活,在工作中也要如是。 有同事脾氣暴躁,所以跟他相處不刺激到他已值得感恩了,可是當他發脾氣的時候,告訴自已不要放於心裏,不要被他的說話影響自己就好了。 有同事不負責任,這個很難相處,就做好自己本份,辛苦委屈唯有交托給主。 有同事懶懶閒,這也改變不到他的心態,不與他說話...