这个软件引用的含义是什么?

时间:2009-06-06 20:07:52

标签: quotes

我正在阅读Code Complete(第2版),并在第87页由Bertrand Meyer发现了一个报价。

  

首先询问系统的功能;问这是做什么的!

迈耶先生试图在这里得到什么。我有一些粗略的想法,但我想确保我真的明白。

6 个答案:

答案 0 :(得分:3)

  

......所以这是the second fallacy of teleology    - 归因于目标导向   对没有的事情的行为   目标导向,也许没有   把事情想象得充满活力   精神居住,但只有思考,X   发生在Y.“为了”   是心灵语言,即使   它似乎没有公然命名   精神财产,如“可怕”或   “认为它可以飞”。 - Eliezer Yudkowsky,人工智能理论家   关注具有稳定目标系统的自我改进AIs

Bertrand Meyer的讲道表明,对系统的合理推理是基于知道系统改变了哪些具体实体;改变的目的是一种新兴财产。

答案 1 :(得分:2)

我认为这里的重点不在于系统的功能,而在于它运行的数据以及这些操作是什么。

这提供了两个主要的思维转变:

  • 您首先想到数据和概念
  • 您考虑对该数据的操作

有了这两个“基线”,你就会更好地组织一个系统来实现你的目标,这样就可以很好地理解数据操作并使之有意义。

实际上,他正在奠定基础,能够在你编写的代码上写下“合同”。

答案 2 :(得分:0)

我的观点是,引用是一种在软件中找到良好抽象的方法。此引文旁边的文字涉及查找设计类的真实对象。

一个简单的例子是这样的:

您正在为银行制作软件。由于您的软件正在使用银行帐户,因此应该有一个帐户类。然后,您开始考虑帐户具有哪些属性以及您可以与帐户进行的互动。

当然,如果您尝试建模的对象不像这种情况那样清晰,那么这句话会更有意义。

答案 3 :(得分:0)

从Google搜索中,它选择了Art Gittleman的Computing With C# and the .Net Framework

  

Bertrand Meyer举了一个例子   工资计划,产生   来自时间卡的薪水。管理   可能以后想扩展这个程序   产生统计或税收   信息。工资单功能   本身可能需要改为   产生每周检查而不是   例如,双周检查。该   用来实现的程序   原始工资计划需要   改变以做出任何这些   修改。迈耶注意到任何一个   这些薪资计划将会操纵   同样的数据,员工   记录,公司规定等   向前。

     

专注于更稳定   在这样的系统方面,梅耶说   原则:“先问问不是什么   系统做:问它做什么!“;   和定义:“面向对象   设计是导致的方法   基于Web的软件体系结构   对象每个系统或子系统   操纵(而不是“the”   它的意思是确保)。“

我们今天认为UML的类图和其他OOAD方法是理所当然的,但它是在路上被“发现”的东西。

另见Object-Oriented Design

答案 4 :(得分:0)

弗雷德布鲁克斯就是这样说的:

“告诉我你的流程图并隐藏你的桌子,我将继续神秘化。告诉我你的桌子,我通常不需要你的流程图;它们会很明显。”

答案 5 :(得分:0)

域驱动设计......了解软件旨在解决的问题。系统操纵什么“域”实体(数据抽象)?它对那些域实体有什么作用?