php作为web界的一哥,这些年一直在走下坡路,直到我在北京信达众公司面试有幸遇到一位自称十年经验的php大佬“,被这位大佬喷了一上午,作为一个菜鸡我才明白为什么这些年php”不太行了”
先让我们看看这个十年经验php大佬大佬的代码质量。
从言谈中我们发现,这个大佬技术鸿沟很大,连现在laravel ,tp 等主流框架都有了cli 命令行模式都不知道,可能大佬一直在闭门造车,而且大佬各种高阶词汇,喜欢喷人,咱们技术不好,太高级的东西也不懂,那就看代码吧
那就让我们看看这个大佬到底多厉害
我们先看看百度定义的mvc,
再看看大佬写的的mvc,
在models 层写文件上传 验证,而且是直接复制了mixphp作者的代码放进去?而且是两个内容差不多的文件,这…… 合成一个文件不行吗?
而且全程sql 处理全部写在v层,
成吧
再看看
作为菜鸡一个类文件就写了两个方法,被这位大佬喷了一上午,我们再看看大佬写的
呃呃呃? 也是一个文件两个方法,这… 成吧
再说说代码复用吧 十年经验的大佬了嘛,跟大佬学习下代码复用。
所以你看到的。。。
一个控制器里面写了一个curl基类,然后又在另一个控制器中又写了一个curl… 整个项目勉强算上总共两个控制器。。 代码考评充数吗? 不过人数一只手的公司,哪来的代码考评。
这里又定义了一个curl 方法。。。
又一个。。
感觉很乱啊 。。想一出是一出。大佬思维清奇,无懈可击
再看看十年大佬的return 。。 先无视上面这行复制mixphp作者文档用来炫技的文字.
这里return 了两个 $res ,其实任何一个稍微有点经验的人 都会在最后return $res;当然大佬这样写也行
再说个最基本的,一般来说面试都会问单引号和双引号的区别,如果你只会背而不会用的话。。。 那就会像这个大佬写的这个样子 恕我直言,单引号不会用就算了,可以顺手把等号后面的空格统一下嘛?
再看这个满屏的$this->host, 其实作为一个菜鸡我觉得定义一个const 也不错,大佬又是双引号拼接。。。其实双引号也可以解析$变量
既然大佬懂测试,那么我们接着看看大佬写的这款方法。
wc,TM的 else后面怎么测试? 既然else 后面没有代码 为什么还要if? 这是要逼测试辞职吗?
看看这是其他程序员对这位十年php大佬代码的评价,
刚出来的时候写的。。。。
刚出来的时候写的。。。。
刚出来的时候写的。。。。
刚出来的时候写的。。。。
再看看其他小细节。如果是四层循环,可能要$vvvv, 五层的话可能就$vvvvv, 简单易懂吧,哈哈哈哈
看点有深度的代码,当然不是看这个复制mixphp作者 事务的代码,而是简单的if 语句
false != $fromzit 不行吗? 十年经验还不懂这个嘛?
大佬统计查询这里用了 pdo 的预绑定类似的东西,就是from = 后面那个 :。大佬还特地秀了一下这行代码给我看看。 当然啦我不懂,一个select查询语句,很高深复杂的样子。大佬喜欢满嘴文档上的各种高阶词汇。这段写法应该是复制的mixphp作者文档上的例子代码。至于为什么这么写,如果大佬懂的话一个查询语句后面就不会出现其他各种写法……
但是其他地方。能不能统一下呀
东一处西一处的,大佬你都带团队了,一个sql语句能不能统一一点点…
不小心点开了日志目录,吓到了。。
我不懂mixphp, 这是mixphp程序运行的错误日志吗?
再看这里,这种东西是不是可以写成const 啊
看看大佬写的有含量的代码吧 ,这块注释还不错~ 因为看了大佬的代码,大佬写的有深度的地方都会标记一个注释。不是每个方法大佬都会有注释。。大佬喜欢炫技嘛,大佬应该认为这个方法写的很有深度,所以加了注释。作为一个菜鸡,我如果没有猜错这个注释应该是用phpstorm的快捷键生成的。差不多也是整个项目中唯一一个比较规范的注释,感谢????phpstorm的快捷生成标准注释功能。
大佬设计的数据库暂时不想说了 ,喷不动了,你们随便看下吧 随便一个都是255长度。。。
还有更多弱鸡入门写法暂不列出来的,
最后总结下,一个用mixphp的项目,两个人,总共写了三个控制器,算上把文件上传验证写到models里面的那两个(文件功能几乎都一样),勉强算数吧,其实也就是五个文件,一个项目总共五十个方法不到吧,写成这个样子。有兴趣的知道这是哪家奇葩公司的可以私信我,哈哈哈。至于我为什么要写这个文章,是因为我的代码被这位大佬差不多喷了一上午呀~~ 如果大佬看到这个文章,欢迎发帖也来喷我的代码,喷我用过的laravel,ci,tp,。
最后
感觉这种十年经验的大佬活活的拉低了php,swoole的存在,衷心的希望mixphp的作者提高下 准入门槛,让php更加繁荣昌盛~
@刘健 @韩天峰 @eechen
知乎地址:https://zhuanlan.zhihu.com/p/… 评论更精彩