作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是代码片段,有一些我不喜欢的地方:
function insert(el, child, before){
if ( before ) {
el.insertBefore(child, el.childNodes[0]);
} else {
el.appendChild(child);
}
}
为什么不使用两个单独的方法,例如 insertBefore
和 insertAfter
?这种方法和其他方法的优点和缺点是什么?
更新:
我得到了这个很好的article解释我想要什么。
最佳答案
此函数的全部目的是避免在调用该函数的所有位置都放置 if
语句。因此,如果您有很多类似的地方:
if (something) {
foo.insertBefore(bar, foo.childNodes[0]));
} else {
foo.appendChild(bar);
}
您可以将它们全部简化为:
insert(foo, bar, something);
用你的两种方法,它会变成:
if (something) {
insertBefore(foo, bar);
} else {
insertAfter(foo, bar);
}
这并不比原来的好太多。
关于javascript - 代码气味 - 将 bool 控制参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36989140/
因此,我们都努力减少重复 (DRY) 和其他异味,并尽可能保持我们的代码干净整洁。对于 Ruby 代码,有很多检测气味的工具,例如相当不错的 Caliber。服务。 但是,我对代码重复的定义似乎与工具
在遗留 Java 代码库中查找最长(以代码行数计)方法的最简单方法是什么? 我们使用 gradle 和 IntelliJ IDEA,因此最好是其中之一的插件。 最佳答案 您可以尝试JArchitect
我是一名优秀的程序员,十分优秀!