軟體是一種生物

閱讀時間約 2 分鐘
最近同事工作上遇到了一些關於系統設計的問題來找我討論,聽了描述之後我的直覺反應告訴他「會有這樣的問題,應該是設計時少考慮了什麼!」
是的,大多數軟體工程師從初學者階段開始進入到能夠獨立工作的時候,大多會需要自己考慮一個功能的設計,直到一個完整的系統設計。然而,我們總是找不到正確答案

永遠要看情況

其實,不管是誰提出了怎樣的問題,現在要我給一個「方案」我大多只能告訴對方「這需要看情況」
舉個例子,以購物網站來舉例,我們在 PChome 上面購買商品,跟在 LINE 上面購買商品,都是「購買商品」這一件事情。然而會因為商品的類型(實體、虛擬)以及是否能夠退換貨、獲得紅利點數等等不同的「情況」必須將系統的設計做出不一樣的調整。
這就表示,大多數時候我們很很難用書本、網路教學等等提供的方法解決問題,因為同樣的概念,在不同的公司、產品會有無數種變化。

有生命的軟體

除此之外,很多時候我們會覺得當一段程式被寫出來之後,就不會再有變化。其實,軟體是根據人的想法去實現的,因此經過一段時間我們對他增加、刪減功能,這個軟體就改變了!
這就表示,我們的軟體是有生命的。跟生物一樣,會因為時間、環境產生改變,一個小型購物網站成長為一個大型電商需要的系統設計是不同的,因為要負擔的使用者、流量等級不同,用相同的程式碼很難對應這樣差異巨大的情況。
同時,如果所屬公司的計畫改變、所在國家的政策變化,也都會讓我們需要針對各種法律、行銷企劃等等情境,不斷的改變我們的軟體。
在一個軟體停止更新時,會用 EOL(End of Life,終止生命)來描述,確實是非常貼切的用語,因為當我們停止修改、更新,他就不會隨著現實狀況成長、變化,最後變得無法適應當下的時代。

維持軟體品質

如同我們需要運動、健身跟健康的飲食、作息一樣,我們對待軟體也需要思考該在哪裡調整、加入功能的時候是否會造成不良的影響。
這也是當代軟體開發中會對於 CI(Continuous Integration,持續整合)非常推崇的原因之一,因為我們需要持續的驗證今天吃了這個食物(功能)會不會造成不好的影響、這次調整了這個邏輯(穿搭)會不會影響原本的系統表現等等。
尤其軟體的構成在我們撰寫程式時,往往是由小而大的去觀察,因此常常忘記當系統變得極為複雜時相互影響的情況,在這樣錯綜復雜的系統之中,還需要經常性配合功能變化的重構(Refactor)來維持一個系統的穩定。
我們所處的時代變化的非常快,如果沒有小心的評估維持軟體品質的方法,很容易就會讓軟體生病,最後變得緩慢而笨重,最後不得不結束生命。

