有人认真看过 slim 的代码质量吗?

2016-06-01 17:09:27 +08:00
 whatisnew

我就不多说了,能写出这种代码的人,还有人推崇。。。

https://github.com/slimphp/Slim/blob/2.x/Slim/Log.php#L308

if (!isset(self::$levels[$level])) {
    throw new \InvalidArgumentException('Invalid log level supplied to function');
} else if ($this->enabled && $this->writer && $level <= $this->level) {
....

throw new \InvalidArgumentException

-> then ->

else if ?

然后,该作者的 slim3 居然还是高度遵循 fig PSR ,我去。。。

8041 次点击
所在节点    PHP
32 条回复
justanding
2016-06-01 17:29:42 +08:00
不可饶恕,居然有一个 else if
mahone3297
2016-06-01 17:36:39 +08:00
@justanding 请教, else if 的问题是?
manhere
2016-06-01 17:41:13 +08:00
记得这样可以少写一对大括号,可以用的吧?
bramblex
2016-06-01 17:44:49 +08:00
烂得在能够接受的程度内就懒得造轮子
notgod
2016-06-01 17:45:07 +08:00
按我的理解
推崇的本身 并不是代码写的好不好 而是这种造物的精神 以及造出来以后开源给大家使用
避免重复造轮子的问题

在这个基础上 没人天生什么都会 一次性就能写好
都是慢慢去完善 根据个人喜好 一种逻辑 10 个人可能有 100 种写法
没有必要强加自己的逻辑 认为自己一定是正确的打开方式

仅仅是个人喜好而已
比如我 就喜欢做简单处理
强迫症 别人的代码 缩进混淆了我都要修正 不然不舒服
zsx
2016-06-01 17:50:25 +08:00
@mahone3297 这里 throw 出来后后续不会执行, else 是多余的,直接 if 就好了。
yzyzsun
2016-06-01 18:00:29 +08:00
看标题还以为是说 Ruby 的 Slim ……
anewg
2016-06-01 18:10:14 +08:00
@zsx throw 要上面的 if 成立才会进入啊, if 不成立就判断接下来的 else if ,跟直接 if 有什么关系?
BOYPT
2016-06-01 18:12:22 +08:00
看来我跟楼主水平差距太大,我硬是没看出问题在哪。
不过 3.x 的 slim 已经不用他自己的 Log 模块了,扔了很多包袱给其他包。
raincious
2016-06-01 18:15:26 +08:00
@anewg

他的意思是可以直接

if (!isset(self::$levels[$level])) {
throw new \InvalidArgumentException('Invalid log level supplied to function');
}

if (.....

不过其实没什么,不影响稳定性,后面重构的时候修改下就行了,并不需要惊讶。
zsx
2016-06-01 18:15:56 +08:00
@anewg 我解释错了……上面 if 成立就不会到 elseif 而且还 throw 了;如果把 elseif 改成 if 也不会有问题,上面 if 不成立就会到 elseif ,和直接 if 也没区别。
Slienc7
2016-06-01 18:23:22 +08:00
@zsx
明显 else if 更优雅。
audi
2016-06-01 18:24:19 +08:00
lyf362345
2016-06-01 18:26:32 +08:00
不知道这个是 slim2 还是 slim3, 我看过一部分 slim2 代码, 槽点更多.
justanding
2016-06-01 19:22:29 +08:00
@mahone3297 PSR2 里面是“应该使用关键词 elseif 代替所有 else if ,以使得所有的控制关键字都像是单独的一个词。”
falcon05
2016-06-01 19:34:12 +08:00
意思是 else if 多加了一个空格,所以问题很大?
shiny
2016-06-01 19:37:11 +08:00
正是提 pull request 好机会呀
orvice
2016-06-01 19:47:25 +08:00
mahone3297
2016-06-01 21:25:18 +08:00
@zsx 怎么会多余。。。又不一定进 if 流程
看了你后面的解释,还是没明白。。。

@justanding 原来如此,有可能是你说的这个。
zsx
2016-06-01 21:38:15 +08:00
@mahone3297 所以我貌似直接忽略了 PSR (然后 get 错点了(

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/282770

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX