Aug.14.2014

其實一個頂尖開發者,也必須是一個頂尖的「設計師」

原文作者是一個程式設計師,也是一個「設計師」,以下文字以作者第一人稱撰寫。

在科技產業中,我聽過許多很棒的程式設計師們宣稱他們對於 「設計」 這檔事一竅不通。對他們而言,設計這領域太過奧妙難解,難度絕對高於他們日常的程式工作。他們普遍認為自己先天上就沒此種基因的優勢,所以在有生之年當中是絕不可能接觸設計類的範疇。

然而,對我來說這樣的想法實在太過荒謬,畢竟一個好的程式設計就是一項 「設計」,原因在於,一個好的 Code 必須經過良好的設計,也就是說,任何一個能寫出完好程式的設計師通常都是設計出精良的 Code 。而這樣的原理也顯現出一項事實,那就是寫出好的程式等於從事了一項設計。

不信的話,大家可以瞧瞧 Dieter Ram 的著作的「設計十誡」,你可以發現,當你將內文的「設計」替換成「程式設計」,「產品」替換成「軟體」,你就擁有了新的一套著作「程式設計十誡」。

 

。好的 Code 需富有創新力

我想這是無庸置疑的道理,當你在寫 Code 時,絕對希望能夠用最有效率的方法解決問題。

 

。好的 Code 使得軟體更有益處

假如你寫的 Code 無法應用於軟體層面,且對於科技圈也無多大的幫助時,這個 Code 的必要性就不高,而不被需要的 Code 就是個爛 Code 。

 

。好的 Code 須具備美感

好的 Code 必須是易讀的,優秀的程式設計師願意花更多的時間將 Code 的功能性以及可讀性劃分得更加清楚,所以好的 Code 在螢幕上看起來「賞心悅目」,主因是它組織劃分清楚又能被完美地執行。

 

。好的 Code 使得軟體用途更加容易被理解

優秀的程式設計師能將 Code 的功能性劃分清楚,再加以命名,使其辨識度提高,讓普遍使用者更能掌握其 Code 的用處,假如一個 Code 讓人難以理解,那它絕對不是個好 Code 。

 

。好的 Code 是很「客氣」的

好的 Code 不會侵犯別的 Code 的作業範疇,保持 Code   SOLID 比寫出新的 Code 更加重要,作業的重疊易使得 Code 的管理更加困難, Code 應該要能獨立作業,才能容易管理及重複使用。

 

。好的 Code 必須是誠實的

請檢查看看你的 Code 是否「名副其實」,假如你的 Code 的作用性是 A,那它就只該具備此項功能,其餘功能則是枉然。

 

。好的 Code 要能經得起時間的考驗

寫出易管理以及可維護的 Code 是相當重要的,相信你的電腦中還留有存活超過 10 年以上的 Code ,假如你寫出的 Code 雜亂無章,對你而言將會是個大麻煩。

 

。好的 Code 連小細節都不放過

好的 Code 遇到問題時,能提供相對應的解決方法,此情況絕非偶然。因為完善的 Code 需經過不斷的測試,同時須面對不同的情形,針對問題提出解決方案,使其能精準地對症下藥。 

 

。好的 Code 是對環境友善的

這聽起來可能有點詭異,不過這邊指的環境友善,並不是針對真實世界的環境,而是軟體世界中的環境。友善的軟體環境是指 Code 不會不斷重複,它會依指令執行動作。而糟糕的 Code 將會汙染軟體環境,製作出醜陋的 project  (如同真正的汙染)。

 

。好的 Code 能越少越好

其實好的 Code 就是能總結以上的論點,遇見問題能優雅地解決、執行指令動作、不會自行重複並且組織良好,保持「小而美」的狀態、簡單且能直搗核心功能,才能創造出完美的軟體。

 

所以能寫出好程式的程式設計師們,請別妄自菲薄,你們可是一群真正的「設計人」,因為你們的「創作」都能有效率地解決問題,跟優秀的設計師們絕無不同。好的 Code 是需要花費精力創作的,可惜大部分的人都不夠了解。

 

 

不可轉載
TechOrange 科技報橘
《TechOrange》,專門追蹤全球網路產業的科技網誌。提供網路創業者、行銷人員、媒體人員關於網路的資訊與知識是我們的任務;每天大概花吃顆橘子的時間來瀏覽就夠,吸收科技新知沒負擔。
《TechOrange》,專門追蹤全球網路產業的科技網誌。提供網路創業者、行銷人員、媒體人員關於網路的資訊與知識是我們的任務;每天大概花吃顆橘子的時間來瀏覽就夠,吸收科技新知沒負擔。

更多文章


READ MORE

更多文章

READ MORE

LOGIN

SIGN UP

FORGOT
PASSWORD

請輸入你的帳號或電子郵件位址。你將收到含有建立新密碼鏈結的電子郵件。