上周錄取了一份工作,然後這周推辭了,雖然對方後來有提出一周只要去上三天班的兼職方案,但我最後還是決定不去了,對方很有誠意,薪水也符合水準,但一來是有其他的計劃要執行,另一方面則是我想起來我學程式的初衷是為了”創作”;當其它的履歷表都沒有面試機會而唯一錄取的工作內容又超出我現有能力範圍時,我花了半個月在思考我到底在幹什麼,原來這幾年現實中的各種雜事搞得我都忘了我的初衷了,所以一下說要回遊戲業做PM,一下說要高普考做公務員,一下說要轉行當程式設計師,沒一件事做的成,但時光已經不留情面的走過了五年了;

在找工作和撰寫前幾篇乙級術科解題心得時,一直有遇到Framework,但因為課程期間一直沒有實務在教,所以也只是知道個名詞,在做CI的教學時,做完也還是一頭霧水;這兩天又在密集的找了一些資料後,總算有些比較整體性的了解,對於我們這種非本科的凡夫俗子來說,那一堆全是專有名詞的framework的介紹文章,真是看了一百篇也還是不懂到底在講什麼。

先前同學在問我框架是什麼的時候,我還很高興的舉了個例子給他聽:”就好像從A點移動到B點這件事,你用兩條腿來走可以走到,但也可以用腳踏車、摩托車、和汽車來走到;Framework就是把’移動’這件事做各種不同的強化,讓你可以適應各種不同需求”,我當時是覺得我的解釋應該算是夠白話了,不過後來想想,這樣的解釋其實很淺,屬於嘴砲等級的解釋;所以後來在丟履歷等面試的空檔,我針對網頁開發這個領域找了很多資料,也試著下去使用framework,真實的去了解一下,框架這東西到底在做什麼。

目前的框架大致分成前端和後端兩大類,前端的框架大多都是基於Javascript做出來的,目的在於把我們原本使用Html來製作的靜態頁面改成為比較模組化,或者是元件化的組合呈現,儘量避免類似頁面,只因為部份內容不同,就要重新做一個新的頁面出來,前端框架的主要應用大多是以所謂的SPA為主,全名為”單頁式網頁應用程式”(Single Page Application),SPA因為要把原本分屬不同頁面的東西都擠到同一頁來顯示,因此利用框架來簡化程式碼,或者說是把程式碼做適當的管理與組合(因為很多時候前端框架只是讓你寫更多的程式碼,所以需要好的管理方案),讓後續的維護或修改變得比較容易,換句話說,如果你的前端開發,其實沒有很複雜,修改或擴充的需求也很低的話,其實是可以不用考慮使用框架的,函式庫類的jQuery就很夠用了,只是一堆工作的要求都說要有前端框架經驗,要有MVC觀念什麼的,但我是覺得實務上的開發,前端的框架應用似乎不多,因為後端的框架大多也包了前端一大半的工作了。

後端的框架出現的比較早,這是因為早期的一些中大型網頁應用,都是由後端程式去架構前端頁面的形成,當時前端的javascript語言的標準有好幾年沒有什麼進展或修改,反而是後端的應用百家爭鳴,不管是PHP、JSP還是ASP,都發展出滿成熟的框架技術,其中以MVC的架構為主流,這些後端框架主要想解決的問題是網頁HTML碼中又夾了PHP、CSS、Javascript,單一檔案中有多項程式語言混在一起,閱讀和維護都不容易,因此推出MVC的概念及框架,規範了網頁應用的開發要遵循框架內的規矩,讓網頁顯示的部份和資料存取的部份分開來,這樣在原始碼的閱讀和維護上也才會比較清楚;這就好象以前的安全帽裏的海棉是縫死的,你要洗海棉,就等於整頂安全帽要一起洗;現在有在賣海棉可拆洗的安全帽,你就可以只洗海棉而不用整頂下去洗。

然後最近看了很多框架的應用及自己實際去試用後,也推翻了我原本想的”用框架來做網頁術科的解題會比較快的想法”,現在的答案是不一定,要等我真的掌握了框架的應用並且真的去使用了之後,才能做判斷;因為大多數的框架都是基於某程式語言再去開發出來的,這表示在效率上,絕對不會比原生的程式來得快,而且大多數的框架也都有其特別專長的應用領域,所以要看你的應用在那邊,再來決定要使用什麼框架,否則反而會被框架綁住手腳,或是殺雞用牛刀的狀況,再者是,框架都有其規範的使用方式,簡單來說,使用框架,大概等於重新學一種程式語言,只是,框架做不到的事,你可以馬上用原生程式的語法來自己新增功能,最後,目前各種框架強調的MVC架構,其實又大多是基於物件導向的原則,職訓課程期間也沒講到物件導向,同學們去碰這類框架,一定會一頭霧水,雖然我以前有學過JAVA,所以對物件導向算是有認識,但也因為對物件導向的認識,所以我現在覺得這些框架並不一定會真的省到工,也不一定會讓我少寫很多程式碼,畢竟這些框架能生存的真正原因在於維護和修改,而不是為了我們這種要針對考試檢定而來的,所以針對檢定到底要不要使用框架技術來解,我還要再實測一下才能下定論。

我寫這篇並沒有打算要介紹什麼框架,因為介紹不完,而且會有太多專有名詞,解釋起來麻煩,我只是把我這兩周找到的相關資料,自己做一些心得匯整,用自己比較好懂的白話文來幫自己紀錄一下;至於要不要學框架,我現在的計畫就是後端的CI會先學,然後用乙級術科來做練習,前端我會選擇React來學,主要是要做一些SPA的作品當成作品集,這大概就是我接下來一兩個月如果還是沒工作的計畫惹。

 

最後修改日期: 2018-03-31

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。