公司新来的 PHP 试用期没过被开除了

面试的时候说自己是 2 年工作经验,TP laravel Yii 框架都用过。接触过的项目也不少,然后在公司呆了一个月,用 laravel 6 开发了一个企业网站。

今天我看了一眼他写的代码

News::where('is_hot', '=', 1)
            ->where('category', $category)
            ->orderBy('orderly', 'desc')
            ->select('id', 'title', 'type', 'description', 'author', DB::raw('CONCAT(\'' . config('other.img_path_web') . '\',picture) as picture'), 'is_hot', 'created_at')
            ->get();

我惊了,他大概是想往查询出来的 picture 字段上面加上前缀网址,
就算不会用模型修改器,那不也应该是在 blade 文件中加上前缀吗?

无语。


昨天下班前发的贴子,没想到反应这么大,大佬都来了。
这里统一说一下,这个代码和试用期没过没有关系,这个代码是那个同事走了之后我交接他的项目时才看到的。
这个项目是个简单再简单不过的企业展示网站,并没有太高要求,也没有业务逻辑代码,只有 CURD 他用了他最擅长的 laravel 框架。

工期是1个星期,前端页面是我写的,公司其他后端使用 TP,只有我一个 laravel ,来了一个和我技术栈一样的同事我还挺高兴的。

并没有嘲笑的意思,毕竟我自己 PHP 经验也就才1年。

真正让我感到惊讶的是,2年工作经验,擅长使用 laravel 框架,但明显连 laravel 文档都没怎么看过。

我学习 laravel 框架就是跟着我们网站的教程学的,让我这个新手从一开始走的路就是正确的,我很庆幸。


最后再更一次

昨天晚上下班前随意发帖吐槽,居然引起了这么大的关注,我也是没想到。可能是我标题起的太博人眼球,让大家误会了,这里向大家道歉,技术论坛确实不应该搞这种标题,但我也不打算修改,留着给自己长点记性。

这段代码和同事离职本身没有关联,只是这个项目需要增加点内容,我昨天去修改的时候才看见的。并没有觉得自己水平有多牛或者写法有多优雅,自己还是个小学生。只是觉得这个写法和自己平时的不一样,确实是自己肤浅了。

我也不是主管也不是老板,只是个普通的基层,公司有公司的考虑,希望这位同事能找一个更好的岗位吧。

相关的吐槽讨论就到此为止,不要浪费时间在这种没意义的事情上。

我从未见过一个早起、勤奋、谨慎,诚实的人抱怨命运。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 63

这个代码并不表示他能力不如你,甚至能力可能超过你,只是你比较在意个人经验主义和形式主义罢了

4个月前 评论
wanzi 4个月前
bynow1994 4个月前
leo

Update:

看评论大家可能误会了,我和楼主并不是在一家公司。

在我司入职前几个月会有专人负责 review 新同事的代码,代码风格甚至变量命名都有对应的规范文档。

目前我的团队还没有出现有人被公司开除的情况,能通过我司面试的都是非常优秀的同事。

==========

既然这么多人觉得这个代码没有问题,我就给大家做一次 code review,顺便让大家感受一下我司的代码质量。

  1. 同样是按字段值筛选,is_hotwhere 用了 3 参数模式,而 category 用的是 2 参数模式。PHP、Laravel 设计得非常灵活,相同的需求可以有完全不同的实现,但在实际开发过程中整个团队应该保持风格一致,这样在看别人代码时可以减少思维切换。
  2. 这里用了 ORM 查询,对于 $news->picture 这个字段的值团队内应该是有统一的预期,因为这里没有用 getXXXAttribute,所以对团队成员来说这个值应该是相对路径,但作者这里的写法破坏了这个预期,输出了一个绝对路径,那么未来团队里在使用 $news->picture 字段时就得去想我到底要不要加上域名?
  3. 这里手动指定 select 字段没有明显价值,通常 description 是占用最多空间的字段,用 select 不能带来明显的性能收益,反而以后引入新字段或者出现字段改名时,此处会留下坑。
  4. is_hot 很明显是一个 boolean 类型的字段,虽然在 MySQL 里存的是 0 和 1,但是这里用的是 ORM 查询,应该用 true 或者 false,当然这个只是优雅问题,不算太大毛病。

另外我司一直在招高级 PHP,不希望天天刨屎山的同学可以投简历 招聘:[北京][15K-35K][965] RightCapital 招聘 PHP 中级、资深研发

