干净架构表示、领域和数据模块中模型类的命名约定

ant*_*009 4 architecture android

我有演示文稿、域和数据模块。我正在从体育 api 获取足球运动员信息。我使用映射器类来映射模块层之间的数据类

我只是想知道在不同模块中命名数据类时的约定是什么

在我的数据层中,我将从 api 中获取播放器并将其保存在本地。

Data Layer
local:
    PlayerTable
    
repository:
    PlayerEntity
        
Domain Layer
    PlayerModel
    
Presentation
    Player
Run Code Online (Sandbox Code Playgroud)

我刚刚后缀了Table,EntityModel。而对于 Presentation Player 来说就是这样。

只是想知道是否有任何特定的约定。我见过没有这种风格,但主要是保持一致。

只是想知道其他开发人员如何命名他们的数据类。

感谢您的任何建议,

mue*_*flo 8

没有关于如何命名类的官方命名方案。但在大多数语言中:

  • 类名应以大写开头
  • 变量名应该以小写开头
  • 常量应该都是 UPPERCASE_WITH_UNDERSCORES

一些开发人员正在为他们的变量添加前缀,如下所示:

  • mVariable 用于类的公共成员变量
  • _variable 用于类的私有变量
  • _variable 用于支持类中的字段
  • sVariable 用于单例字段

我个人不使用这些前缀,因为我认为它们是我们有语法突出显示之前的遗留物。今天,我们的 IDE 为所有内容着色,因此很容易区分类名、变量名等。

最后,如何组织代码取决于您,对于每个项目,您都将对其进行更改和改进。有时您会在一个拥有固定代码指南的团队中工作。有时这样的代码指南甚至由 Lint 规则强制执行。

通过以下方式之一考虑:

  • 两年后从不看这段代码:你能通过阅读它的名字来判断这个类负责什么吗?

  • 使类名尽可能短,但在必要时尽可能明确。例如,如果一个类已经在一个名为 的包中model,你就不需要命名它PlayerModelPlayer在大多数情况下应该足够了。

  • 你的代码是一封写给未来自己的情书。如果你在几年内阅读它,你要么爱自己,要么恨自己(更多时候是后者..)

  • 另一个不知道您的类确实了解它负责什么的开发人员。

也很重要:

永远不要害怕重构!如果你意识到一个名字很糟糕,那就重命名它。

还有一个很好的提示:

阅读一些关于干净代码的书籍。我可以推荐“务实的程序员”,当然还有臭名昭著的“干净的代码”。

我希望这能给你一些关于这个主题的指导!玩得开心编码:)

更新:

如果遇到在 1 个文件中使用两个同名类的情况,大多数语言都提供“导入别名”。例如在 Java 中,您可以输入 import 语句

import some.file.from.network.Player as NetworkPlayer
import model.class.from.my.app as AppPlayer
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用别名引用文件中的 2 个不同类,AppPlayerNetworkPlayer使其清晰易懂。