寫程式最困難的地方

閱讀時間約 2 分鐘
最近跟同事討論一個功能模組的設計有什麼問題,當我很流暢的找出問題點並且提供幾種不同的方向時。同事就問我說,要怎麼樣才有一個「標準做法」去設計這些系統呢?

沒有正確答案

我只能告訴他,這一切都要根據當下狀況判斷。在過去的學習經驗中,我們總是學著所謂的「標準答案」因此會很習慣的認為有一個標準做法。同時,在學習撰寫程式的時候,我們參考的教科書、文章、課程也都會有一個完整的案例。
在這樣的狀態下,就會發生所謂不知變通的狀況。也就是每一次都會想著要套用一個公式進去,然而這樣的系統很多時候會變得難以維護甚至完全不符合產品、客戶、使用者的需要。

情況永遠會變

即使我們能夠針對一個情況判斷,也仍然會因為人、時間等因素讓情況改變。這也是在上週的軟體是一種生物這篇文章所提到的觀點,我們是需要不斷的更新、改變設計來對應當下最為真實的狀況。
這就表示,即使我們再怎麼努力的設計一個當下「完美」的系統,依舊還是會面臨需要被調整跟修改的情況。這也是在軟體開發中最為困難的一個能力,要做到所謂的「剛好」是非常困難的。同時,在許多軟體開發的技巧中,會追求所謂的「解耦(Decoupling)」這個特性,就是為了盡可能的減少無法靈活調整的情況。

扎實的基本功

要能夠在這樣的狀況下應對自如,大多數時候需要扎實的基本功以及足夠的經驗。因為有經驗,就能夠快速的想像一個系統至少具備怎樣的特性、規格、盲點,進而避開這些問題,這也是為什麼在同一個領域轉換會比較常見的原因。
至於基本功,就是對於程式的運作、電腦科學的理解,也就是軟體工程師的素養所提到的「素養」問題。當我們嘗試去解決一個複雜的問題,最好的方法就是找到切分問題的方式,由大到小的分解,最後的結果就會回到這些關於電腦、程式運作原理的概念上。
然而,大多數新手容易遇到的是,剛開始工作都會被分配到「小單元」的工作,往往是由小而大的堆疊,因此常常看不見完整系統的樣貌。要解決這樣的狀況,由比較資深的工程師所規劃、設計並且切分的工作就變得極為重要。
簡單來說,寫程式最困難的地方往往不是技術上的問題,而是如何對當下的狀況正確判斷並且建立良好協作的狀態,才會是最為困難的地方。

