框架是個什麼東西?

城裡的野山參發表於2020-02-02

今天剛看完了 MDN 關於前端的系列文章,加之最近也有嘗試手擼一款PHP框架。聊一聊,未嘗試自研框架之前,之後,以及看完 MDN 的文章之後各自的感受。

我培訓班出身,本科專業也與計算機無關,算是換行。大致是這樣的一個背景情況。

培訓班更多的是教具體,比如 HTML 各個 element 如何使用,CSS 的樣式如何寫,字型大小如何調整,顏色如何調整等等,相當實際,以能做事為終極目標。

半年的培訓完之後,能夠使用TP5進行後端邏輯開發,配合一般的前後端頁面使用。剛進入公司,有一段時間,自我感覺相當良好,TP5框架用的越來越多,對各個函式,SQL語句的生成寫法都越來越熟悉,感覺自己有很大的進步。

2-3個月之後,事情就開始變得枯燥和無聊,經過一段時間,想要去學習框架原始碼,深入瞭解TP5究竟是如何運作的。嘗試過多次,順著 index.php 的程式碼,一行一行往下看,每每跳轉、巢狀好幾層其他檔案之後,就開始迷糊,關係一亂,就看不下去了。就這樣反反覆覆,來來回回倒騰了好多回,最終還是放棄了,忒受罪。

這算是自研框架前的感受,感覺框架之難,簡直就是難於上青天。

這樣過了一段日子,心裡還是放不下這個事兒。一天,靈光一閃,我何不自己寫一個框架呢?複雜的我們不會,寫個最簡單的總歸是可以的吧(加上當時,正在看《程式是怎麼跑起來的》,讓我從另一種角度看到了,原來計算機還可以這樣去理解,好像也挺簡單),就這樣,開始從一個框架研發者的角度來思考。

這種角度的轉換,讓我收穫極大。

對於框架的認知變了,框架不再是一個神祕、神奇的東西,框架其實就是一個工具包,不同框架的區別只是在於這個工具包中工具的多寡而已,工具的使用方式各有各自的規定而已。

這一段,我有上傳到GitHub,很多具體的理解都在對應版本的文件中有詳細說明。

這是第二個階段的感受。

之所以,從頭看 MDN 的前端系列教程,是受左耳朵耗子在極客時間的專欄《左耳聽風》的影響,覺著有必要打牢基礎知識,遂看了一遍整個前端的系列文章(英文版,儘量使用第一手原版資料,我英文並不好,也就4級水準,一樣看的懂),現在對於框架的認知又不一樣,我主寫PHP,最開始時是使用TP5。

現在再來討論框架,就不再侷限於某一具體的語言,不管是PHP,JAVA,Python還是別的語言,框架其實幹的事都一樣,把編碼工作變的更加簡單,簡單的方式就是提供大量的函式庫,不同的庫針對不同類的問題,回過頭來再看我目前的工作,認識不一樣了,由一個創造工作變成了一個應用工作,我現在覺得,建立框架才算是創造工作,功能開發其實是一個對函式庫的應用工作。

對於初學者而言,感覺PHP的 Lavarel 框架好難,完全看不懂,雖然我現在不用,自然也不會,但是感覺上不會覺得是個難啃的骨頭。如果讓我學習,我會去了解,它引入的第三方庫放在哪裡,路由的順序如何,弄清楚了這些,框架就能夠使用了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

城裡的野山參

相關文章