看看软件开发的酷新原则:
敏捷
你不需要它
减少作为竞争优势
行为驱动的发展
过早优化的邪恶
新方法似乎是潜入并编写实现范围目标的第一次迭代所需的内容,并根据需要进行重构以获得优雅的解决方案.您的代码库逐渐增长,并且从未有过大规划/分层设计阶段.对我来说,这表明软件设计(虽然它是值得的)已被归入重构,因为这是优雅代码的来源,而不是功能的增量添加.
我错了吗?
好吧,重构的麻烦在于你先跳进去之前需要先了解好设计.BDD/TDD应该让设计出现但没有其他因素,比如领域知识和技术能力,你最终会遇到麻烦.
我会说你按照你描述的方式做这件事就是灾难,我仍然建议你先做整体设计.当然在项目期间你需要改变设计,它永远不会一成不变,灵活性是必须的!(这就是重构必须进入的地方).我还建议在开始编码之前对模块进行更详细的设计.
但是,坚实的通用设计在黄金方面是非常重要的:它为所有开发人员提供了一个共同的基础,从中可以开始,一个共同的想法,或者可能是目标的愿景.
没有这一点,每个人都会像他/她认为最好的那样做,结果是每个人都以不同的方式做事.突然之间你必须进行很多重构,只是为了让每个人都与应用程序架构的结合.结果代码......不是很优雅.