Coding style ";可拨电话“;功率原理(aka?)

Coding style ";可拨电话“;功率原理(aka?),coding-style,solid-principles,grasp,Coding Style,Solid Principles,Grasp,作为一名设计师,我喜欢提供满足电源/简单性平衡的接口。例如,我认为LINQ设计者遵循了这个原则,因为他们提供了点表示法和查询表示法。第一个更强大,但第二个更容易阅读和理解。如果您不同意我对LINQ的评估,请尝试理解我的观点;LINQ只是一个例子,我的帖子不是关于LINQ的 我把这个原理称为“可拨电源”。但我想知道别人怎么称呼它。当然有人会说“吻”是一个常见的术语。但我认为亲吻是一种超集,或者说是一种“消费主义”行为。再次以LINQ为例,在我看来,一个总是尝试使用查询符号而不是点符号的程序员团队正

作为一名设计师,我喜欢提供满足电源/简单性平衡的接口。例如,我认为LINQ设计者遵循了这个原则,因为他们提供了点表示法和查询表示法。第一个更强大,但第二个更容易阅读和理解。如果您不同意我对LINQ的评估,请尝试理解我的观点;LINQ只是一个例子,我的帖子不是关于LINQ的

我把这个原理称为“可拨电源”。但我想知道别人怎么称呼它。当然有人会说“吻”是一个常见的术语。但我认为亲吻是一种超集,或者说是一种“消费主义”行为。再次以LINQ为例,在我看来,一个总是尝试使用查询符号而不是点符号的程序员团队正在练习KISS。因此,LINQ的设计师实践“拨号电源”,而LINQ的消费者实践接吻。这两个人一起演奏优美的音乐

编辑我再举一个例子。设想一个具有两个签名的测井工具,允许两种用途:

void Write(string message);
void Write(Func<string> messageCallback);
拥有这些重载表示“可拨电源”,因为用户可以选择简单的接口或功能强大的接口。喜欢接吻的消费者大多数时候会使用更简单的签名,并且在需要电源时会允许“忙碌”的签名。这也有助于自我记录,因为使用强大的签名告诉读者代码对性能至关重要。如果记录器只有强大的签名,那么就没有“可拨电源”

所以这是一个完整的循环。我很乐意保留我自己的“可拨电源”硬币,如果还没有的话,但我忍不住认为我错过了这个实践的一个明显的名称

p、 另一个与“拨号电源”相关但与“拨号电源”不同的例子是Scott Meyer的原则“使接口易于正确使用,而不易错误使用”

我称这一原则为“可拨” 权力”。但我想知道是什么 其他人叫它

我个人从未听说过“可拨电源”,我认为这不是一个行业标准术语

对于LINQ,我们将其设计称为

Fluent接口的设计使得对象上的所有方法都返回与该对象相同的类型,从而使方法链接变得容易。您可以在重载中看到相同的流畅设计,以及

对于JQuery,它还使用流畅的接口进行方法链接,但我认为“query”或“DSL”是其选择器符号的正确名称

(使用相同的术语,但描述完全不同的内容。)

由于它被描述为一个查询DSL,大多数人可以推断它接受一个序列作为输入,并返回一个序列作为输出。查询表示法执行与XPath大致相同的功能,但有更多的细节

Hibernate是一种在许多SQL方言之上的查询DSL,从表面上看,正则表达式是一种查询DSL,它将字符串序列转换为一组新的字符串序列(原则上,您可以创建一个字符串序列,但它可能会让您睁大眼睛)。

如果您的“拨号盘”只有两个位置/级别,听起来你只是在说一个。

“渐进式披露。”

您可能已经熟悉了这个术语,因为它用于用户界面——例如,“更多”按钮。然而,这一概念更为笼统

来自Lidwell、Holden和Butler的“设计的普遍原则”:

   Progressive disclosure involves separating information into 
   multiple layers and only presenting layers that are necessary or relevant. 

我会称之为“健壮的API”,但我怀疑这可能过于笼统,无法命名您的特定模式。这是一个不错的问题,但它属于程序员IMHO。我以前读过(但我不记得在哪里读过)微软将这一原则描述为“让最有用的[功能]变得简单,其他[功能]成为可能”。我模模糊糊地记得这个原则提到了90%和10%的数字来代替“功能”。是的,点符号是一个流畅的API,这是肯定的。它本身并不是我所说的拨号电源。事实上,有两种方式(fluentapi和查询表示法)更符合我的想法。
   Progressive disclosure involves separating information into 
   multiple layers and only presenting layers that are necessary or relevant.