4个月前 评论
leo (作者) 4个月前
dabour 4个月前
LiamHao 4个月前
保安 4个月前
Wi1dcard 4个月前
Wi1dcard 4个月前
落叶满长安 4个月前
gundam00 4个月前
gundam00 4个月前
馨竹之乡 4个月前
selden 4个月前
yaoxs 4个月前
wdnmd 4个月前
小圊 4个月前
largezhou 4个月前
cbasil 4个月前
OverNaive 4个月前
Fly_Man 4个月前
xujinhuan 4个月前
leo (作者) 4个月前
nff93 2个月前
nff93 2个月前
nff93 2个月前
FreeMason 2个月前
自由与温暖是遥不可及的梦想 2个月前
eddy8 2个月前

其他语言的人都在研究怎么写出性能更好的代码,或者加一点新的东西,或者去优化jvm
我们的这些自命不凡的phper在干什么呢?在研究where的顺序不对,在研究代码写的不够“优雅” ,在研究用switch case把if else优化了。

4个月前 评论
Cynthia 4个月前
剑尘 4个月前
ming862394769 4个月前
giao哥 4个月前
yema 4个月前
drom 4个月前
largezhou 4个月前
goodgood 4个月前
Natural 4个月前
Makia98 2个月前

本来要说别人技术不行的,结果把自己暴露了

4个月前 评论

有的人会用别人的东西,就觉得是自己的东西。说是什么公司规范,请问公司给了新人开发规范文档没? 就算给了,也总要给别人一段时间去适应开发规范。 一天天强调优雅,我是不懂一个企业站需要什么优雅。 喝多了咖啡就喝不了白开水了?洋气优雅的大人

4个月前 评论
MArtian (楼主) 4个月前
来杯优乐美 4个月前
保安 4个月前
轻描淡写 4个月前
轻描淡写 4个月前
保安 4个月前
保安 4个月前
轻描淡写 4个月前
轻描淡写 4个月前
保安 4个月前
Noctis 4个月前
保安 4个月前
保安 4个月前
保安 4个月前
Fly_Man 4个月前
保安 4个月前
Noctis 4个月前
保安 4个月前
Noctis 4个月前
白小二 4个月前

略有瑕疵, 虽然不符合Laravel的优雅, 但问题不大 :flushed:.

4个月前 评论
PHP-Coder 4个月前
yonghuming945 2个月前

这个代码并不表示他能力不如你,甚至能力可能超过你,只是你比较在意个人经验主义和形式主义罢了

4个月前 评论
wanzi 4个月前
bynow1994 4个月前

指导下,能改正就行。态度很重要。试用期不给过是真的恶心。

4个月前 评论
huchao399 4个月前
giao哥

其实这个不能体现什么吧

4个月前 评论

这也不是什么大问题吧 :joy:

4个月前 评论

这个能说明什么问题,没多大毛病,有可能复杂的SQL他写的比你还溜呢,模型修改器有点凡尔赛了,结果没毛病

4个月前 评论
aa24615 4个月前

能用append的事为啥要sql处理

4个月前 评论

其实只看这段代码并不能否定他,要看他写的代码规范性、复用性、可维护性怎么样

4个月前 评论

没毛病,能跑起来就行 :joy:

4个月前 评论
yema

写的非常漂亮 适用

4个月前 评论

写的没毛病,原生方式不受框架限制,模型访问器会优雅一些

4个月前 评论
leo

站楼主,人生苦短,远离屎山

4个月前 评论
一念沧海一念桑田 4个月前
多人维丁 4个月前
FreeMason 2个月前
gema 2个月前

代码问题不大,并不能说明他在技术方面有什么短板,还是好奇试用期不给过的原因。

4个月前 评论

一看就是SQL爱好者:)

4个月前 评论

凭个人爱好不给过试用

4个月前 评论

来一些类啊,函数的封装看看,还有业务方面的代码?一点代码看不出太多东西吧

4个月前 评论

麻烦多贴点代码,这个点并不能说不给过试用期的原因吧,有不好的习惯提示让人家改,两年经验也不是很多

4个月前 评论

时间多,慢慢磨,要写得多漂亮都可以;如果时间紧,能实现功能稳定运行就行,后面有时间再优化

4个月前 评论
leo

Update:

看评论大家可能误会了,我和楼主并不是在一家公司。

在我司入职前几个月会有专人负责 review 新同事的代码,代码风格甚至变量命名都有对应的规范文档。

目前我的团队还没有出现有人被公司开除的情况,能通过我司面试的都是非常优秀的同事。

==========

