上一次的練習真的是從零開始,看完一門線上課程加上一點GOOGLE就開始動手做了,做的過程中發現問題才再回頭翻書找資料,而且也只做完後台而已,在寫完三篇心得後,我又花了大概兩天左右的時間把題目重新做了一次,這一次採用的是比較中規中矩的做法,每一張資料表相關的控制器,模型及視圖都獨立開來做,光路由就寫了46條路由,模型九個,控制器11個,視圖10個,中介層1個,服務供應者1個,整個做下來最花時間的地方是在視圖上,因為後台的視圖我還是嘗試要用一個檔案來搞定,這使得語法上變得有點複雜,下一次簡化應該會從這方面著手,就像我在之前的心得中提到的,用框架來做開發,就不要再擔心檔案太多的問題了。

重做一次的心得是框架可以幫助讓整個網站的架構比較清楚,負責邏輯的和負責資料庫的以及負責顯示的,都切得乾乾淨淨的,不像以前原生寫法那樣一個檔案中同時有PHP又有HTML又有JS,要查問題時很花時間,要修改時也要很小心;但是框架並不完全那麼美好,比如我在session和登入驗證上就花了點時間去研究,才能做出我想要的結果來,比如登入驗證的功能,內建的機制雖然很方便,但如果只依靠內建的來實踐功能,很多事反而會受到限制,題目要求的登入很簡單,不需要太多驗證,我想跳過內建的機制,但沒有相關的資訊,網路上找到的全是告訴你登入很簡單,內建就有,你CODE都不用寫就做好了,但我要的是不同的驗證方式,卻沒有相關的資料可以參考,所以使用框架在我目前的程度來看,一點也不輕鬆;我認為框架在後續的維護上是有一定價值的,但像檢定或比賽之類的場合,框架不一定有優勢,除非刻意的去忽視這些規範,用硬幹的方式在框架內做一些扭曲的應用,這樣的話的確能在速度上取得好處,比如今年的全國技能競賽有一個題目的資料庫查詢語法,用框架反而做不出來,最後大家都是用原生的查詢語法下去做。

在這兩次的試解中,其實我花在找資料和看畫的時間上幾乎是解題時間的兩倍,原因是網路上找到的東西大多只是重覆官方提供的範例再解釋一次而己,如果我想做的功能和官方提供的不太一樣,就幾乎找不到解答,我只能自己想辦法去試出來,所以我覺得學習成本上並沒有比較低,而且還得對程式語言有一定基礎的人,才有辦法從框架的官方說明或原始碼中去找到問題,然後完全的掌控整個框架工具的使用,像是session的使用,之前看的課程或資料都沒提到這塊,我想要做到的功能只能自己去試出來,即使是stackoverflow上的資訊有些也是文不對題。

後續的計畫是用laravel 把乙級四個題目做一篇,當成未來教學的教材之一,接下來是研究比較有歷史的Codeigniter,這樣的話,整個網頁乙級術科的解題就完整了。

最後修改日期: 2018-11-16

留言

撰寫回覆或留言

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