当设计赶上实施时避免残酷

时间:2009-06-02 16:18:29

标签: agile implementation

我是一名承包商,我经常参与项目,以便在最后期限前实施功能。虽然我的速度比基础设计的速度快,但通常情况下。因此,在等待最终设计时,我经常需要创建功能/方法以初步方式执行任务。

例如,目前我的任务是以对当前数据库设计来说太复杂的方式执行某些记录的默认排序(实际上我使用MySQL的“字段”功能,除了我不认为Java / Hibernate支持它)。因此,我创建了一个函数,其中记录可以在应用程序级别进行排序,一旦完成必要的数据库设计工作,就可以重新实现或完全避免。

我担心的是,一旦完成所有必要的设计(一般和/或特别是关于上面概述的情况),我不想留下可能不必要的功能/方法的痕迹。有时它们可​​能会增加设计的价值,但有时它们最终可能会成为一个不必要的间接层。

我应该如何关注这一点?我该怎么做才能缓解这种情况?通常是非常短期承包商,我通常没有时间或权力来实施诸如“战略模式”之类的东西,如果我真的负责,这可能是我的倾向对于整体设计。

1 个答案:

答案 0 :(得分:2)

我认为随着代码库的发展,预计会有一定的瑕疵。即使你试图系统地删除旧的未使用的代码,也很难将其删除。在我的系统中找到我可以删除的未使用的代码总是令人满意。

强打字是你的朋友,因为它允许你以比弱打字更好的方式跟踪类型和用法。因此,远离那些字符串数据类型,它们会使清理变得更加困难。

一个非常巧妙的技巧是,如果您可以通过同时运行代码覆盖工具的测试系统重播生产系统的24小时流量。这通常是死代码的金矿,但是很难找到时间处理如此大量的清理以及其他优先事项;)