常量、配置、.env的含义及区别

常量、配置、.env的含义及区别

Cocytus Elias 69 2023-04-17

常量

常量整体上就是在程序或系统运行中不会产生变化、更改的量,但是会在程序运行前进行调整或更改。

常量分为环境常量、系统常量。

环境常量

环境常量主要是根据系统环境而定的常量,比如数据库连接配置。

数据库在一台机器上的对外对内连接基本上一经确定,除非手动设置,否则不会更改。这可以看作是一个常量。

但是在开发环境、测试环境、生产环境下的数据库信息会不尽相同,所以切换环境需要进行更改。

如果程序在环境之间互相切换,则要经过更改,但是在同一类环境下基本不需要更改,这类常量就是环境常量。

系统常量

系统常量又可以称为程序常量,不会随着环境的更改而变化,但有可能因为系统的调整而变化。

比如系统的语言版本,不管更换任何环境,这个是基本不会改变的。但是在对系统进行更新或升级调整,有可能会更改系统语言版本。

如果程序在不同环境之间互相切换时不会进行改动,但是在系统升级或调整时有可能(注意是有可能)会进行改动的就是系统常量。

配置

配置整体来说很像常量。这主要是因为配置可以分为默认配置和环境配置。

默认配置就像系统常量,环境配置就像环境常量,大概的用途都是一样的。

常量和配置的区别

不过一般在进行程序设计编写的时候,往往偏向于系统常量的理念来使用常量,偏向于环境常量的理念来使用配置。即在实际开发中,常量不会根据系统环境切换而变化,配置则会根据环境切换而变化。

ENV

.env 也是一种常量或配置的体现方式,但是 .env 主要是用于加载进环境变量中,所以整体更偏向于环境配置或环境常量。

.env与常量/配置的区别

  • 在不使用 .env 之前,需要手动配置 git 不提交配置或常量,而 .env 则可以使 git 直接忽略,这样就可以防止环境常量或配置混乱或泄漏出去
  • .env 可以使开发者更关注于系统常量或默认配置的编写,对于环境常量或环境配置可以自定义实现。比如数据库连接,张三电脑和在李四电脑都有本地的后端开发环境(各自有一个数据库用来测试),但是两人连接数据库的配置信息可能不一样,比如张三设置了复杂的数据库密码、用户名并更改了默认端口。而李四都是使用默认的。如果使用 git 协同了环境配置或环境常量,则每次同步后都需要进行一次调整。