在定义某些非常常用的小函数的时, 你们是把这些函数放到一个文件内还是一大堆文件内?

2020-12-29 08:52:31 +08:00
 loliordie

比如我需要定义一些 s3 常用的操作函数, 其他模块高度依赖这些函数, 我会把它封装成一个类放到某个文件内, 这样的函数和类在开发过程中非常多, 我观察了下我接触过的项目, 大致分为这两种派系.

  1. 放到一个文件内

创建一个文件比如tasks.py, 好处是需要什么函数直接 import 就行了, 缺点是这个文件非常大, 超过了 5000 行, import 很容易 import 半天

  1. 放到某个文件内

创建一个tasks文件夹, 比如我定义了一个 s3 操作类, 就创建一个s3_operation.py放到这个文件夹内.

缺点是不太容易定位, 搜索某个函数需要整个目录搜索, 对于开发不太友好.

2677 次点击
所在节点    Python
10 条回复
abersheeran
2020-12-29 09:14:31 +08:00
第一种第二种都可。现代编辑器的搜索功能,单文件内和整个文件夹内都是一样好用、快速的。
whileFalse
2020-12-29 09:22:31 +08:00
先放到一个文件里。如果日后觉得这个文件太长 就重构掉。
kiracyan
2020-12-29 09:27:22 +08:00
放文件夹就按功能分类
annielong
2020-12-29 11:15:02 +08:00
少了一个文件,多了按功能分文件夹
lalawac
2020-12-29 11:40:52 +08:00
Snippets 你这的拥有
xzysaber
2020-12-29 12:44:57 +08:00
“超过了 5000 行, import 很容易 import 半天”,只针对这句话。
5000 行就很慢了吗(虽然太长确实不好)?
peewee 7000 多行也很快啊,而且只会 import 一次。
loliordie
2020-12-29 15:06:17 +08:00
@xzysaber 整个文件因为涉及的类多 在 import 这个文件时会把依赖都 import 一遍 尤其在涉及某些机器学习和计算类的库时 很容易导致 import 半天然后丢出一大堆 warning 的情况 尤其是在开发习惯不好时更容易出这个问题 自己用还好 在自动化部署时很浪费资源
xuanbg
2020-12-29 15:27:54 +08:00
按功能分类,每类一个文件。譬如加解密一个文件,json 一个文件,杂七杂八的一个文件
no1xsyzy
2020-12-29 15:50:06 +08:00
@loliordie 在函数内 import
secondwtq
2020-12-29 19:28:58 +08:00
你好,我写 JavaScript 的,每一个函数都会单独做成一个 npm 包

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739823

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX