什么是自制软件?
我经常看到有人说某些软件“非常有见地”,或者微软倾向于写下“无视”的框架。 这实际上意味着什么?
如果一个框架是自以为是的,它会锁定或引导你进入自己的行事方式。
例如:有些人认为模板系统不应该提供对用户定义的方法和函数的访问,因为它使系统保持打开状态以返回原始HTML。 所以一个有见地的框架开发人员只允许访问数据结构。 通过设计,该软件限制并鼓励设计师按自己的方式行事。
另一个例子(来自信号链接)是wiki的。 维基的设计师有很多意见。 他们认为HTML对于人们来说太复杂了,所以他们想出了他们认为更新内容的更自然的方式。 他们也剥夺了花哨的设计,因为他们觉得重点应该放在内容上而不是设计上。
苹果在设计产品时有强烈的意见。
无心的软件设计更像PERL / PHP。 它允许开发人员和相信开发人员做出正确的决定并将更多控制权交给他们。
我也会把微软放在没有意见的专栏里。 一个微不足道的微软框架的好例子: .NET
。 通过打开CLR和规范,它将它打开成各种语言和实现方式。
意见的软件意味着基本上有一种方法( 正确的方式 )来做事情并尝试以不同的方式做到这一点将是困难和令人沮丧的。 另一方面,采用正确的方式 ™可以使软件开发变得非常容易,因为必须减少的决策数量减少了,而且软件设计人员专注于软件工作的能力也得到了提高。 如果你的问题很好地映射到解决方案,如果做得好,意见软件可以很好用。 解决您的问题中未映射到所提供工具的那些部分可能是一个真正的痛苦。 这里的一个例子就是Ruby on Rails。
另一方面,非观点化的软件给用户(开发者)留下了很多灵活性。 它不禁止解决问题的一种方法,但提供了可用于以多种方式解决问题的灵活工具。 这个缺点可能是因为这些工具非常灵活,所以开发任何解决方案可能相对困难。 用户(开发人员)可能需要手动编码更多的解决方案,因为该框架没有提供足够的帮助。 您还必须考虑更多关于如何提供解决方案的问题,而平庸的开发人员最终可能会因为购买某些自以为是的软件而导致较差的解决方案。 PERL可能是非褒贬不一的软件的典型例子。
我的理想是一个没有意见的框架,但有一个强大的约定。 我会把ASP.NET MVC放在这个类别中。 实际上,所有软件都有一定程度上的自我评估(虽然可能不是PERL)。 MVC在选择模型方面有很强的约定,但是提供了许多不同的方式来解决这些约定中的问题。 其中一些方法甚至可能会破坏模型。 然而,按照在这样的框架下开发的惯例正确使用可能是一种真正的快乐。
它基本上是软件,它的作者认为它应该工作,而不是试图取悦每个人。 这意味着很多人不会喜欢它,但那些做的人会喜欢它。
Rails可能是一个自以为是的框架的典型例子:你以他们的方式行事,一切都很顺利。 如果你不这样做,你会有些痛苦。 但是没关系 - 如果你不想用自己的方式做事,你不想使用Rails。
链接地址: http://www.djcxy.com/p/20683.html上一篇: What is opinionated software?
下一篇: What are five things you hate about your favorite language?