開発者は、作業に役立つスクリプトを作成します。たとえば、特定のパラメーターでMavenを実行したり、開発中に発生した不要なバックグラウンドタスクを強制終了したり、特定のサーバーに接続したりします。スクリプトはコアビルドスクリプトではなく、継続的インテグレーションサーバーでも使用されません。
それらを管理する最良の方法は何ですか?それらをディレクトリに配置するには(おそらく/scripts
)、Gitにチェックインしますか?一部のファイルサーバーで個別に維持するには?
それらをソースコードとして扱うことの議論は、それらがソースであり、変更される可能性があるということです。それを行わないことの議論は、それらは単なる補助ツールであり、すべての開発者が特定のスクリプトを必要とするわけではないことです(たとえば、一部の開発者がWindowsで作業するLinux固有のスクリプト)。
通常、これらのスクリプトはバージョン管理のアイテムにも依存しているため、開発者スクリプトはバージョン管理にも組み込まれます。ファイルパス。
これらのスクリプトがバージョン管理されている場合は、すべての開発者が独自のスクリプトセットを作成することを回避するために、すべての開発者が機能する必要があります。
さらに、これらのスクリプトのバグ修正または改善は、バージョン管理を介してすべての開発者に自動的にロールアウトされます。
@simonの答えに加えて。
ソフトウェアエンジニアリングのすべてがプログラミング、設計、モデリングに関するものではありません。勤務中に無数のタスクが継続的に実行されます。すでに1つ-IDEの外でプロジェクトをビルドする-と述べましたが、他にもたくさんあります。
経験豊富でプロアクティブな開発者は、これらのタスクを自動化する傾向があります。一部のツールは、これらのタスクが [〜#〜] sdlc [〜#〜] の一部になるとビルドツールでさえあり、退屈な-でエラーが発生しやすい-手作業で行います。プログラムは、どんなに面倒でも、反復的な仕事をするのが得意です。私たち-humans-はそれほど良くありません。
これらのツール/スクリプトには、他の肯定的な副作用があります
つまり、スクリプトはSCMにあり、開発者のツールボックスにもう1つあるはずです。
フォルダーについて/scripts
関係ないと思います。簡単にするために、スクリプトで宣言されたすべてのルートがプロジェクトのフォルダーに対してrelativeになるように、それらをプロジェクトのルートディレクトリに残します。外部のフォルダやファイルにアクセスする必要がある場合は、ソフトリンクを作成します。
スクリプトをSCMにチェックインする前に考慮すべき事項。
セキュリティのために、スクリプトにハードコードされた資格情報がないことを確認してください-理想的には、スクリプトは十分にパラメーター化されている必要があります-
たとえば、元に戻すことができないコマンドを実行する場合(最も一般的なrm -rf
)。
これらはプロジェクトのソースの一部になるため、ドキュメントは高く評価されています。
スクリプトはロケット科学ではありません。スクリプトを簡潔にします。 1つですべてを支配する代わりに...そして暗闇の中でそれらをバインドします。 SRPを適用しているかのように。
もう少し否定的な意見を申し上げます。一方で、一般的で効果的で有用な開発者スクリプトは、もちろん他の開発者と共有する必要があります。そのための最善の方法は、同じリポジトリ内のコードにそれらを置くことです。
ただしスクリプトをコミットさせるためのエントリに高い基準を設定します。スクリプトは、ソフトウェア自体と同様にコードです。つまり、他のコードと同様に処理する必要があります。
ソフトウェア自体よりもスクリプトに多く適用される考慮事項がいくつかあります。
要約すると、スクリプトは個々の開発者にとって非常に役立ちますが、コードベース自体の一部として共有することははるかに困難な作業であり、解決されるよりも多くの問題を引き起こす可能性があります。