既然这么多人觉得这个代码没有问题,我就给大家做一次 code review,顺便让大家感受一下我司的代码质量。

  1. 同样是按字段值筛选,is_hotwhere 用了 3 参数模式,而 category 用的是 2 参数模式。PHP、Laravel 设计得非常灵活,相同的需求可以有完全不同的实现,但在实际开发过程中整个团队应该保持风格一致,这样在看别人代码时可以减少思维切换。
  2. 这里用了 ORM 查询,对于 $news->picture 这个字段的值团队内应该是有统一的预期,因为这里没有用 getXXXAttribute,所以对团队成员来说这个值应该是相对路径,但作者这里的写法破坏了这个预期,输出了一个绝对路径,那么未来团队里在使用 $news->picture 字段时就得去想我到底要不要加上域名?
  3. 这里手动指定 select 字段没有明显价值,通常 description 是占用最多空间的字段,用 select 不能带来明显的性能收益,反而以后引入新字段或者出现字段改名时,此处会留下坑。
  4. is_hot 很明显是一个 boolean 类型的字段,虽然在 MySQL 里存的是 0 和 1,但是这里用的是 ORM 查询,应该用 true 或者 false,当然这个只是优雅问题,不算太大毛病。

另外我司一直在招高级 PHP,不希望天天刨屎山的同学可以投简历 招聘:[北京][15K-35K][965] RightCapital 招聘 PHP 中级、资深研发

4个月前 评论
leo (作者) 4个月前
dabour 4个月前
LiamHao 4个月前
保安 4个月前
Wi1dcard 4个月前
Wi1dcard 4个月前
落叶满长安 4个月前
gundam00 4个月前
gundam00 4个月前
馨竹之乡 4个月前
selden 4个月前
yaoxs 4个月前
wdnmd 4个月前
小圊 4个月前
largezhou 4个月前
cbasil 4个月前
OverNaive 4个月前
Fly_Man 4个月前
xujinhuan 4个月前
leo (作者) 4个月前
nff93 2个月前
nff93 2个月前
nff93 2个月前
FreeMason 2个月前
自由与温暖是遥不可及的梦想 2个月前
eddy8 2个月前

没啥意义,人一辈子不就是为了活的轻松快乐点,没必要建立在取笑别人上

4个月前 评论

满满的头条风味。

4个月前 评论

本来要说别人技术不行的,结果把自己暴露了

4个月前 评论

怎么说呢,有问题是肯定的,但是问题都不大,就像楼主列取的四条,稍加指导就能调整过来,如果因为这么就试用期不过确实有点不合理,如果其他方面也打不到公司要求,也没什么可说的,

4个月前 评论

自从我进了 LC 社区,根据社区规范,我也得了强迫症了,只要在我的知识里面,需要少一个空格多一个空格,我都会去严格执行,除非我不懂的。

这个代码不算屎山,我接手的项目,写的人各个都是厉害的人(真的),但代码是屎,十八层 if else,维护起来就是搅屎棍搅屎。

不过我写的话,= 去掉,category 排第一,select 放 get 里,拼接放 ORM。

4个月前 评论
lyxxxh 4个月前
白小二 4个月前

公司给赔偿了么

4个月前 评论
一念沧海一念桑田 4个月前
Trance (作者) 4个月前
一念沧海一念桑田 4个月前
MArtian (楼主) 4个月前
稻草人AQA 4个月前
MArtian (楼主) 4个月前
难受 4个月前
MArtian (楼主) 4个月前
难受 4个月前
playmaker

你这标题 有点不优雅哈。 不管是对人还是对己。每个人都早晚要还的

4个月前 评论

在试用期的我瑟瑟发抖 :sob:

4个月前 评论
李铭昕

试用期没过,这就被开除了?

4个月前 评论

有的人会用别人的东西,就觉得是自己的东西。说是什么公司规范,请问公司给了新人开发规范文档没? 就算给了,也总要给别人一段时间去适应开发规范。 一天天强调优雅,我是不懂一个企业站需要什么优雅。 喝多了咖啡就喝不了白开水了?洋气优雅的大人

4个月前 评论
MArtian (楼主) 4个月前
来杯优乐美 4个月前
保安 4个月前
轻描淡写 4个月前
轻描淡写 4个月前
保安 4个月前
保安 4个月前
轻描淡写 4个月前
轻描淡写 4个月前
保安 4个月前
Noctis 4个月前
保安 4个月前
保安 4个月前
保安 4个月前
Fly_Man 4个月前
保安 4个月前
Noctis 4个月前
保安 4个月前
Noctis 4个月前
白小二 4个月前

真正让我感到惊讶的是,2 年工作经验,擅长使用 laravel 框架,但明显连 laravel 文档都没怎么看过。

我还是持反对观点,仅凭一行没有用修改器方式的代码,就断定人家没看过文档,不懂修改器?一个星期一个人做一个简单的展示性网站?

4个月前 评论
MArtian (楼主) 4个月前
白小二 4个月前

代码规范 提前跟人家说了吗

4个月前 评论

