SOLID原则和类内的硬代码配置

skb*_*skb 5 magic-numbers solid-principles

我最近在很多代码中都注意到,人们在类/方法的深处放置了硬编码配置(如端口号等),这使得很难找到,也无法配置.

这违反了SOLID原则吗?如果没有,是否还有另一个"原则",我可以向我的团队成员介绍为什么这不是一个好主意?我不想只说"这很糟糕,因为我不喜欢它",但我很难想出一个好的论点.

Dmi*_*try 3

反对在类中硬编码 TCP 端口号的一个很好的论据是违反“上下文独立性”。来自GOOS,我强调:

\n\n
\n

上下文独立性

\n\n

...“上下文无关”规则帮助我们确定对象是否隐藏过多或隐藏了错误的信息。如果系统的对象与上下文无关,则系统更容易更改;也就是说,如果每个对象都没有关于它执行的系统的内置知识。这允许我们采用行为单元(对象)并将它们应用到新的情况中。为了与上下文无关,无论对象需要\n了解它运行的\xe2\x80\x99s的更大环境,都必须传入

\n
\n\n

在上下文独立的这种特定情况下,我将其称为“环境独立”。换句话说,具有硬编码端口号的类对运行时操作系统环境具有不适当的依赖关系,本质上是声明“我知道端口 7778 将始终可用”,这显然是错误的。

\n