比如正则,是否在某个范围里,是否是某个类的子类 等等情况
那么更复杂的模式匹配呢?
其次,你写的这段代码,在 Ruby 下是什么样子的?
最后,在超越语言的思路上,有没有什么好的解法?
我们不要管 Ruby 先,你这段代码在 PHP 和 Java 里怎么写呢?是否可以用 switch 解决?
但是 Py 有 if ... elif ... else
和 switch 是等价的,你说难看,可以这么说,但这不是阻碍你编程的障碍
我不知道你在说什么,你上文给出的所有例子在我看来(包括我重新看了眼资料)用 guard clause 风格都没有问题。
switch 有什么问题么?需要做匹配正常用就是
而过度防御,并不是语言的问题,而是人的问题,显然语言本身并不约束防御过度这件事
那显然就是那文章要讨论的了
作者并没有否定防御式编程,而是在说有一些做法属于过度,没有必要
作者前几段指出了一些典型的过度防御的场景,最后给出了建议
When writing code, take a minute to think through the edge cases.
我觉得把这些翻译过来,他的意思很明确了
还有,我建议你去那文章的原文,首先你发的 CSDN 翻译版本就是标题党,改变了原文标题的语义
原文标题 Overly defensive programming 意思很简单 过度防御式编程
其次,原文里没有否定防御式编程,而是在说有一些做法属于过度,没有必要
如果你可以保证程序准确表达你设想的逻辑并且能够让合作伙伴相对容易的理解,那么什么编程风格无所谓。
可是你给的例子还是防御式编程可以解决的啊,怎么解决不了了呢
确实不直观,只有少量现代语言才提供了 Guard 语义,但这样写也是业内的一种最佳实践,这种编码风格有专门的术语叫做 guard clause,参考资料见我上一个回复
until 那不就是 while !cond
的语法糖么?
unless 也就是 if !cond
啊
while cond:
if conditionA:
# code
break
if conditionB:
# code
break
if conditionC:
# code
break
if conditionD:
# code
break
你这代码有什么问题?Guard clause 作为一种标准编码风格不来了解一下?
你这 Ruby 写得也丑啊。。
while condition do
case n:
when a:
break
else:
# code
end
end
完全可以用 guard clause 风格消掉嵌套,任何语言都可以这么搞
while cond do
break if a
break if b
# your code
end
要求不高 cocoon 很好,不过需要跟 webpacker 配合的话,需要用别人给他包的 npm package,作者表示过自己不懂
你不要自己写 js 提交,创建一个表单提交按钮 来提交试试
你的用户模型如果叫 AdminUser 那么对应的就是 authenticate_admin_user
jasl9187#hotmail.com 两个 古银
那就是 2.4
官方提到的的 Known Issue,是 2.4.0 还是 2.5.0 忘记了,具体可以看 Ruby 的 Redmine
Ruby 2.5 跟 Jemalloc 有兼容问题,其他跑了一段时间没遇到啥问题
不如,在这边开个 Vim 板块,你把人忽悠来
因为 form
标签只支持 GET 和 POST... 所以你在 Rails 里用的 PUT PATCH DELETE 都是借助 UJS 库模拟出来的。。。
来!一起摩擦
催更~
加上参考文献更佳
更推荐 https://github.com/Shopify/ejson 之前还跟 @hooooopo 说写个接管 Credentials 的插件来,没啥空就坑了
GoRails 最近也有一期讲 Drag and drop 的 https://gorails.com/episodes/sortable-drag-and-drop
这个还是要看你的需求的,另外还有团队人员的知识结构。
谈不上有没有必要,更多看喜好
我是来替补的,讲得可长可短呀,你的主题更有价值的!
回复某层也有问题