封面圖片使用 UnsplashSarah Dorweiler 的作品,有想聽的主題可以透過匿名提問告訴我,想了解專業的技術主題可以到弦而時習之找找靈感。
為什麼會看到廣告
54會員
40Content count
軟體工程師逐漸變成一個熱門的職業,當我們進入這個職業之後應該要具備怎樣的技能才會在工作上更加順利呢?這系列的專欄會分享日常工作中的經驗以及一些案例分析,讓我們一起努力成為一位更優秀的軟體工程師吧!
留言0
查看全部
發表第一個留言支持創作者!
蒼時弦也的沙龍 的其他內容
「什麼時候會有訂飲料系統呢?」從加入五倍紅寶石軟體開發到現在已經過了五年,每次都會有人提出來,接下來就不了了之。我們是一間九成以上都是工程師的公司,理論上像這樣的系統不應該那麼困難才對,為什麼就是沒辦法做出來呢?
如果有在接觸軟體開發產業,很常見的一個說法是非本科(資訊、工程背景)的工程師底子差,做出來的東西很糟糕之類的。然而,事實真的是這樣嗎?又或者說,我們能夠如何解決這樣的問題?
最近正在製作一些工具加速自己開發網站的速度,能夠製作各種工具輔助自己工作是我還沒成為資深工程師之前一直相信的資深工程師條件之一。
「什麼時候會有訂飲料系統呢?」從加入五倍紅寶石軟體開發到現在已經過了五年,每次都會有人提出來,接下來就不了了之。我們是一間九成以上都是工程師的公司,理論上像這樣的系統不應該那麼困難才對,為什麼就是沒辦法做出來呢?
如果有在接觸軟體開發產業,很常見的一個說法是非本科(資訊、工程背景)的工程師底子差,做出來的東西很糟糕之類的。然而,事實真的是這樣嗎?又或者說,我們能夠如何解決這樣的問題?
最近正在製作一些工具加速自己開發網站的速度,能夠製作各種工具輔助自己工作是我還沒成為資深工程師之前一直相信的資深工程師條件之一。
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
如果所有裝置都可以透過單一檔案管理器統一管理這會有多方便? 紅茶最近在Github上找到專案,名叫Spacedrive。這個專案的宗旨,開發團隊希望未來只需要一個App就可以連接所有裝置和雲端空間,來更方便的管理自己手上的檔案。
Thumbnail
社群媒體對人們的負面影響與操縱已成為矽谷巨頭公司前骨幹成員討論的焦點。透過這些平臺,使用者的時間與個人資料被轉化成商品販售給廠商,因此社群媒體平臺為了獲取更多商業利益,不惜一切手段搶佔使用者的注意力。此外,社群媒體的出現導致了青少年的自殺率上升,讓人更脆弱、焦慮、憂鬱。同時,社群媒體還無形中建立同溫層,讓人無法接受外面的世界,更容易被操縱。這些市場行為和效應不僅對個人,甚至可能對國家和世界產生深遠的影響。
Thumbnail
近年來,人工智能與機器學習(AI/ML)技術快速發展,醫療設備數量呈現明顯增長趨勢。本文根據世界衛生組織國際臨床試驗註冊平臺(ICTRP)的臨床試驗數據進行全面分析,瞭解AI/ML SaMD的發展趨勢及地理分佈特徵,並強調了國際合作臨床試驗的必要性。
Thumbnail
你曾在清晨時,享受著一個人靜謐的時光嗎?那段時間,沒有車水馬龍的轟轟聲;沒有人來人往的喧鬧聲;只有自己緩緩的呼吸聲。 這週開始,我與朋友約定好每天清晨五點半起床,挑戰 66 天早起的習慣,維持一週的我,觀察到自己大腦與精神的變化,也覺得好像比過往擁有更多的時間,因此今天想與你分享,我的冬日清晨:
Thumbnail
你是會和計程車司機攀談的人嗎?你是會在購物時和店員聊天的人嗎?這週想跟你分享我第一次獨自搭計程車、入手人生第一雙登山鞋的故事。
Thumbnail
「暫時放下一切」是和家人朋友商討後下的重要決定,我推掉了新學期所有的演講邀約、不得已離開了我最深愛的班級,也在學校的支持下,請假半年在家休養。 而今,過了三年,回顧那段日子,很慶幸自己當初勇敢地「華麗轉身」,如今才能重拾健康和幸福。果然,「生病是一種偽裝的祝福」,這是我從這本書學到最重要的事。
Thumbnail
為什麼想再談談「醞釀期」這件事呢?是因為這週的生活再次讓我重新學習看見空白的價值,也從這幾個月感受到創作,是件美好且必須做的事。 你有為生活留些空白嗎?你是如何看待這些空白的呢?那些空白對你來說是什麼?
Thumbnail
這週有點靈感枯竭,總以為到了週六晚上會突然靈光乍現的我,到了週日起床,仍是一片空白,不僅讓我開始擔憂寫作是否會因此而中斷。 然而,在和一群朋友爬了一整天的山後,我好像體悟到了什麼,這是一件大自然和身體教會我的事情
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
如果所有裝置都可以透過單一檔案管理器統一管理這會有多方便? 紅茶最近在Github上找到專案,名叫Spacedrive。這個專案的宗旨,開發團隊希望未來只需要一個App就可以連接所有裝置和雲端空間,來更方便的管理自己手上的檔案。
Thumbnail
社群媒體對人們的負面影響與操縱已成為矽谷巨頭公司前骨幹成員討論的焦點。透過這些平臺,使用者的時間與個人資料被轉化成商品販售給廠商,因此社群媒體平臺為了獲取更多商業利益,不惜一切手段搶佔使用者的注意力。此外,社群媒體的出現導致了青少年的自殺率上升,讓人更脆弱、焦慮、憂鬱。同時,社群媒體還無形中建立同溫層,讓人無法接受外面的世界,更容易被操縱。這些市場行為和效應不僅對個人,甚至可能對國家和世界產生深遠的影響。
Thumbnail
近年來,人工智能與機器學習(AI/ML)技術快速發展,醫療設備數量呈現明顯增長趨勢。本文根據世界衛生組織國際臨床試驗註冊平臺(ICTRP)的臨床試驗數據進行全面分析,瞭解AI/ML SaMD的發展趨勢及地理分佈特徵,並強調了國際合作臨床試驗的必要性。
Thumbnail
你曾在清晨時,享受著一個人靜謐的時光嗎?那段時間,沒有車水馬龍的轟轟聲;沒有人來人往的喧鬧聲;只有自己緩緩的呼吸聲。 這週開始,我與朋友約定好每天清晨五點半起床,挑戰 66 天早起的習慣,維持一週的我,觀察到自己大腦與精神的變化,也覺得好像比過往擁有更多的時間,因此今天想與你分享,我的冬日清晨:
Thumbnail
你是會和計程車司機攀談的人嗎?你是會在購物時和店員聊天的人嗎?這週想跟你分享我第一次獨自搭計程車、入手人生第一雙登山鞋的故事。
Thumbnail
「暫時放下一切」是和家人朋友商討後下的重要決定,我推掉了新學期所有的演講邀約、不得已離開了我最深愛的班級,也在學校的支持下,請假半年在家休養。 而今,過了三年,回顧那段日子,很慶幸自己當初勇敢地「華麗轉身」,如今才能重拾健康和幸福。果然,「生病是一種偽裝的祝福」,這是我從這本書學到最重要的事。
Thumbnail
為什麼想再談談「醞釀期」這件事呢?是因為這週的生活再次讓我重新學習看見空白的價值,也從這幾個月感受到創作,是件美好且必須做的事。 你有為生活留些空白嗎?你是如何看待這些空白的呢?那些空白對你來說是什麼?
Thumbnail
這週有點靈感枯竭,總以為到了週六晚上會突然靈光乍現的我,到了週日起床,仍是一片空白,不僅讓我開始擔憂寫作是否會因此而中斷。 然而,在和一群朋友爬了一整天的山後,我好像體悟到了什麼,這是一件大自然和身體教會我的事情