我不确定是否可以就该主题提供一般建议,但请尝试。很难解释我的情况,因为它太复杂了。这正是问题所在。

我似乎经常遇到这样的情况:我尝试设计项目的某些部分,但它有太多的事情需要考虑,以至于我无法掌握它。

对于如何一次以较小的部分查看我的系统,是否有任何一般性提示或建议?如何找到可以单独设计的较小部分?

有帮助吗?

解决方案

您的主要目标是:

  • 高凝聚力: :一个片段/模块/分区内的代码(方法、字段、类)应该密集交互;它应该 合理 让这些元素相互了解。如果您发现其中一些与其余部分没有太多交互,那么它们可能属于其他地方或者应该形成自己的分区。如果您发现外部代码与分区密切交互并且对其内部工作了解太多,那么它可能属于内部。典型的例子是用过程风格编写的 OO 代码,其中有“哑”数据对象和对它们进行操作但实际上应该是数据对象的一部分的“管理器”代码。
  • 松耦合: :相互作用 之间 片段/模块/分区只能通过狭窄的、定义良好的、记录良好的 API 进行。尝试识别此类 API,并查看需要哪些代码来实现它们以及哪些代码将使用它们。

其他提示

创建词汇表。

换句话说,确定对项目领域有意义的术语——不是从程序员的角度,而是从熟悉主题的用户的角度。

然后将术语定义为 恰恰离散地 尽你所能。这种形式的良好定义可以作为一种伪代码。

由于您甚至还没有确定问题的范围,因此我将随机选择一个示例。在文职人事系统中,您可能有以下术语:

  • 钢坯: :特定级别和级别的服务期限(从开始日期到结束日期)
  • 员工: :与特定 SSN 相关的一系列钢坯
  • 等级和步骤: :联邦总表中的行和列

等等。这并不是为了识别功能单元,因为听起来您正在尝试这样做,但这是这样做之前的一个很好的准备步骤,以便您可以用明确定义的术语表达您的功能步骤。

这是有用的接近问题分解自顶向下和自底向上。

如果您无法分裂一个大问题分成两个或多个较小的问题,再想想,将需要解决的尽可能小的问题。一旦这些被处理,你可能会开始看到的方式,当你接近你原来的大问题,将它们组合成更大的问题。

当我发现自己复制和粘贴的最小调整代码块我知道这是一个“分区”,然后创建一个类,方法,功能,或什么的。

其实,整个面向对象的方法就是它的全部。试试你的应用程序作为有形的东西,做东西的想法。写的伪代码描述什么东西是和他们做什么,我发现很多的“分区”这种方式的。

下面是一个尝试,一种野生的猜测。

人们往往低估它需要多长时间他们做的工作。如果你的项目非常大,那么很有可能你需要几个人上班就可以了,这样可以尽量考虑到这一点规划。现在,一个人可以预期的头部举行只有一个区域,所以你需要向他解释究竟是什么样的任务,他应该做的。

所以我说,你应该尝试写一个职位描述应该包括尽可能多地为一个人认真专注。重复,直到你已经打破了你的项目肢解你想。作为一个好处,你就可以组装你的团队。但是,如果你发现的部分很小,也许你仍然可以自己做。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top