我想基于 tabler 做一个整合到 rails 的方案,但是那个主题目前最大的问题是没有左右边栏,我提了 feature request
小程序登录也是 oauth 2 协议,跟微博微信登录没两样
如何去理解问题,精妙的解决它,不就是评价编程能力高低的标准么?
就你举的从嵌套数据结构提取数据的例子,这些写法都不好
而且 这个场景 用 if elsif 还是 case when 都不是问题的关键
你应该用 jsonpath 解决
所以说 PHP 的 写出来和 Py 的 if elsif 的风格几乎一样了?
那么你是为了用 switch case 而用么?如果不能用则代表不灵活?
比如正则,是否在某个范围里,是否是某个类的子类 等等情况
那么更复杂的模式匹配呢?
其次,你写的这段代码,在 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 库模拟出来的。。。
来!一起摩擦
催更~
加上参考文献更佳