2

我需要重写旧的遗留桌面应用程序。它是一个小型的非 Java 桌面程序,仍然支持多个内部用户社区的日常任务。

应用程序已过时且不再受支持的语言。我是初级开发人员,我需要重写它。为了避免应用程序重写陷坑,我计划开始使用现有的数据库和数据结构(有一些重大限制,但与重构一样痛苦,这种方法将更快地完成初始工作,并且避免迁移,这两者都是成功的关键)。

我的挑战是我对保持简单的概念非常矛盾。我知道这是在谈论功能,而不是设计。但是当我打算编写这个应用程序时,似乎在坚持良好(但非“四人组”)的情况下,可能会花费大量时间来追踪设计模式(特别是我真的在依赖注入方面苦苦挣扎)设计可以更快、更简单地完成工作。

这个应用程序会成长并存在很长时间,但它永远不会成为一个拥有 400 万行的企业庞然大物,并且它的对象不会被另一个应用程序使用(是的,我知道,但是如果......YAGNI !)。

问题

KISS 是否适用于建筑和设计?“稍后重构”规则是否可以扩展到说,例如,“我们稍后会回来进行依赖注入”,或者如果项目没有融入所有所谓的关键,那么项目是否注定要失败立即支持框架?

我想“正确”地做到这一点......但它也必须完成。如果我让它太复杂而无法完成,无论设计如何,它都会失败。

4

2 回答 2

1

我想说 KISS 当然适用于建筑和设计。

在我的经验中,过度架构是一个常见的问题,并且有一种相关的代码异味:

人为的复杂性

强制使用过于复杂的设计模式,而简单的设计就足够了。

如果使用更高级的设计模式、范式或架构不适合您的项目规模,请不要强求。

您必须权衡架构的潜在成本与潜在的节省......但还要考虑早日实施它所节省的额外时间。

于 2012-11-20T19:35:57.317 回答
1

是的,KISS,但请参阅http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351并考虑以小步骤重构设计模式。代码应该有点告诉你该怎么做。

于 2012-11-20T19:44:08.183 回答