|
1
8
我非常喜欢扩展方法,但我确实觉得,当它们在LINQ之外使用时,它们会以牺牲可维护性为代价提高可读性。
拿
然而,作为程序员,我们也对后代负责,而那些在我们之后的人将花费大部分时间试图理解这段代码是如何工作的。我们必须小心,不要过于表达,以至于调试代码需要在无数扩展方法之间来回切换。 扩展方法掩盖了“如何”来更好地表达“什么”。我想这使它们成为一把双刃剑,最好(像所有东西一样)适度使用。 |
|
|
2
6
首先,我的直觉:
问题:是
通过using语句“通常”引用的命名空间只影响类型,现在它们突然决定了什么
所以最好的办法是“不要让他们逃跑”。
|
|
|
3
5
就我个人而言,我喜欢int.To,我对int.Days感到矛盾,我不喜欢TimeSpan。从现在开始。 我不喜欢我所看到的“流畅”接口的流行,这种接口允许你编写伪英语代码,但通过实现具有孤立名称的方法来实现。 例如,这对我来说读起来不太好:
显然,这是一件主观的事情。 |
|
|
4
1
在这个问题上,我同意西施的观点,并倾向于保守派。Rails内置了这种东西,所以它从来没有那么令人困惑。当你编写“days”和“fromnow”方法时,并不能保证你的代码没有bug。此外,您正在向代码添加依赖项。如果将扩展方法放在自己的文件中,则每个项目都需要该文件。在项目中,您需要在需要时包含该项目。 尽管如此,对于非常简单的扩展方法(比如Jeff对 "left" 或者这是att在其他框架/世界中使用days.fromnow的用法,我认为这没问题。任何熟悉日期的人都应该理解“3.days().fromnow()”的意思。 |
|
|
5
0
我站在保守的一边,至少目前是这样,我反对扩展方法。对我来说,语法糖并不那么重要。我认为对于初级开发人员来说,如果他们是C#新手,这也可能是一场噩梦。我宁愿将扩展封装在我自己的对象或静态方法中。 如果你打算使用它们,请不要过度使用它们,以免给自己带来方便,但会惹恼任何接触你代码的人。 :-) |
|
|
6
0
每种语言都有自己的 观点 关于语言应该是什么。Rails和Ruby的设计都有自己非常不同的观点。PHP和C(++/#)有明显不同的观点。..Visual Basic也是如此(尽管我们显然不喜欢他们的风格)。 平衡在于拥有许多易于阅读的内置函数,而不是对一切的实质性控制。我不希望有太多的函数,以至于每次你想做任何事情时都必须去查找(而且臃肿的框架肯定会有性能开销),但我个人喜欢Rails,因为它为我节省了很多开发时间。 我想我在这里要说的是,如果你正在设计一门语言,那么就要表明立场,从那里开始,构建你(或 你的目标开发人员最常使用 . |
|
|
7
0
我个人的偏好是现在谨慎使用它们,并等待微软和其他大型组织如何使用它们。如果我们开始看到很多代码,教程和书籍都会使用像3.Days()这样的代码。FromNow()经常使用它。如果只有少数人使用它,那么你就有可能让你的代码过于难以维护,因为没有足够的人熟悉扩展的工作原理。 另外,我想知道普通for循环和foreach循环的性能如何比较?第二种方法似乎会给计算机带来很多额外的工作,但我对这个概念还不够熟悉,无法确定。 |
|
cluster1 · 采取独立的新行动的好处是什么? 1 年前 |
|
|
Robert · 使用JSON或哈希时,将NULL替换为NIL 1 年前 |
|
|
Fred Willmore · Rails控制器不呈现任何模板 2 年前 |
|
|
Diogo Amaral · 实现API请求的正确方式 2 年前 |
|
|
Meknassih · 在控制器方法中分配给模型没有任何作用 2 年前 |
|
|
Michael Ding · Rails上的默认会话到期问题 2 年前 |
|
|
Flávio · 基于另外两个生成数组 2 年前 |