當面試官問「談談對MVC的理解」「MVC的架構」「XXX層的實現原理」時,面試官究竟是想聽到什麼答案?
01-21
我只是一個一年工作的入門級PHP選手,有朋友諮詢,講道理,我都不知道我自己懂不懂,例如我用的TP,這種問題該怎麼回答呢?
不識廬山真面目,只緣身在此山中.
有時候應該跳出框架,看看原生PHP,才能加深對MVC和架構的理解.
MVC的本質就是分離界面和邏輯.
界面反映在PHP開發里就是視圖模板.
邏輯反映在PHP開發里就是控制器.
MVC連在一起表達就是: 控制器,載入數據模型,渲染視圖模板.
可見控制器控制著整個程序輸入輸出的走向.
需要注意的是:
控制器里不寫SQL操作模型,視圖裡不寫邏輯處理業務.
我覺得還是得深入學習一些面向對象的知識吧,並且自己用psr4實現一次MVC。
針對具體的問題,咱們再來組織語言。
我覺得直接告訴你回復的答案是有問題的。
通過剛剛的言論發現,你已經陷入了自己是新手這個陷井了。
控制層 - 數據過濾 返回數據處理 邏輯代碼調用
邏輯層 - 你的業務流水賬服務層 - 通用封裝
微服務 - rpc模型層 - 數據表的映射,數據相關的預定義等當然還有中間件切片的洋蔥模型最後 不要把自己的思維限制在mvc中,隨著系統複雜度的提升,分層也會增多
樓上基本上解釋了MVC,實際上面試問這種問題,解釋MVC是次要的,主要是想了解一下,你個人對MVC以及實現MVC的原理,載入機制等,有沒有去了解,有沒有閱讀框架的封裝代碼,從這個可以看出一個phper的認知面和代碼水平在哪個層面
自己寫一個簡單的 MVC 就知道人家想知道什麼了。
mvc架構目的是代碼復用,model暴露出某些數據常用操作,view渲染某些數據,controller用model暴露的方法得到數據交給view去渲染。拙見,有錯誤望指出。
說實話,一樓說的只是理想狀態,生產環境里想要代碼結構乾淨整潔是不太可能的。
另外用框架,不如花點時間讀一下框架的代碼,從入口開始看,到控制器再到視圖,整個流程看下來,你就明白啦推薦閱讀:
※為什麼很少有人在 PHP 項目中使用 namespace ?
※php如何 使用多線程?
※用php怎麼做以下這種需求?
※如何處理iOS開發中 APP端資料庫和網站資料庫選擇和同步問題?
※免費php網店(商城)系統有哪些?