手记

花式填坑第10期【问答干货】PHP架构师未来之路:从不断进击のLaravel开始!

 

关于Laravel学习之道

 
Q:tp5和laravel5.4的特点和优缺点是什么呢?分别更适合开发什么类型的项目呢?
 
轩脉刃:首先是生态,laravel现在的生态应该是php中最好的。生态代表以后的市场,工作机会等。其次是功能,laravel的功能比tp5多,有的功能可能在刚接触的时候没有感受,但是随着越来越深入的使用,用到的时候时不时会有正是我想要的功能的感慨。 开发项目的类型和使用的框架没有什么必然的关系,这两个框架开发什么类型的项目都可以。但是laravel相关的第三方组建或者github项目会比TP多一些
 

 
Q:学会laravel还用不用学tp yii cake zend等等老牌框架呢 现在公司大多用的是什么框架呢

 
轩脉刃:学会laravel是第一步,如果想要做一个架构师,建议对其他的框架也有一定涉猎,然后对比。其实不管什么框架都是在php层面,后面的步骤就是学习和研究php生态和周边的系统和工具。比如,数据库,缓存,操作系统等。
 
Q:老师,学完你的laravel课程就可以出去找到一份web开发的工作了吗?如果不能,还不足,请问还有什么课程需要补足呢?老师能否给个laravel或者说是php工程师的学习路线,攻略?请老师讲讲系统学习laravel、php的正确姿势,谢谢啦。

 
轩脉刃:学完我的laravel课程,完全可以胜任一份php web开发的工作。我的经验,php的工作要求更多是一种考验知识广度的工作,在php学习过程中,框架,数据库,缓存,队列,操作系统,网络请求等等等等知道的知识越多越好。如果在找工作过程中遇到问题,建议多往广度的方向涉猎。特别是数据库和缓存。

 
Q:老师您好,我对laraverl不了解.也没进过公司做项目.  我相信您一定有使用tp,yii,laraverl的经验. 如果把tp比作一份盖浇饭.简单实用,人人都吃的起.那yii,laraverl 还有其他国内使用较多的框架.是什么样子的?还有每种框架,在你看来,更加适合做什么项目呢?

 
轩脉刃:在我实际使用laravel的工作过程中,我的感受,laravel更像一个斧子,刚开始的时候用起来有点不顺手,舞的不好,随着越到后面,工作中用到,往往经常感叹,原来这个地方的功能我不用自己弄啊,laravel已经有了。再后来,对php工程化越来越感兴趣,就会去研究和思考为什么laravel的这个模块和接口这么设计等等。从其他框架转到laravel,你会有一种升级的感觉。特别是在工程化方面。

 
Q:框架的构建需要了解么,有必要自己做一个框架出来么?对于初级程序员,tp框架,和拉瓦区别有多大?学了tp是否有必要再去接触拉瓦,或者是否有必要自己尝试写一个框架出来?
 
轩脉刃:我认为有必要,自己尝试写一个框架,会对各个框架为什么这么设计,哪种设计你觉得更好,为什么?这种层面的思考。这个层面思考一旦有了,就是我常说的,在工程层面的思考就有了。在以后带领团队开发的时候,你架构和裁剪的框架就更适合实际开发了。 当然,自己写框架要做好写的框架并不会流行的准备。因为我认为php的框架生态已经差不多饱和了。
 
Q:老师能不能详细讲解一下laravel中的  中间件是如何实现的,并且还有在什么情况下使用中间件可以发挥出中间件的优点
 
轩脉刃:laravel里面有个Pipeline的概念,理解中间件先需要理解pipeLine的概念。本质上就是匿名回调函数的使用。可以查看源码来看。 中间件的具体使用场景我举个例子,我之前有使用中间件实现接口降级,一个系统有100个接口,v2版本和v1版本有很多接口相同,只有几个不同,我就使用中间件,当你访问v2接口的时候,我把一些请求转到v1接口的控制器中。
 
Q:老师,框架的功能那么多,是不是每个都适合团队?怎么磨合?
 
轩脉刃:框架的功能那么多,并不是每个团队都合适的。你要有自己的看法,也就是观点。有的功能,在特定场合下就是鸡肋,但在另外一个场合下,就是宝藏。最重要的是,你对功能了解,优缺点了解。比如数据库迁移功能,如果你在一个2~3人的团队,系统架构比较简单,我觉得这个功能很赞的,能同步数据库。但是如果你的团队比较复杂,系统架构比较复杂,这个功能的使用就要考虑一下了。
 
Q:老师,性能慢,跟不上都是框架的锅吗?老师可以详细讲讲吗
 
轩脉刃:不是的,性能慢不都是框架的锅,在我的实际工作经验中,大多数都是sql请求没有很好的处理,实际上,框架的耗时在实际的项目中可能只是占1~5%,大多数性能问题可以在架构层面,设计层面解决。不要把锅都放在框架上。
 
Q:如何成为一名php架构师,学习的知识曲线都有哪些?月薪过万的php程序员大概学到什么知识深度

 
轩脉刃:php语法-》php框架-》数据库-》缓存-》操作系统-》协议。。。。等。基本精通框架+数据库+缓存是一个合格的php程序员了
 
Q:请问老师,
1.面对复杂的项目,高手是如何整理思路的?
2.面对自己从未做过的项目,程序员应该怎样着手?

 
轩脉刃:1 面对复杂的项目,我判断是否高手的标准就是能否把他简单化。在一个设计思路中,太多的if,else就是一个低级的设计,如何通过一个设计让这种分支逻辑变少是一个好的设计。 思考项目的时候,设计出好的表设计实际上是整理思路最重要的一步。 2 从未做过的项目的时候,我的经验是小心求证。比如从未做过支付,那么我在支付的代码逻辑里面多打几个日志,总是不会错的。
 
Q:请问老师,我想研究一下 laravel 的源码,但是不知道从哪里着手开始,还有阅读源码有什么需要注意的地方吗?

 
轩脉刃:我阅读的方法是从main入口,然后使用一个xmind把每一步都纪录一下,然后看着这个思维导图大概就知道源码的主干了。

讲师介绍

轩脉刃老师的个人主页,可点击查看

 
花式填坑往期文章推荐:

9人推荐
随时随地看视频
慕课网APP

热门评论

https://img.mukewang.com/5af1108b0001817a01810231.jpg

查看全部评论