花了兩天的時間研究了一下laravel的實作,如果只是照著書上說的或是線上課程的範例,大多都能執行成功,但這沒什麼,畢竟只是走別人走過的路;所以自己打算找些題材來實作練習,第一個想到的就是拿網頁設計乙級的題目來試刀,從頁面blade語法開始研究到後來的Model及Controller的運作,兩天下來只完成了後台的一半功能,過兩天有空再來完成剩下的,不過這邊先紀錄一下心得,免得到時要接上時又忘了。

單就前端頁面的建構來說,使用blade樣板語法後,前端頁面的建構變得非常簡單而且好維護,原本後台的各個功能頁面我是採用switch case的做法,直接複製各個功能的 html碼,再把一些文字做替換,雖然複製貼上是很簡單的工作,但是在修改各畫面的欄位名稱及文字時,不免還是會有遺漏或打錯的狀況,使用blade後,欄位名稱改成用變數的方式來傳送,只要用語法做好一份模型,接下來就是由Controller來控制要傳什麼功能的欄位名稱過來,樣板會自動生成對應的完整HTML語法,原本要4,5百行的檔案,一下縮到一百行左右而己。

資料模型是我目前覺得比較麻煩的地方,也是今天花最多時間研究的地方,單純就ORM的操作來說,的確可以簡化原本的SQL語法操作,甚至比我先前的先寫function的做法還來得快,但目前發現的缺點是一張資料表只能對應一個Model,所以第一題會用到九張資料表就得九個Model,然後再對應九個Controller來操作資料的CRUD,當然也得設定至少九個相應的Route來管理各項動作,雖然最後只是複製貼上再改一下資料表名就可以,但是採用框架就是為了做到DRY(Don’t Repeat Yourself),這讓我不得不考慮是否改成直接用DB類別來操作SQL語法會比較快一些。

laravel在table migration的做法和之前習慣的做法不一樣,所以這部份也是要花時間研究,以往都是直接在資料庫或透過phpmyadmin直接建表完成後再來寫程式的,但是laravel是把整個資料表的操作都拉回到框架裏來操作,這部份是考量到團隊工作時,需要有個資料表修改的紀錄做為開發的參考,另一方面也是為了同步團隊的資料表結構而做的設計。

估計再花個一天時間可以把後端的部份全部做完,前端的部份目前看起來不難,後面會有點挑戰的地方應該是Session的使用及laravel驗證機制的操作。

做到目前的心得是採用框架來做解題,並不一定比較快速,而且開發觀念也得轉個彎,但如果是花點時間練熟悉的話,因為整體的程式碼數量是減少很多的,加上錯誤發生機會降低非常多,所以如果練習的強度夠高,整體速度還是可以加快不少的;後面的計畫是在年底前把網頁乙級四個題目都用laravel做過至少一次,然後找出最有效率的解法來。

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

留言

撰寫回覆或留言

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