比如我需要定义一些 s3 常用的操作函数, 其他模块高度依赖这些函数, 我会把它封装成一个类放到某个文件内, 这样的函数和类在开发过程中非常多, 我观察了下我接触过的项目, 大致分为这两种派系.
创建一个文件比如tasks.py
, 好处是需要什么函数直接 import 就行了, 缺点是这个文件非常大, 超过了 5000 行, import 很容易 import 半天
创建一个tasks
文件夹, 比如我定义了一个 s3 操作类, 就创建一个s3_operation.py
放到这个文件夹内.
缺点是不太容易定位, 搜索某个函数需要整个目录搜索, 对于开发不太友好.
![]() | 1 abersheeran 2020-12-29 09:14:31 +08:00 第一种第二种都可。现代编辑器的搜索功能,单文件内和整个文件夹内都是一样好用、快速的。 |
2 whileFalse 2020-12-29 09:22:31 +08:00 先放到一个文件里。如果日后觉得这个文件太长 就重构掉。 |
![]() | 3 kiracyan 2020-12-29 09:27:22 +08:00 放文件夹就按功能分类 |
4 annielong 2020-12-29 11:15:02 +08:00 少了一个文件,多了按功能分文件夹 |
5 lalawac 2020-12-29 11:40:52 +08:00 Snippets 你这的拥有 |
![]() | 6 xzysaber 2020-12-29 12:44:57 +08:00 “超过了 5000 行, import 很容易 import 半天”,只针对这句话。 5000 行就很慢了吗(虽然太长确实不好)? peewee 7000 多行也很快啊,而且只会 import 一次。 |
7 loliordie OP @xzysaber 整个文件因为涉及的类多 在 import 这个文件时会把依赖都 import 一遍 尤其在涉及某些机器学习和计算类的库时 很容易导致 import 半天然后丢出一大堆 warning 的情况 尤其是在开发习惯不好时更容易出这个问题 自己用还好 在自动化部署时很浪费资源 |
![]() | 8 xuanbg 2020-12-29 15:27:54 +08:00 按功能分类,每类一个文件。譬如加解密一个文件,json 一个文件,杂七杂八的一个文件 |
![]() | 10 secondwtq 2020-12-29 19:28:58 +08:00 你好,我写 Javascript 的,每一个函数都会单独做成一个 npm 包 |