私はレールを学んでいます。
どこかで、一見ランダムなフォルダーとファイルがRailsアプリのディレクトリに表示されていることに気づきました。一部のフォルダにはconcerns
、.keep
ファイルが含まれているフォルダがあります。.keep
ファイルが空であるように思われます。他のフォルダにはフォルダはありませんconcerns
が、空の.keep
ファイルがあります。
これらのファイル/フォルダの扱いを知っている人はいますか?
回答:
.keep
ファイルは、空のフォルダがあらゆる種類のプロセスによって無視されるのを防ぐために存在する0バイトのファイルです。心配することはありません。
.gitignore
ですか?空のファイルをコミットしたくありません。
.keepファイルは、gitを使用して空のディレクトリをコミットする場合に特に役立ちます。
面白い事実、名前.keep
または.gitkeep
無意味です。.foo
同じ効果のためにファイルを呼び出すことができますが、それは単に読みやすい規則です。
.keep
ファイルは時にこれらのディレクトリが空であることを原因となります非併合何か重要なディレクトリの削除を防止し、1 VCSから別の援助Portageに存在でもあります。
たとえば、cd dir
gitによって追跡されていないディレクトリに移動しようとするスクリプトについて考えてみます。
これはソフトウェア設計パラダイムであり、開発者が行う必要のある決定の数を減らし、単純さを増しますが、必ずしも柔軟性を失うわけではありません。
懸念事項は単純ですが強力な概念です。コードの再利用のために存在します。基本的に、アイデアは、モデルをクリーンアップし、モデルが太くなりすぎて管理できなくなるのを防ぐために、コードの一般的なチャンクやコンテキスト固有のチャンクを抽出することです。
特定のオブジェクトに関係のない機能を提供するには、サービスオブジェクトを使用する必要があることを明示的に指定したいと思います。たとえば、組織には多くのユーザーがいます。ここで、組織の管理者は、この組織のすべてのユーザーのCSVをエクスポートする必要があります。このコードは組織モデルに配置できますが、組織オブジェクトの責任ではないため、このコードは、uが組織オブジェクトを渡すだけで、すべてのユーザーのCSVを返すクラスに配置する必要があります。
class Services::GenerateCsv
def self.get_users org
#add logic the fetch users for the org and generate the CSV and return the CSV data
end
end
CSV生成が必要なときはいつでも、uは上記のクラスのそのロジックに配置できます。このアプローチにより、オブジェクト(この場合は組織モデル)が、その責任を負わないコードからクリーンに保たれます。私が従う一般的な原則は、コードが自己オブジェクトを変更している場合、コードをサービスオブジェクトに移動することです。
注:あなたの質問は懸念事項に関するものでしたが、他のプログラマーに役立つ可能性があるため、コードベースをクリーンで管理しやすい状態に保つために、私が従うものをいくつか追加することを考えました。上記のアプローチは議論の余地があります。