過去一年時間寫了20多篇文章來探討了我認爲的Larave框架最核心部分的設計思路、代碼實現。通過更新文章自己在軟件設計、文字表達方面都有所提高,在剛開始決定寫Laravel源碼分析地文章的時候我地期望是自己和讀者通過學習Laravel核心的代碼能在軟件設計上帶來提高,這些提高主要是指兩方面:
- 通過學習Laravel核心的代碼來輔助理解軟件設計行業中經常提及的核心概念,通過學習像
IocContainer
、面向對象的五大原則SOLID
是怎麼應用到框架設計中去的來指導應該如何去做軟件開發設計。這方面對你的收益應該是跳出Laravel框架和PHP語言層面的,當你需要切換到其他框架和語言時這些收益仍會反饋給你。 - 熟練掌握Laravel的使用,雖然很多人說框架只是一個工具不應該花太多時間在工具的研究上,但是現實時開發者羣體大部分人並沒有在頭部的那幾家大公司,也不架構師,我們多數的工作還是在寫業務代碼,那麼既然你需要Laravel這個工具幫你完成每天的任務,那麼爲了儘可能高效率高質量的完成項目,確實是需要多了去看看框架的源碼,瞭解一些框架常用的方法在positive和negative時的行爲到底是什麼(各種情況下的返回值和拋出的異常),知道怎麼使用ORM才能讓查詢更高效等等,這些內容往往在框架的文檔都是很少提及的,需要去看源碼瞭解一下,如果你只會文檔裏提到的那些典型的用法顯然不能算是熟練掌握的。
Laravel整個框架設計到的內容有很多,其他的組件我也就不再一一去寫文章梳理了, 相信你在認真看完這個系列的文章後,假如你在使用其他組件過程中遇到了詭異的問題,或者好奇框架是怎麼幫你實現功能的?你完全有能力去梳理其他組件的源碼實現來解決你的疑惑。
爲了大家閱讀方便,我把這些源碼學習的文章彙總到這裏。
- 類地反射和依賴注入
- IocContainer
- 服務提供者
- Facades
- Route
- Middleware
- 控制器
- Request
- Response
- Database基礎
- QueryBuilder
- 模型CRUD
- 模型關聯
- 事件系統
- Auth認證系統(基礎介紹)
- Auth認證系統(實現細節)
- 自定義你的Auth認證系統
- Session
- Cookie
- Contracts契約
- 加載ENV配置
- HTTP內核
- Console內核
- 異常處理
最後還是回到上面說的,框架只是工具如果想要在軟件行業有所發展還是要把更多的精力投入到內功修煉上,所謂內功就是這些經過時間沉澱下來的基礎知識,框架層出不窮,但是它們應用的基礎知識卻甚少改變。數據庫、HTTP、算法和數據結構這些都是編程的內功,只有內功深厚了才能解決遇到的複雜問題。
推薦幾個我認爲挺好的修煉內功的專欄給大家:
當然還有日新月異的前端知識也是需要會基礎的用法的,最起碼瞭解一下團隊內部使用的前端框架的基礎知識,這樣對咱們做系統設計也會有幫助,最近在另外一個平臺上看到分享的一個免費教程使用Laravel和Vue構建API驅動的應用,講的非常好,希望Vue能快速入門的可以跟着教程一起動手練習練習。