抛出软件永远不行吗?
Joel 总结说,公司永远不应该抛弃软件.
我试着成为一个优秀的小程序员并遵循这条规则.我已经进入了一个由一个人经营的五年历史的项目.它充满了反模式,通常设计不佳.大多数问题来自具有内联动态SQL的数据层.
专业人士:用户熟悉此应用程序的工作方式,并熟悉它的错误.建立了需求,但是存在一些潜在问题导致用户质疑应用程序的整体可靠性.
Con:反模式,强耦合,内联SQL,不可能的数据层.
我可以重新收集需求并使用OO,设计模式和现代.NET技术构建这个应用程序.易于管理和可饮用.
在小型应用程序中,如果出现这些问题,我们应该遵循Joel的建议吗?
这个问题可能因为主观而被抛弃,但我发现这对我作为程序员的工作至关重要.
Joel所得到的是,如果你把所有东西都扔掉并从头开始,你就会抛弃多年的工作而不保证重写会比现有的要好得多.
而不是专注于重写,考虑一次重构一个应用程序的实用性.而不是内联SQL,或许可以考虑创建一个新的数据层,可能是基于"更好"的方法,如LINQ.然后,您可以一次迁移到该新图层一个函数.通过这种方式,您将向前迈向更好的代码库目标,而不必丢弃多年以前的工作.
我的建议是这样的.如果它有效,请不要弄乱它,直到您的应用程序中的下一个重要版本.然后你认为必要的重构.我们在公司面对同样的事情,我们通常按照我描述的方式处理问题.
不丢弃旧代码或坏代码,或不再丢弃相关代码,IMO是荒谬的.除非代码中的关键部分根本无法轻易复制.