2

以下のような機能を持つさまざまなプロジェクトのfabfileによく気づきます

  • install_ngnix
  • setup_ngnix
  • deploy_ngnix

私の解釈/命名の好みは、パッケージ インストール タスクの install_* ですが、setup_* と deploy_* は非常に似ているように聞こえますが、重複する可能性があります。

一般的に受け入れられ、より良い実践とは何だろうか?そして、上記の名前はあなたにとって何を意味しますか?

4

2 に答える 2

1

そのようなものに名前を付けるための受け入れられた慣行があるかどうかはわかりませんが、これが助けになる場合に備えて、さまざまな名前が私にとって何を意味するかを次に示します。

  • install_nginx : これは、関数が実際に nginx パッケージを外部リポジトリから取得し、サーバーにインストールしていることを示しています。
  • setup_nginx : これは、nginx が既にインストールされており、独自の nginx 構成ファイルのデプロイなど、特定の目的のためにセットアップしていることを示しています。
  • deploy_nginx : これは、nginx が所有しているソフトウェア パッケージであり、それをサーバーにデプロイしていることを示しています (インストールの微妙な違いに注意してください。インストールは、他の誰かによって管理されているソフトウェア パッケージを示唆しています)。

正直に言うと、これらの名前のどちらでも機能すると思いますが、ネーミングのスポットを獲得しようとするあなたの焦点に感心していると言わざるを得ません.

于 2013-06-19T08:01:51.607 に答える
1

これが私の洞察です(私fabricはほとんどすべてのプロジェクトで使用していますが、それほど経験はありません)。

fabfileが大きすぎて、そのinstall_nginx, restart_apache, backup_db,タスクを実際に読めないことに気付いたらすぐに、create_virtualenvそれを改善することを検討する必要があります。configure_permissions

  1. fabfile単一のスクリプトの代わりにパッケージを使用します。
  2. 、などdatabase、対処する必要があるすべてのコンポーネントのサブモジュールを定義します。nginxvirtualenv
  3. これらのサブモジュールのそれぞれで、関連するタスクを定義します。たとえばnginx、あなたの場合のサブモジュールの場合install、 , setup, deploy.
  4. 、などの__init__.py高レベルのタスクを定義し、他のコンポーネントのサブタスクを利用して呼び出します。builddeployrestart

サンプルfabfileパッケージ構造:

fabfile
├── __init__.py
├── db.py
└── nginx.py

次に、の出力はfab --list次のようになります。

deploy
build
setup
db.backup
nginx.setup
nginx.install
nginx.deploy

関連ドキュメントも参照してください。

それが役立つことを願っています。

于 2013-06-19T08:07:36.983 に答える