让我来给你们讲一个故事:当我在大学的时候,我选了一门“高级”面向对象编程课程。以前从来没有接触过这种知识,这个课程使用SmallTalk这种语言教学,而且教学方式非常特别;第一天,教授给我们布置了一个将会贯穿整个4周课程的作业。 我们非常兴奋,因为这是要编写一个游戏。一个老式的文字输入式的冒险游戏,类似于Zork风格。我们分成3人一组,来到教授拥挤的小屋里。在那里,教授给了我们一页纸,上面写着一些说明。从那里返回时我们几乎是一路小跑。 而就在我们刚要出门时,教授把我们叫了回去(我相信他是特意选了这个最佳时机):
我跟很多的软件开发团队(包括一些软件产品创始人)说过这个故事,他们的反应几乎都一样:
问题就在于,教授并没有告诉他将会做什么样的修改。只是说会修改一些东西——两周后。 你认为我们该如何去完成这个任务? 我们开发时处处设防。
这就是我们的做法。我最想说的是,这是一个非常好的作业任务,它让我在面向对象编程和Smalltalk方面学到了很多。感谢你,我们的Davidson教授! 最终,我们做成了一个非常模块化的系统,这使对它们的修改变得很容易。当那一天终于到来,当游戏设计被修改后,我们通过努力在一天内就按照要求修改了程序,使我们能顺利的接着开发界面和怪兽等很酷的部分。 我们为以后的改变而优化系统。因为Davidson教授告诉我们变化很快就会来到。 |