封面圖片使用 Unsplashinsung yoon 的作品,有想聽的主題可以透過匿名提問告訴我,想了解專業的技術主題可以到弦而時習之找找靈感。
為什麼會看到廣告
53會員
40內容數
軟體工程師逐漸變成一個熱門的職業,當我們進入這個職業之後應該要具備怎樣的技能才會在工作上更加順利呢?這系列的專欄會分享日常工作中的經驗以及一些案例分析,讓我們一起努力成為一位更優秀的軟體工程師吧!
留言0
查看全部
發表第一個留言支持創作者!
蒼時弦也的沙龍 的其他內容
軟體工程師的素養
閱讀時間約 2 分鐘
軟體是一種生物
閱讀時間約 2 分鐘
你可能也想看
談寫作與寫程式的共通點──文理組的界線還是不要劃開清楚吧文學創作和寫程式之間,似乎是兩件充滿衝突的事情,有時候我會有點難以解釋發生在自己身上的這種二元特性。以前國高中學習的時候,學科被分割成國英數社自五個項目,其實我最喜歡的科目是國文和數學,在高中要分類組的時候,因為感覺自己除了國文數學之外,還喜歡歷史,所以選了一類組。但是,如今回首從高中選組之後到現在
Thumbnail
avatar
yun
2024-05-12
黃牛罰錢,寫程式的坐牢?現行的文創法10-1條,無論立法者是有意還無意間選邊站,都有邏輯上的問題。如果用搶票機器人的購買者需要被判刑,那用搶票機器人的黃牛,理論上應該加重刑度,才符合邏輯。如果10-1條的出現,是因黃牛掃票行為而起,邏輯上第3項的適用對象應該改成與第2項相同的「黃牛」,才不會讓人有種開發者衰小坐牢的感覺。
Thumbnail
avatar
GYB
2024-04-22
[Python基礎]寫程式碼的風格指南 PEP8 在人與人溝通之間,最怕雞同鴨講,彼此不對頻的狀況常會造成誤會。在程式語言中也會出現類似的情況,所以就有一些約定來彼此約束。 PEP 8 是 Python 社群廣泛遵循的一種風格指南,用於提高 Python 程式碼的可讀性和一致性。一開始是 Python 之父 Guido van Rossum 自己
Thumbnail
avatar
螃蟹_crab
2024-01-23
工程師光會寫程式還不夠?帶你踏入「技術大神」的社群據點Ruby 這款程式語言被認為是學習簡單又好上手,但會寫 Ruby 並不代表你真正進入 Ruby 的世界,Ruby 大叔之前不斷鼓勵新手要融入 Ruby 社群,因為很多平常沒地方學到的專業知識都藏在社群裡,想接觸「臥虎藏龍」的 Ruby 社群,那就務必把這篇收藏起來。 Ruby 社群裡的「神秘導
Thumbnail
avatar
RUBY 大叔
2023-10-27
AI會寫程式,人類還能幹嘛?會寫程式是目前生成式AI的一項重大功能。許多人也預期未來AI會替代程式設計師寫程式,導致程式設計師失業。 但身為程式設計師的我想說:「不是程式設計師這個職業會消失,而是再也沒必要寫什麼程式了。」為什麼? 請聽我娓娓道來。
Thumbnail
avatar
Alex Lee
2023-09-14
不用寫程式都能架設網站:學習 Notion 和 Super 建立一頁式個人網站不懂寫程式該如何架設網站?在上一篇文章介紹了多款 No Code 架設網站的工具,我想你已對架站的 No Code 工具有一定了解。如果你還未曾試過建立網站,今天就試試由零開始利用 Notion 架設一個簡單的個人網站。 Notion 網站架設準備工作 將 Notion Page 轉為一頁式網頁
Thumbnail
avatar
Simon Ng
2022-08-31
不喜歡寫程式就不能走資訊業嗎?程式寫得不好就不能當專案經理嗎?專案成功的關鍵不是技術最強的專案人員,而是最會溝通的專案經理
Thumbnail
avatar
monica yang
2022-07-01
怎麼可能寫程式-R然後....開啟新世界! 沒有想到只是就寫幾行字,程式跑出來的結果會這麼有成就感,而且因為使用過Bigquery跑SQL,覺得RStudio跑R的介面好簡潔友善,上課上得好有興致想繼續往下學習。 這樣的轉折,讓我覺得需要來記錄跟歸納原因,讓自己下一次的挑戰準備也能採用系統化的方法,更快的進入狀況。
avatar
傑尼
2022-05-21
不會寫程式就去寫文章! / 如何找到天職 / 完美主義是一種阻礙我們習慣被一種思維受限:別人怎麼做有效果,我們就照著做,應該會有用吧? 對,我相信有些適用,但事實上,事情不完全是這樣子運作。 在未知的道路上,你也可以發揮創意,彈性的嘗試不同的方法,因為通往成功的道路不是單一制式的。
Thumbnail
avatar
哎唷 ‧ 卡彭
2021-12-21
不用寫程式也能用Google試算表畫樂活五線譜與回測,用高麗菜價教你什麼是樂活五線譜 圖1 Google 試算表畫樂活五線譜 前言 這期是Google 試算表之不用寫程式系列,很多朋友看到要寫程式頭就很痛,當然VBA寫程式系列還是會有文章跟範例,適合進階學習的朋友參考。 網路上有很多朋友很想取得樂活五線譜的EXCEL程式,我甚至也用VBA做了一套,還含回測系統,不過這個對於新手投資
Thumbnail
avatar
威利財經生活隨筆
2021-10-02