程序员是抽象思维方面的专家。对于编程而言,方法是通过不同的执行路径的一般规范;类是对象的一般规范;超类是许多类的一般规范。 虽然我们的大脑具备抽象思维能力,使具体的思维方式更加自然,具体的例子是抽象的基础。比如,如何告诉孩子汽车是什么?你不能说:汽车是四个轮子的机动车辆用来运输乘客。相反,你应该指着汽车并说:“看,汽车!”当孩子看过几辆车之后,在他的心里已经清楚地知道汽车是什么样了。 很显然,通过例子就能清楚表达出意思 爱因斯曾说例子不是另一种教学方式,而是唯一的一种教学方式。通过几个示例比利用其他方式更加易于推广。比如,在描述抽象之前,首先你会在大脑中尝试通过可视化的示例来进行理解。 对于编程我们应该做什么呢? 作为程序员,我们在抽象思维方面有高超的技能以及文本编程语言,但是当编码变得太复杂时,我们会试图通过想象它的行为来进行理解;当它变得很难以致无法通过阅读抽象代码来进行想象的实际执行,那么我们会通过日志记录已发生的事情或是在调试器中运行代码。日志和调试并不是抽象的,它们具体描述了已发生的事情,将信息称为对象实例和变量值。这时,这个具体的信息比抽象代码更加易于理解。 我们可以将编程想象成更接近于我们的头脑的工作原理,比如使用示例。单元测试就是执行此操作的一种方法,单元测试的代码可以执行操作示例,使用规范示例(即测试用例,是一种通过例子来表达需求的规范形式)作为需求已逐渐称为一种潮流趋势。这不仅提高了用户、 分析师、 程序员和测试人员之间的沟通,这些示例还可以自动化测试,连接代码。 对象是类的示例 那么,什么才是制定示例的最好方法呢?我认为最有效的方式是用户界面草图和对象。用户界面是解释程序的外部行为的最好方式,而对象常被用来描述内部行为。 我不认为技术对象是基础设施的一部分,但是最终用户还是能理解域对象的。我们可以将对象指定为在表或图表中的文本。图表是最容易理解的,但是绘制和编辑起来会很麻烦。 下面这个是图表对象示例,代表的意思很直观: 如果Lars把车卖给了John(在表中或是作为文本指定相同的信息),这里的对象应该改为这样: 作为对象的模型示例是创建域模式最有效的方式,示例相互一致有助于显示细节及缺少的功能。对于程序员而言,这是一种规范,因为它们是具体的且包含了许多细节,它们可轻易的自动化测试。 支持工具: 我相信,使用示例和对象是未来的编程趋势,因为它是更接近于我们的头脑的工作原理。 目前,我已经Groovy这款工具。你可以在Groovy执行应用程序,这是一个能够运行在Java平台上的动态语言,能够帮助你通过屏幕上的草图和对象示例编写规范。该工具可进行验证程序测试示例。有关该工具的更多详细信息,请点击这里。 由上所述,使用示例和对象是未来的编程趋势,你赞成吗? 英文出自:Larsho |