軟體是一種生物

更新 發佈閱讀 3 分鐘

最近同事工作上遇到了一些關於系統設計的問題來找我討論,聽了描述之後我的直覺反應告訴他「會有這樣的問題,應該是設計時少考慮了什麼!」

是的,大多數軟體工程師從初學者階段開始進入到能夠獨立工作的時候,大多會需要自己考慮一個功能的設計,直到一個完整的系統設計。然而,我們總是找不到正確答案

永遠要看情況

其實,不管是誰提出了怎樣的問題,現在要我給一個「方案」我大多只能告訴對方「這需要看情況」

舉個例子,以購物網站來舉例,我們在 PChome 上面購買商品,跟在 LINE 上面購買商品,都是「購買商品」這一件事情。然而會因為商品的類型(實體、虛擬)以及是否能夠退換貨、獲得紅利點數等等不同的「情況」必須將系統的設計做出不一樣的調整。

這就表示,大多數時候我們很很難用書本、網路教學等等提供的方法解決問題,因為同樣的概念,在不同的公司、產品會有無數種變化。

有生命的軟體

除此之外,很多時候我們會覺得當一段程式被寫出來之後,就不會再有變化。其實,軟體是根據人的想法去實現的,因此經過一段時間我們對他增加、刪減功能,這個軟體就改變了!

這就表示,我們的軟體是有生命的。跟生物一樣,會因為時間、環境產生改變,一個小型購物網站成長為一個大型電商需要的系統設計是不同的,因為要負擔的使用者、流量等級不同,用相同的程式碼很難對應這樣差異巨大的情況。

同時,如果所屬公司的計畫改變、所在國家的政策變化,也都會讓我們需要針對各種法律、行銷企劃等等情境,不斷的改變我們的軟體。

在一個軟體停止更新時,會用 EOL(End of Life,終止生命)來描述,確實是非常貼切的用語,因為當我們停止修改、更新,他就不會隨著現實狀況成長、變化,最後變得無法適應當下的時代。

維持軟體品質

如同我們需要運動、健身跟健康的飲食、作息一樣,我們對待軟體也需要思考該在哪裡調整、加入功能的時候是否會造成不良的影響。

這也是當代軟體開發中會對於 CI(Continuous Integration,持續整合)非常推崇的原因之一,因為我們需要持續的驗證今天吃了這個食物(功能)會不會造成不好的影響、這次調整了這個邏輯(穿搭)會不會影響原本的系統表現等等。

尤其軟體的構成在我們撰寫程式時,往往是由小而大的去觀察,因此常常忘記當系統變得極為複雜時相互影響的情況,在這樣錯綜復雜的系統之中,還需要經常性配合功能變化的重構(Refactor)來維持一個系統的穩定。

我們所處的時代變化的非常快,如果沒有小心的評估維持軟體品質的方法,很容易就會讓軟體生病,最後變得緩慢而笨重,最後不得不結束生命。


封面圖片使用 UnsplashSarah Dorweiler 的作品,有想聽的主題可以透過匿名提問告訴我,想了解專業的技術主題可以到弦而時習之找找靈感。

