类别名是您自己的代码库中的不良做法吗?

时间:2019-03-20 05:30:06

标签: java php python

我工作的团队有多个项目,一些项目使用Java,一些项目使用PHP,甚至使用Python。

关于类别名的讨论。

有人引用Clean代码中有关免费上下文的内容,并说名称空间足以分隔类。

示例

对于MVC,您有一个控制器,一个存储库和一个服务,并具有以下结构:

  • 控制器/
  • 服务/
  • 存储库/
  • 实体/

在Java中,我将为4个类创建:

    实体文件夹中的
  • User.java
  • 存储库文件夹中的
  • UserRepository.java
  • UserService.java (位于Services文件夹中)
  • UserController.java 在Controllers文件夹中

在PHP中,我的同事认为他们都应该被命名 在同一上下文中使用 User.php 和类别名来区分它们。

我看过了,大多数语言的确提供了某种形式的别名:

据我了解,类/命名空间别名用于缩短类名或防止与其他库冲突。

我是否曾经被Java洗脑过以这种方式进行编码,或者是一种不好的做法,导致难以阅读代码?

2 个答案:

答案 0 :(得分:1)

将类命名为ControllerService是大多数Java开发人员都遵循的Java约定。这是我们为了保证代码的良好维护和可读性所遵循的众多约定之一。没有人会因为在不同的程序包中具有相同的类名而停止任何人。但是,如果您问我,这肯定会降低像我这样的人的可读性,而且我们不会因此而结交任何朋友。

就像在Java类的class/variable中给camelcase命名一样。这是大多数Java程序都采用的编码约定。当您习惯使用给定的标准时,它使阅读代码变得更加容易,但您不必遵循它。这是我们做出的选择

答案 1 :(得分:1)

您应该正确命名课程。

仅此而已。

命名一切用户没有任何意义,只是遵循一些(对我而言)Active Record定义不正确的命名约定。

但是,这个主题非常复杂,特别是因为它与人们对OOP的看法有关。而且由于PHP的限制远不如Java(编译,仅类,硬类型,只有一个入口点(即使这是更多的apache事情))限制并且需要的学习较少,因此不了解PHP的人更多地实践了Php。 SOLID原则或一般软件质量原则的内容。 (DRY,重构,正确命名类和变量...)