初學編程者必須要明白的事情

2023 年 5 月 6 日 | 千探程式

學了編程2年,體會到其發展的主流趨勢,就是不斷在「斬骨」。

我早期學習以傳統LAMP框架起網站時已感到,怎麼整個建置方法如斯的千絲萬縷綑綁著,一個頁面,包括前端的HTML mark upJavaScript 腳本程式與及後端的PHP 程式語言,滿滿一頁,混雜著不同類型的程式,可真眼花撩亂;那時心想,若頁面要作出大改動,認真煩氣,可真牽一髪動全身!又或者,我要起另一個新網站時,想用回原先網站的某部份程式,但若要將它「切割」出來,是頗費功夫的,甚至我情願索性將程式由頭寫過還好。

近十年的編程方向,就是將這個整體「拆骨」,一part part 獨立起來,先來個nodejs 將頁面程式「module 化」,分拆出不同功能的JS files ,各司其職,透過export and import files 來統整各modules;跟著,是將前後端徹底分割,透過API 將兩端銜接上。另一方面,就是編程的結構也分拆出來,管網頁介面設計的就有它所負責的template files ,管資料結構的亦有它的model files,由此有甚麼MVCMVM MVVM 等等的程式框架結構,林林總總,總之,趨勢就是可以分拆就分拆。

最令我興𡚒的是,我學習LAMP 時,已覺得既然HTML 的設計是「一楷楷」的,是一個div 一個div 咁分開,那時已有奇想何不將它們分開做,原來React.js 正是這樣,加上它所提供的hook functions ,令每一「楷」並不只停留在頁面上某處的 template 設計,而是更能「動」起來,互動性非常強,教我見識得拍案叫絕!

當然,將整體拆骨的後遺症,是你要怎樣將它們「連接」回復成一個整體;有些情況,我們甚至連有甚麽部份要整合一起也不知,我初學VUE.js 時,就是不明白我學完程式建構頁面後,為何還要學甚麽routing ,甚麼state management,又甚麼 Babel 和 Webpack後來才明白原來這些事情,我在學習LAMP 時,這框架一早已為我做定了,所以我才不用操心。

個人認為,對於一個新學程式的人而言,還是由LAMP 學起較好,因為很多枝節已為你先做妥,學習者可專注程式先,較易得成功感;如果一學就學近十多年那些,你大有可能感到氣餒,因為你要由第一塊積木開始砌上來,過程中你會莫明奇妙,不知就裏,甚至唔知自己做緊乜,懷疑人生。