where书写顺序是不是有点问题,select的column不拆出去看着不舒服,除此之外实在是没看出来其他问题,至于attr那个属性问题,谁用谁知道好吧,关联业务查询的时候那就是个累赘,用不用attr那个东西我觉得看个人习惯吧

4个月前 评论
保安 4个月前
哓东 (作者) 4个月前

:see_no_evil: 怀念symfony的entity

4个月前 评论

其他语言的人都在研究怎么写出性能更好的代码,或者加一点新的东西,或者去优化jvm
我们的这些自命不凡的phper在干什么呢?在研究where的顺序不对,在研究代码写的不够“优雅” ,在研究用switch case把if else优化了。

4个月前 评论
Cynthia 4个月前
剑尘 4个月前
ming862394769 4个月前
giao哥 4个月前
yema 4个月前
drom 4个月前
largezhou 4个月前
goodgood 4个月前
Natural 4个月前
Makia98 2个月前

select 中用 函数会影响数据库执行性能吗?

4个月前 评论
chowjiawei 4个月前

直接写原生sql语句的人,就不要用框架了。项目要想长期维护,必须规范起来,跟优雅无关。(接过大量屎山的人)

4个月前 评论

哈哈,这说的不就是我嘛我写 java 的,但是一些外包还是 php 快,于是花了两周简单看了一下 php 语法和laravel,然后就一边看文档,一边看 php 语法,一边写外包,哈哈哈laravel 框架是真的好用,封装了太多东西直接用太爽了,文档还很短。我感觉写 web 还得是 php,一个字快!

4个月前 评论
panda-sir

闲的无聊 这代码又不是惊天地 泣鬼神 有点问题指出来让人家修改下不就得了 试用期干掉人不至于吧

4个月前 评论

码农内卷了

4个月前 评论

php是世界上最好的语言

4个月前 评论

代码的优雅和规范,我更追求规范,代码是给人看到,人来读和改的,能快速读懂,便于扩展就行。

4个月前 评论

因为这是一个企业站,而不是一个长期维护项目. 这种项目上laravel框架都是浪费

4个月前 评论

看评论必看技术文档有意思多了

4个月前 评论

看了半天,没发现代码有什么问题,别个人写作的风格不同,各个公司的规范要求也不同。

4个月前 评论
chowjiawei 4个月前
白小二 4个月前
chowjiawei 4个月前
GDDD

话说不应该是访问器吗

4个月前 评论
MArtian (楼主) 4个月前
Bill-Li
  • 人的成长开始是从 欣赏自己,欣赏别人,不评价,认真做事,不抱怨开始的。
  • 在成长之前是磨难中的。
  • 成长之后是痛苦并快乐着。(来自白岩松的出版。)

最后提下丰收,取决于你对某件事或某个人的欲望取值

4个月前 评论

支持楼主,远离屎山!!!!

4个月前 评论

就很纳闷,你们是从哪看出来,开除和这段代码有因果关系的?

4个月前 评论
白小二

@LiamHao 同样好奇不过的原因,而且本人也非常喜欢写原生,当然会注重xss攻击

4个月前 评论
MArtian (楼主) 4个月前
白小二

技术比你好,经验比你丰富,知道这是一个小项目,懒得去吃『语法糖』,当然,是我的话比较倾向于用修改器,因为这很符合『单一指责』,看心情吧,要是葛优瘫,随手敲就完事了

4个月前 评论

tp和laravel没有技术栈这么夸张吧兄弟 :joy:

4个月前 评论

要不是代码和时间不一致, 我都以为这是我们公司的那一位呢, 唉

4个月前 评论

真·只会crud

4个月前 评论
Aaron

如果因为这代码就把人开了,确实有点过了。 人家原生sql写的挺好,只是没有用laravel提供的一些特定功能。这种情况,沟通下不就好了吗?生活都不易

4个月前 评论
MArtian (楼主) 4个月前

试用期的人。 瑟瑟发抖

2个月前 评论
MArtian (楼主) 2个月前
nff93

就问说写法没问题的人一个问题:是不是每次查询都去手动拼接图片地址?

2个月前 评论
MArtian (楼主) 2个月前
颠倒的玉石

我觉得还是简单易上手的代码才是最好的。维护也方便

2个月前 评论

单论laravel使用,来评判phper的水平,太片面了。

2个月前 评论
MArtian (楼主) 2个月前

我比较好奇为啥试用期没给过,而且我更倾向于楼主公司的问题。

2个月前 评论
MArtian (楼主) 2个月前
json991

一看你也是个初级开发者,企业开人不一定是这人水平不行,可能是你公司差

2个月前 评论

脱离上下文、背景,纯粹评判一小段代码,都是耍流氓。。。

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!