共计 1303 个字符,预计需要花费 4 分钟才能阅读完成。
过去一年时间写了 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、算法和数据结构这些都是编程的内功,只有内功深厚了才能解决遇到的复杂问题。
推荐几个我认为挺好的修炼内功的专栏给大家:
程序员的数据基础课
MySQL 实战 45 讲
数据结构与算法
算法面试通关 40 讲
Spring boot 和 Spring Cloud 实战教程
当然还有日新月异的前端知识也是需要会基础的用法的,最起码了解一下团队内部使用的前端框架的基础知识,这样对咱们做系统设计也会有帮助,最近在另外一个平台上看到分享的一个免费教程使用 Laravel 和 Vue 构建 API 驱动的应用,讲的非常好,希望 Vue 能快速入门的可以跟着教程一起动手练习练习。