我经常看到有人说某些软件“非常固执”,或者微软倾向于编写“不固执”的框架。这实际上意味着什么?
如果一个框架是固执己见的,它会锁定或引导你进入他们的做事方式。
例如:有些人认为模板系统不应该提供对用户定义的方法和函数的访问,因为它使系统可以返回原始 HTML。因此,固执己见的框架开发人员只允许访问数据结构。通过设计,软件限制并鼓励设计师按照他们的方式做事。
另一个例子(取自信号链接)是wiki。wiki的设计者有很多意见。他们认为 HTML 对人们来说太复杂了,所以他们想出了一种他们认为更自然的更新内容的方法。他们还去掉了花哨的设计,因为他们认为应该更多地关注内容而不是设计。
苹果在设计产品时有强烈的意见。
无主见的软件设计 更像是 PERL/PHP。它允许开发人员并信任开发人员做出正确的决定并将更多的控制权交给他们。
我也会将微软放在非自以为是的专栏中。Microsoft 框架的一个很好的例子,它是 unopininated .NET:. 通过打开 CLR 和规范,它向各种语言和实现风格开放。
.NET