我们如何组织名称空间?

时间:2020-03-06 14:37:14  来源:igfitidea点击:

因此,我有逻辑实体(人,国家等),GUI元素/控件,数据和导航控制器/管理器,然后是诸如四叉树和计时器之类的东西,而且我一直在努力将这些东西清晰地分离为逻辑名称空间。

我通常有这样的事情:

  • Leviathan.GUI.Controls
  • Leviathan.GUI视图
  • 利维坦实体
  • Leviathan.Controllers(数据和其他东西)
  • Leviathan.Helpers(树木和其他东西)

在这方面有什么好的指南吗?我需要停止这种混乱。

解决方案

尽量避免使用"和其他东西"或者"杂项"。类别,如果我们将事物归入这些类别,则根本无法真正组织它们。

对于应用

Company.Product.Tier.Sub.Sub

我想从模型,视图,控制器或者其他既定名称(数据)中获取层的地方

但是对于我们的控制,我们最终得到了

Company.Product.LogicalFeatureGrouping

或者

Company.Product.Addon

有时候是

Company.Product.LogicalFeatureGrouping.Addon

我遵循Java / python的理想做法,即名称空间应遵循目录结构。

我通常为每个单独的层(例如UI,业务逻辑和数据库)创建一个名称空间。它迫使我将各层分开。我根据系统组件在其中创建其他名称空间。