命名结构操作

时间:2013-06-19 07:26:12

标签: python naming-conventions naming fabric

我经常注意到不同项目中的fabfiles具有以下功能

  • install_ngnix
  • setup_ngnix
  • deploy_ngnix

我的解释/命名首选项是install_ *用于包安装任务,但setup_ *和deploy_ *听起来非常相似,可能重叠。

我想知道什么是普遍接受和更好的做法?上面的名字对你意味着什么?

2 个答案:

答案 0 :(得分:1)

我不知道是否有任何接受的练习来命名这些东西,但这里有不同的名称对我来说意味着如果有任何帮助:

  • install_nginx :这表明该功能实际上是从外部存储库获取nginx软件包并将其安装到服务器上。
  • setup_nginx :这表明nginx已经安装,您可以根据具体目的进行设置,例如部署自己的nginx配置文件。
  • deploy_nginx :这表明nginx是您拥有的软件包,并且您正在将其部署到服务器(请注意安装的细微差别,其中install表示由其他人管理的软件包)。

老实说,我认为这些名称中的任何一个都可行,但必须说我很羡慕你专注于试图找到你的命名点。

答案 1 :(得分:1)

这是我的见解(我在几乎所有项目中使用fabric,但我不是那么经验丰富。)

一旦您意识到fabfile太大且对install_nginxrestart_apachebackup_dbcreate_virtualenv,{{{ 1}}任务 - 你应该考虑让它变得更好。

  1. 使用configure_permissions包而不是单个脚本。
  2. 为您必须处理的每个组件定义一个子模块,例如fabfiledatabasenginx等。
  3. 在每个子模块中定义相关任务。例如。对于您的virtualenv子模块,它可能是nginxinstallsetup
  4. deploy定义高级别任务,例如__init__.pybuilddeploy,其中使用并调用其他组件的子任务。
  5. 示例restart包结构:

    fabfile

    然后fabfile ├── __init__.py ├── db.py └── nginx.py 的输出就像这样:

    fab --list

    另请参阅相关的documentation

    希望有所帮助。