留言
avatar-img
留言分享你的想法!
avatar-img
蒼時弦也的沙龍
55會員
40內容數
軟體工程師逐漸變成一個熱門的職業,當我們進入這個職業之後應該要具備怎樣的技能才會在工作上更加順利呢?這系列的專欄會分享日常工作中的經驗以及一些案例分析,讓我們一起努力成為一位更優秀的軟體工程師吧!
蒼時弦也的沙龍的其他內容
2022/04/11
大多數時候,我們在討論壓力測試通常會先想到 ab 這個工具,然而這個工具會一次性的發送請求,有時候不一定符合現實的使用情況,同時也會受限於運行測試機器的限制(例如:Thread 上限)因此可能會得到不太精確的結果,在測試一定請求等級的瞬間壓力是有用的。
Thumbnail
2022/04/11
大多數時候,我們在討論壓力測試通常會先想到 ab 這個工具,然而這個工具會一次性的發送請求,有時候不一定符合現實的使用情況,同時也會受限於運行測試機器的限制(例如:Thread 上限)因此可能會得到不太精確的結果,在測試一定請求等級的瞬間壓力是有用的。
Thumbnail
2022/04/04
在我們要進行壓力測試的時候,必定會需要有「目標」而這個目標大多就是商業考量,也就是我們希望提供多大規模的服務。
Thumbnail
2022/04/04
在我們要進行壓力測試的時候,必定會需要有「目標」而這個目標大多就是商業考量,也就是我們希望提供多大規模的服務。
Thumbnail
2022/03/28
在一個功能完成後,比較嚴謹的方式會進行壓力測試來驗證是否能夠符合業務上的需求,在測試的時候是否能夠準確的測試就變得相當重要。
Thumbnail
2022/03/28
在一個功能完成後,比較嚴謹的方式會進行壓力測試來驗證是否能夠符合業務上的需求,在測試的時候是否能夠準確的測試就變得相當重要。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 九月最後一次 vocus 創作者推薦來啦!從日本獨旅專家、與兩歲娃的南法親子旅行,到台灣健行筆記,結合色彩與符號學的文化觀察,還有透過斜槓的前往理想生活的路途,邀請你跟著 vocus 創作者,用一百種視野探索這個世界!
Thumbnail
2025 九月最後一次 vocus 創作者推薦來啦!從日本獨旅專家、與兩歲娃的南法親子旅行,到台灣健行筆記,結合色彩與符號學的文化觀察,還有透過斜槓的前往理想生活的路途,邀請你跟著 vocus 創作者,用一百種視野探索這個世界!
Thumbnail
在溫哥華這座被大自然擁抱的城市,不會游泳的人也能在水裡泡一泡~~感受清涼和放鬆。 剛到溫哥華時,我去史丹利公園騎腳踏車,意外經過了 Second Beach Pool。那一眼真是讓我久久不能自己( • ̀ω•́ ),泳池的前方就是開闊的 English Bay,看到泳池裡的人群漂浮在海天之間。
Thumbnail
在溫哥華這座被大自然擁抱的城市,不會游泳的人也能在水裡泡一泡~~感受清涼和放鬆。 剛到溫哥華時,我去史丹利公園騎腳踏車,意外經過了 Second Beach Pool。那一眼真是讓我久久不能自己( • ̀ω•́ ),泳池的前方就是開闊的 English Bay,看到泳池裡的人群漂浮在海天之間。
Thumbnail
七星山主峰已走過幾次,這次要探探沒走過的夢幻湖↔️東峰段路線,補上「陽明山東西大縱走」中的七星山段。因為不喜歡原路折返,所以規劃一個簡易 小O路線,可以免費停車,還能把心頭好的秋芒看好看滿,很推薦的路線唷!
Thumbnail
七星山主峰已走過幾次,這次要探探沒走過的夢幻湖↔️東峰段路線,補上「陽明山東西大縱走」中的七星山段。因為不喜歡原路折返,所以規劃一個簡易 小O路線,可以免費停車,還能把心頭好的秋芒看好看滿,很推薦的路線唷!
Thumbnail
2025年9月1日起,臺新多張信用卡將整合為臺新Richart卡,並推出七大刷卡方案。本文詳細分析各方案優缺點、停卡教學及其他信用卡推薦,協助讀者選擇最適合自己的方案。
Thumbnail
2025年9月1日起,臺新多張信用卡將整合為臺新Richart卡,並推出七大刷卡方案。本文詳細分析各方案優缺點、停卡教學及其他信用卡推薦,協助讀者選擇最適合自己的方案。
Thumbnail
首先,最關鍵的問題就是「原創」是否有必要性? 我認為答案是否定的,因為原作者在翻拍時就創作了《今際之國的闖關者 RETRY》,講述的是有栖成為心理諮詢師後,因為救人意外再次被捲入遊戲世界。這樣的續作已經能自然承接主線。如今這種「硬原創」,只會讓整個 IP 的口碑下滑,新角色也淪為犧牲品。
Thumbnail
首先,最關鍵的問題就是「原創」是否有必要性? 我認為答案是否定的,因為原作者在翻拍時就創作了《今際之國的闖關者 RETRY》,講述的是有栖成為心理諮詢師後,因為救人意外再次被捲入遊戲世界。這樣的續作已經能自然承接主線。如今這種「硬原創」,只會讓整個 IP 的口碑下滑,新角色也淪為犧牲品。
Thumbnail
「知道自己怎麼了,然後呢?現狀還是沒有任何改變。」伴侶與諮商師晤談之前,曾與我描述她的狀態:「其實道理我都知道,已經發生很多次,我也在狀態好的時候練習過很多次。可是現在腦海的雜亂聲音不斷攻擊我,我知道『可以』怎麼想比較好、知道那些聲音是怎麼來的,也知道躺平軟爛你也不會覺得我怎樣。但知道又如何?
Thumbnail
「知道自己怎麼了,然後呢?現狀還是沒有任何改變。」伴侶與諮商師晤談之前,曾與我描述她的狀態:「其實道理我都知道,已經發生很多次,我也在狀態好的時候練習過很多次。可是現在腦海的雜亂聲音不斷攻擊我,我知道『可以』怎麼想比較好、知道那些聲音是怎麼來的,也知道躺平軟爛你也不會覺得我怎樣。但知道又如何?
Thumbnail
一轉眼,咩咩就已經九個多月大了,天氣也漸漸涼了起來,可以開始真的帶去爬山囉! 住在新店已經六年了,選擇二格山當她們的第一座小百岳,非常有意義。而且這天天氣超級好,視野好到超乎預期,連大霸尖山和南湖大山都一清二楚! 雖然我們作弊從小格頭起登,來回也才1.2k上一百多,但她們都玩得非常開心呢!
Thumbnail
一轉眼,咩咩就已經九個多月大了,天氣也漸漸涼了起來,可以開始真的帶去爬山囉! 住在新店已經六年了,選擇二格山當她們的第一座小百岳,非常有意義。而且這天天氣超級好,視野好到超乎預期,連大霸尖山和南湖大山都一清二楚! 雖然我們作弊從小格頭起登,來回也才1.2k上一百多,但她們都玩得非常開心呢!
Thumbnail
一旦甲乙方進到零和賽局,情感上開始對抗之後,兩敗俱傷就是必然的結局了。既然是這樣,合約的撰寫及執行不妨看作是合作誠意的具象表態。
Thumbnail
一旦甲乙方進到零和賽局,情感上開始對抗之後,兩敗俱傷就是必然的結局了。既然是這樣,合約的撰寫及執行不妨看作是合作誠意的具象表態。
Thumbnail
軟體開發是在虛擬的空間重新描述並解決現時的問題,多數時候並不存在正確答案。如何穿越這些不確定及未知就體現了開發者的功力以及對事物的把握度。 標題有點聳動,但且以這篇短文紀錄幾個印象比較深的、飛一陣後發現什麼節論都沒得到的可能作法(? 所以其實是要反著看 … 以下列舉三個常碰到的情況跟大家分享
Thumbnail
軟體開發是在虛擬的空間重新描述並解決現時的問題,多數時候並不存在正確答案。如何穿越這些不確定及未知就體現了開發者的功力以及對事物的把握度。 標題有點聳動,但且以這篇短文紀錄幾個印象比較深的、飛一陣後發現什麼節論都沒得到的可能作法(? 所以其實是要反著看 … 以下列舉三個常碰到的情況跟大家分享
Thumbnail
這系列大概花了快兩個月的時間快速的把學到的一些知識記錄下來,然而還是有許多內容很難用文章簡單的說明。
Thumbnail
這系列大概花了快兩個月的時間快速的把學到的一些知識記錄下來,然而還是有許多內容很難用文章簡單的說明。
Thumbnail
大多數的工程師常常會有一個疑問,就是「測試」應該要怎麼測試才是正確的?在過去,軟體測試大多還是以人工為主,在這幾年逐漸的出現自動化測試之後,實際上我們是不清楚應該要怎麼寫測試。
Thumbnail
大多數的工程師常常會有一個疑問,就是「測試」應該要怎麼測試才是正確的?在過去,軟體測試大多還是以人工為主,在這幾年逐漸的出現自動化測試之後,實際上我們是不清楚應該要怎麼寫測試。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News