代码之家  ›  专栏  ›  技术社区  ›  Matthew Vines

这个软件报价是什么意思?

  •  2
  • Matthew Vines  · 技术社区  · 15 年前

    我正在阅读《代码全集》(第二版),在第87页的页边空白处看到了Bertrand Meyer的一段引语。

    不要先问系统做什么;问问它对什么有影响!

    迈耶先生到底想表达什么意思。我有一些粗略的想法,但我想确保我真的理解。

    6 回复  |  直到 11 年前
        1
  •  3
  •   Thomas L Holaday    15 年前

    ... 所以这是 the second fallacy of teleology 对不存在的事物的行为 目标导向,甚至可能没有 灵魂居住,但只有思想,X 是心灵主义的语言,即使 精神属性,如“恐惧”或 “认为它能飞”- Eliezer Yudkowsky,人工智能理论家

    Bertrand Meyer的说教表明,关于系统的合理推理是基于知道系统改变了哪些具体实体;这个 这些变更中的任何一项都是紧急财产。

        2
  •  2
  •   njsf    15 年前

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

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

    有了这两条“基线”,您将更好地准备组织一个系统,以实现您的目标,从而更好地理解和理解数据操作。

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

        3
  •  1
  •   Eugene Yokota    15 年前

    Computing With C# and the .Net Framework

    Bertrand Meyer举了一个例子 工资单程序,产生 考勤卡上的工资单。经营 以后可能要扩展此程序 统计或纳税 可能需要将其自身更改为 每周检查一次,而不是 最初的工资计划需要 可以更改为制作这些文件中的任何一个 修改。迈耶指出,任何 向前地

    在这类系统方面,Mayer指出 系统做什么:询问它做什么!"; 还有一个定义:“面向对象” 设计是导致 基于 对象每个系统或子系统 它意味着确保的功能。”

    我们今天认为UML的类图和其他OOAD方法是理所当然的,但这是一个在过程中被“发现”的东西。

    也看到 Object-Oriented Design

        4
  •  0
  •   Jorisslob    15 年前

    我的观点是,引用是为了在软件中找到好的抽象。这句话旁边的文字是关于寻找真实世界的对象来设计类的。

    一个简单的例子如下:

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

    当然,如果您试图建模的对象没有本例那么清晰,那么这句话更有意义。

        5
  •  0
  •   starblue    15 年前

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

        6
  •  0
  •   Charles Bretana    15 年前

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