TencentBlueKing / bk-user

蓝鲸用户管理是蓝鲸智云提供的企业组织架构和用户管理解决方案,为企业统一登录提供认证源服务。
MIT License
59 stars 66 forks source link

配置文件合并 #294

Open wklken opened 2 years ago

wklken commented 2 years ago

统计数据

src/*/*/config/common/*.py

配置文件行数(含空行及注释, 以及每个文件头 10 行证书说明)

25 src/api/bkuser_core/config/common/__init__.py
157 src/api/bkuser_core/config/common/django_basic.py
20 src/api/bkuser_core/config/common/logging.py
92 src/api/bkuser_core/config/common/platform.py
55 src/api/bkuser_core/config/common/storage.py
86 src/api/bkuser_core/config/common/system.py

25 src/login/bklogin/config/common/__init__.py
129 src/login/bklogin/config/common/django_basic.py
18 src/login/bklogin/config/common/logging.py
84 src/login/bklogin/config/common/platform.py
43 src/login/bklogin/config/common/plugin.py
33 src/login/bklogin/config/common/storage.py

25 src/saas/bkuser_shell/config/common/__init__.py
171 src/saas/bkuser_shell/config/common/django_basic.py
20 src/saas/bkuser_shell/config/common/logging.py
70 src/saas/bkuser_shell/config/common/platform.py
21 src/saas/bkuser_shell/config/common/storage.py
88 src/saas/bkuser_shell/config/common/system.py

按目录统计行数

api
--------------------------------------------------------------------------------
 Language             Files        Lines        Blank      Comment         Code
--------------------------------------------------------------------------------
 Python                   6          435           73          120          242
--------------------------------------------------------------------------------
 Total                    6          435           73          120          242
--------------------------------------------------------------------------------

saas
--------------------------------------------------------------------------------
 Language             Files        Lines        Blank      Comment         Code
--------------------------------------------------------------------------------
 Python                   6          395           59           85          251
--------------------------------------------------------------------------------
 Total                    6          395           59           85          251
--------------------------------------------------------------------------------

login
--------------------------------------------------------------------------------
 Language             Files        Lines        Blank      Comment         Code
--------------------------------------------------------------------------------
 Python                   6          332           51           60          221
--------------------------------------------------------------------------------
 Total                    6          332           51           60          221
--------------------------------------------------------------------------------

问题

划分很清晰, 但是文件过多, 6 个文件组成最终一份配置, 还需要结合overlay/*.py

但是实际的行数并不多, 每个项目 250 行左右;

处理

合并成一个文件, 按import 顺序放, 并通过注释明确代码块及分界

from bkuser_core.config.common.django_basic import *  # noqa
from bkuser_core.config.common.logging import *  # noqa
from bkuser_core.config.common.platform import *  # noqa
from bkuser_core.config.common.storage import *  # noqa
from bkuser_core.config.common.system import *  # noqa

to

from bkuser_core.config.common.default import *

好处: 更好阅读/维护

IMBlues commented 2 years ago

我个人还是倾向于拆分,或者引入类似这样的库 django-split-settings 对 settings 进行一定的分组管理

wklken commented 2 years ago

https://www.dynaconf.com/

wklken commented 2 years ago

login先搞, 之后api使用一致的方式

wklken commented 2 years ago

login done 其他的 @nannan00

wklken commented 2 years ago

容器化好改, 二进制需要配合support-files中template文件一起改

另外注意内部版v3.py在合并后的放的位置 @nannan00