在课堂上,我们学习各种软件开发方法。我们关注并用于开发项目的方法是瀑布方法。
您可能已经学习了经典的Waterfall模型,该人从一开始就将其介绍给软件开发人员,这被认为不适合开发大型软件系统。您可能会对阅读Winston Royce的论文《管理大型软件系统的开发》感兴趣,以了解更多有关许多人认为是瀑布模型的问题的信息。
但是,瀑布模型非常适合教您进行软件开发的整个生命周期,并且可以花费时间来学习和执行需求工程,体系结构设计,详细设计,实现,测试和维护的过程非常清晰,不同。
在我们的类图中,我们必须列出所有属性和方法,包括私有属性和方法。我读过几本书,即“清洁代码”,该书说,要使功能尽可能简短和集中。如果它们不能帮助其他开发人员列出所有小功能,这似乎很麻烦(它们是私有的,没有其他人可以使用它们)。另外,在设计程序时,我可能不会想到每个微小的功能,在重构时它们可能会出现。
这些都是非常有效的观点。
列出设计阶段中的所有属性和方法,即使在使用Waterfall时,也可能会过大。您绝对应该列出所有公开的内容以及基本属性。实际上,其他所有内容都是实现细节,您可以通过将实现反向工程到图中来获得。
Clean Code的建议(我从未读过-我只是按照您发布的内容)似乎是公平的,并且即使在使用Waterfall方法时也适用。您可以根据“ 单一职责原则”,关注点分离和SOLID的其他原则设计类和方法。Waterfall不会告诉您如何设计,只是在您需要进行设计时。就是说,在您学习和思考在实施过程中实现此目标的更好方法时,这很困难。
我认为这指出了一个事实,即设计和实现之间必须非常清楚地进行迭代,这是传统的Waterfall无法解决的问题。