Answers:
您可能会得到尽可能多的不同意见。但是这是我的观点。
对于初学者来说,超过5000行代码是非常小的项目。现在,您如何设计不断增长的项目。首先,您设计系统而不是代码。代码实际上是体系结构的第二位。从支持最小电流要求开始。画一些简单的组件图。我个人喜欢UML,但是任何视觉效果都很好。理想情况下,您希望在此处遵守良好的设计规范(界面,关注点分离等)。
一旦您在设计中支持最低要求,就对其进行编码。同样,请尝试遵守良好的编码惯例。
之后,随着新需求的出现,迭代地添加更多功能。理想情况下,您也要更新设计。
根据我的经验,重要的是不要在不存在现有需求的情况下设计系统。否则,您的项目将很快增长,并在短时间内变得非常复杂。再次-坚持良好做法,并从当前的具体要求开始。
流程图,类图,用例图是大型项目的必备图。搜索并选择所需的外部库,并搜索可以使用的任何类似开放源代码(以学习和减少开发时间)。
我建议您购买白板,一些彩色磁铁和便利贴。这将帮助您确定任务。
ps 5000+代码行不是“大”的。CMS /论坛软件拥有超过5000多个代码行。
我将创建包图和类图。在包装图中,我希望以逻辑方式对类和接口进行分组。我也想创建内部包等。
但是首先,您需要考虑程序应该做什么。您可以创建用例图或手动进行。我使用类图手动进行操作,因为我更喜欢立即获取代码,以后更容易交换到包类图。使用类图给了我我的java。如果我不喜欢它,则可以手动更改它。新代码会自动更新到我的图表中。我对代码进行了可视化的高级更新表示。确实很有帮助,因为即使我编写代码,我也总是可以花几分钟时间以图形方式查看项目的运行方式。我只是手动将实体拖放到正确的程序包中以进行组织。我认为我的代码使用更高级别的抽象包和类图会更好。
(来源:ejb3.org)
我的一些同事说我的工作方式很糟糕。...但是我喜欢它:-)
绝对是 我有一块小的“平板”干擦板,可用于此类操作,但请使用您喜欢的任何东西。重要的是,您可以轻松地将自己的想法下沉,并了解所有事物如何融合在一起的全局。
有些人喜欢更正式的计划,例如UML图,但是我觉得追赶微观管理每种方法的模样太容易了。但是,请再次使用您喜欢的任何东西。
编辑:您可能也对识字编程感兴趣。这个想法是,您可以计划所有事情并逐渐变得更具体。例如,您可能会说您的程序包括:
然后,您可以完善将文本转换为图像的想法。因此可能看起来像:
然后,您可能会改进选择随机颜色的想法,不久之后您将只编写常规代码。
对我而言,软件开发活动是一系列逐步细化的设计,用于解决特定问题。当您对要构建的内容有一个总体的了解时,您的设计可能会非常高级,例如“将有一个与SQL数据库和多个Web服务对话的Web应用程序”或类似的东西。然后,当您深入研究每个零件的细节时,您会在设计中获得更细粒度的信息。根据解决方案的复杂性,设计工作将进行更多或更少的迭代。最后的迭代涉及创建实现更高级别设计的实际代码。
对我来说,架构和设计之间的差异很小,它们只是我上面描述的过程的不同迭代。两者之间的界线是模糊的,并且因人而异。
确定要进入哪个级别的设计细节,针对应用程序的哪些部分以及项目生命周期中的哪些点是一种技巧。对于高风险,高复杂度的项目,在编写代码之前,您可能需要进行非常详细的设计。对于较小的项目,您可以花很少的时间进行前期设计,而只是敲出一些代码,然后看看有什么不可行的地方,然后重新设计那些区域,就可以摆脱困境。这里不仅有一个书面答案。通常,它介于这两个极端之间。
我有一篇博客文章,讨论了我在接近体系结构时使用的一些原则。按照这些思路进行思考可能对您有所帮助。某些文章专门针对.NET,但大多数并非如此。