【问题标题】:What does this software quote mean?这个软件报价是什么意思?
【发布时间】:2010-10-31 22:02:20
【问题描述】:

我正在阅读 Code Complete(第 2 版),并在第 87 页页边空白处看到 Bertrand Meyer 的一句话。

先不要问系统做什么;问它有什么用!

Meyer 先生试图在这里表达的究竟是什么。我有一些粗略的想法,但我想确保我真的理解。

【问题讨论】:

    标签: quotes


    【解决方案1】:

    ...所以这是the second fallacy of teleology - 归因于目标导向 对不存在的事物的行为 目标导向,甚至可能没有 认为事物是有生命的 精神居住,但只会思考,X 发生是为了 Y。“为了” 是精神语言,即使 它似乎没有明目张胆地命名 精神属性,如“恐惧”或 “认为它可以飞”。 — Eliezer Yudkowsky,人工智能理论家 关注具有稳定目标系统的自我改进人工智能

    Bertrand Meyer 的讲道表明,关于系统的合理推理基于了解系统改变了哪些具体实体;改动的目的是一个紧急属性。

    【讨论】:

    • 感谢您的链接。我还在消化这一切。但这就是为什么 Bertrand Meyer 甚至觉得有必要首先指出这样的事情的根源。
    • 感谢您提醒我为什么“人工智能”研究会一直过时 - 当人们突然从充满行话的自命不凡的华夫饼中看到实际表达的琐碎想法时,就会发生这种情况。
    【解决方案2】:

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

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

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

    有了这两个“基线”,您将更好地准备组织一个系统来实现您的目标,以便对数据的操作得到很好的理解和意义。

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

    【讨论】:

    • 啊,谢谢。这与我推断的轨迹相同,但放置得更优雅,更容易反思。谢谢。
    【解决方案3】:

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

    Bertrand Meyer 举了一个例子 工资单程序,它产生 来自考勤卡的薪水。管理 以后可能想扩展这个程序 产生统计数据或税收 信息。工资单功能 本身可能需要更改为 产生每周检查而不是 例如,双周检查。这 用于实施的程序 原来的工资计划需要 更改为使任何这些 修改。迈耶指出,任何 这些工资计划将操纵 同一种数据,员工 记录、公司规定等 向前。

    专注于更稳定 在此类系统方面,Mayer 指出 原则:“不要先问什么 系统做:问它做什么!"; 和一个定义:“面向对象 设计是导致 基于软件架构 对象每个系统或子系统 操纵(而不是“的” 它旨在确保的功能)。”

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

    另见Object-Oriented Design

    【讨论】:

      【解决方案4】:

      我的观点是,引用是一种在你的软件中找到好的抽象的方法。这句话旁边的文字涉及寻找真实世界的对象来设计你的类。

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

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

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

      【讨论】:

        【解决方案5】:

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

        “给我看你的流程图并隐藏你的表格,我会继续被迷惑。给我看你的表格,我通常不需要你的流程图;它们会很明显。”

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-05-20
            • 1970-01-01
            • 2011-04-11
            • 2018-10-29
            • 1970-01-01
            • 1970-01-01
            • 2017-05-25
            • 2010-10-03
            相关资源
            最近更新 更多