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

2016 年 6 月 1 日
 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 ,我去。。。

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

if -> else if 这样的逻辑可以做著名的的火车选路,可以做更好的跳转的。运行起来会比多个 if 更快。
arakashic
2016 年 6 月 2 日
除非 code style 上有要求,要不然这个 case 里面
if () {
throw
} else if {
}

if () {
throw
}
if {
}
有啥区别?不能光凭这一点就吐槽“能写出这种代码的人,还有人推崇。。。”吧。
xiamx
2016 年 6 月 2 日
没啥不好,这种写法完整的描述了一个 state transition
qhgongzi
2016 年 6 月 2 日
确实是不用 else if ,增加了理解难度,可以在后面直接 if
but....这么点小瑕疵,就上升到"能写出这种代码的人,还有人推崇。。。", 楼主酸味真浓。
要不楼主亮亮你的代码,看看有多少值得推崇的好代码
whatisnew
2016 年 6 月 2 日
@qhgongzi 这里只是举个典型的例子,你可以看看其他的代码,比如 Slim.php 之类的,随手翻一下
Slienc7
2016 年 6 月 2 日
@whatisnew 能贴一下自己的代码让我们学习一下吗?
hanzhao
2016 年 6 月 2 日
我也习惯这样写 有问题吗?
whatisnew
2016 年 6 月 2 日
whatisnew
2016 年 6 月 2 日
ioven
2016 年 6 月 6 日
有其他小巧好用的逛街推荐不?
jeffw
2016 年 6 月 8 日
帖一篇王垠博客的文章,直接拉到页面最后面开始看,第 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