有人认真看过 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 ,我去。。。

8117 次点击
所在节点    PHP
32 条回复
hylent
2016-06-01 21:46:44 +08:00
psr 是一个问题
另外 elseif 本身不需要 直接 if 不就可以了么
反正我个人的习惯 很少用 elseif
if 要么抛出异常 要么 return 跳出函数 主体流程都是保持在一个缩进里的 这样看起来更舒服
对于实在要用 elseif 的 我宁可转为 switch
alexapollo
2016-06-01 22:06:15 +08:00
这个槽点明显不正确吧?

if -> else if 这样的逻辑可以做著名的的火车选路,可以做更好的跳转的。运行起来会比多个 if 更快。
arakashic
2016-06-02 03:34:10 +08:00
除非 code style 上有要求,要不然这个 case 里面
if () {
throw
} else if {
}

if () {
throw
}
if {
}
有啥区别?不能光凭这一点就吐槽“能写出这种代码的人,还有人推崇。。。”吧。
xiamx
2016-06-02 06:27:37 +08:00
没啥不好,这种写法完整的描述了一个 state transition
qhgongzi
2016-06-02 09:10:53 +08:00
确实是不用 else if ,增加了理解难度,可以在后面直接 if
but....这么点小瑕疵,就上升到"能写出这种代码的人,还有人推崇。。。", 楼主酸味真浓。
要不楼主亮亮你的代码,看看有多少值得推崇的好代码
whatisnew
2016-06-02 10:35:47 +08:00
@qhgongzi 这里只是举个典型的例子,你可以看看其他的代码,比如 Slim.php 之类的,随手翻一下
Slienc7
2016-06-02 11:27:34 +08:00
@whatisnew 能贴一下自己的代码让我们学习一下吗?
hanzhao
2016-06-02 11:37:35 +08:00
我也习惯这样写 有问题吗?
whatisnew
2016-06-02 23:40:08 +08:00
whatisnew
2016-06-02 23:52:42 +08:00
ioven
2016-06-06 08:49:55 +08:00
有其他小巧好用的逛街推荐不?
jeffw
2016-06-08 17:25:12 +08:00
帖一篇王垠博客的文章,直接拉到页面最后面开始看,第 2 条。
http://www.yinwang.org/blog-cn/2013/03/15/language-design-mistake1

然后再读读他的这篇文章,我觉得他说的是很有道理的。
http://www.yinwang.org/blog-cn/2015/11/21/programming-philosophy

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

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

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

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

© 2021 V2EX