web-dev-qa-db-ja.com

変更を展開する際にフィーチャーが提供する利点

機能を使用してデプロイの変更を管理することの利点(コードを最新に保ち、データを最新に保つことと比べて)

機能の方法(私が識別できるように近く):

機能は構成(「コンテンツ」)を取り、それをコードとして再構想し、そのためのモジュールを構築し、それを、コードとして永久に維持する必要があるオブジェクトとして存続する場所にプッシュします。

次に開発者がコードを更新するとき(開発データベースを本番環境の最新のコピーに更新するのが最適です)、これらの構成の変更を取得し、永続的に管理する必要があります。

実際には特別な方法はありません

元の開発者が本番環境で構成を更新し(開発でのこれらの変更を解消した後)、その構成の変更をいつまでも心配しなくなりました。

次に開発者がコードを更新するときに(開発データベースの更新が最適です)、構成の変更が含まれます。オーバーライドや復帰について心配する必要はありません。

明白な警告:

元の開発者が103の個別設定を変更した場合、それらをすべて覚えて設定することは悪夢のようです。この場合、本当のシステムが一致するように設定するために、多かれ少なかれ機能の使用方法である構成パッケージャの使用を理解します。しかし、それから何ですか? prodの設定を開発での作業と一致するように更新した後、そのプロジェクトを存続させることは理解できません。ファイアアンドフォーゲットコンフィグミサイルとしての機能を備えています。コードとして...事後は維持できません。

===================================

信じられないほど信頼できるいくつかのDrupal教祖によって報復された後、私はこの投稿をFeaturesに公開し始めました。私はそれについて悪い気持ちを持っていましたが、それが衰えることを望みました。これを書いた後、再び自分自身を見つけますスライスされたサーバー以来、他の誰もが考えているように思われることにイライラして反対します。

私の頭を包むことができない理想的な機能:

私は常にDrupalにアプローチしてきました。哲学は、前述の教祖によって「コンテンツがダウンし、コードがアップする」と雄弁に説明されていません。

Drupal 7では、システムとモジュールの構成がデータベースに保存されています。私の認識で描いた点線は、コードの内容をその行に示しています。コードはファイルに保存されています。コンテンツはGitで管理され、UIに入力され、DBに保存されます。

構造のための機能の使用:エクスポートと機能についての私の直感で、別の達人は言いました:「それは何らかの形でファイルになるでしょう」。

私は彼の見解が見えず、彼にそれを呼ぶのが快適ではなかったので、当時は議論しませんでした(グルvsわずかに経験したヒラメ)。

彼が考えていたパラダイム(開発者)を使っていなかったので、私はそれについて考えたことはありません。構造を操作しているとき、私の脳は常に異なるパラダイム(サイトビルダー)にあるため、常に構造をインポートしていました。

私は彼が説明した方法でこれを行ったことはありません。それは実際には賢いです、そして私は特定のケースでその方法を使用して見ることができます。後で脳が開発者モードに戻ったときに、これと同じようなことを別の方法で行っていることに気付きました。フォームビルダーを使用してラフフォームをすばやく構築し、コードにドロップします。エクスポートはしません。フォームビルダーを使用すると、構築中にコードを作成してアクセスできます。

そのため、「機能はアフサムズです」と言うのをためらいます。

では、何が欠けているのでしょうか?

1
OhkaBaka

機能のユースケースについては、おそらくstrongarmまたは構造を持つ構成パッカーとしてのみ言及しているようです。コードを実行してデータベースに変更を加えた後は、コードを使用しません。

ただし、機能の重要な用途の1つは、ビュー、ルールなどのctoolsエクスポート可能ファイルです。ここでは、設定は「103の構成オプション」よりもはるかに複雑であり、複数の開発者を扱う場合は、ステージングサイト本番環境では、これをすべての異なるサーバーとインスタンスで手動で実行することは想像できません。

2
hw.

Drupal=開発者として、最初はあまり意味をなさないが、それらを使用するにつれて成長していくトリックとヒントの仮想の海があることがわかります。機能はここに覚えておくべきいくつかのポイントがあります(おそらくこれのほとんどを知っています):

  • 開発サーバーとテストサーバーの使用は絶対に必要です。
  • Drupalの更新は多くの場合複雑であり、多くの試行錯誤(およびアドバイス)が必要です。
  • 手動のライブ更新は悪いです。毎回、最初は正確に正しく表示されません。
  • 手動のLiveアップデートは避けられない場合があります。必ずテストで数回練習してください。
  • それ以外の場合は、更新を実稼働環境からテスト環境に移行するための確立された方法があります。
  • (バックエンド)サイトの更新のほとんどすべてが何らかの方法でデータベースを変更します。
  • コンテンツは実際に下に移動し、変更は上に移動します。
  • データベースの更新をコンテンツから分離しないと、コンテンツは(最終的に)失われます。
  • 損失を最小限に抑えるには、サイトをオフラインにして、できるだけ早くするか...
  • 更新をコンテンツから分離できる場合は、コンテンツをダウンロード/管理する必要はありません。
  • 機能は、データベースの更新をコンテンツから自動的に分離します。
  • 自動プロセスは、長期的にはより速く、より正確で、信頼性が高くなります。
  • 変更によって問題が発生しないことを確認するために、テストするコンテンツを移動することは依然として重要です。
  • 機能は、更新の追加、保存、共有、および復帰のプロセスを改善します。
  • アップデートで問題が発生した場合、機能を元に戻すのが速いです。
  • 機能を使用して更新を追加のサイトに公開できる場合があります。
  • 機能はカプセル化の形式であり、カプセル化は優れています。
2
Hoytman