我现在已经遵循Scrum、TDD、领域驱动设计和Uncle Bob的指导方针工作了一年,但我对我们是否应用了各种原则有些疑问,特别是在阅读Martin系列中的《Java应用架构》(JAA)时。如果我错了,请纠正我!(希望我错了)
问题从TDD和Scrum开始,它们认为我们应该根据需求逐步演进系统,避免预先设计。这使我留下所有可扩展点,总是滥用各种可扩展性模式。这确实有一个“黑暗面”:给整个系统添加复杂性。我不知道我的代码的某个部分是否需要进一步发展。
但是,正如到处正确地指出的那样(并且在JAA上非常频繁),只有在需要时才应该添加复杂性。我认为这意味着应该进行适当的前期分析...与其他指导方针相冲突...
因此,循环...啊啊啊,我讨厌循环依赖!
在“确认”功能后,我们应该重构以减少复杂性吗?我们应该使用允许的最简单方法,并仅在需要时扩展它吗?例如,在不需要它们时不要构建超级解耦的东西?
(欢迎提出改进问题风格和内容的建议,我是stackoverflow上的新手)
问题从TDD和Scrum开始,它们认为我们应该根据需求逐步演进系统,避免预先设计。这使我留下所有可扩展点,总是滥用各种可扩展性模式。这确实有一个“黑暗面”:给整个系统添加复杂性。我不知道我的代码的某个部分是否需要进一步发展。
但是,正如到处正确地指出的那样(并且在JAA上非常频繁),只有在需要时才应该添加复杂性。我认为这意味着应该进行适当的前期分析...与其他指导方针相冲突...
因此,循环...啊啊啊,我讨厌循环依赖!
在“确认”功能后,我们应该重构以减少复杂性吗?我们应该使用允许的最简单方法,并仅在需要时扩展它吗?例如,在不需要它们时不要构建超级解耦的东西?
(欢迎提出改进问题风格和内容的建议,我是stackoverflow上的新手)