Pengembang membuat skrip untuk membantu dalam pekerjaan mereka. Misalnya, untuk menjalankan Maven dengan parameter tertentu, untuk membunuh tugas latar belakang yang tidak diperlukan yang muncul dalam pengembangan, atau untuk menyambung ke server tertentu. Skrip bukan skrip build inti atau skrip yang digunakan di server Continuous Integration kami.
Apa cara terbaik untuk mengelolanya? Untuk meletakkannya di direktori (mungkin /scripts
) dan memeriksanya di Git? Untuk memeliharanya secara terpisah di beberapa file server?
Argumen untuk memperlakukan mereka sebagai kode sumber adalah bahwa mereka adalah sumber dan dapat berubah. Argumen untuk tidak melakukannya adalah bahwa mereka hanyalah alat bantu dan bahwa tidak semua pengembang memerlukan skrip tertentu (misalnya skrip khusus Linux di mana beberapa pengembang bekerja pada Windows).
sumber
Jawaban:
Skrip pengembang juga masuk ke kontrol versi, karena biasanya skrip ini juga bergantung pada item dalam kontrol versi, misalnya jalur file.
Jika skrip ini diversi, skrip ini juga harus bekerja untuk semua pengembang untuk menghindari setiap pengembang menulis set skripnya sendiri, yang menjadi neraka pemeliharaan.
Selain itu perbaikan bug atau perbaikan skrip ini secara otomatis diluncurkan ke setiap pengembang melalui kontrol versi.
sumber
Selain jawaban @ simon.
Tidak semua dalam rekayasa perangkat lunak adalah tentang pemrograman, perancangan atau pemodelan. Ada banyak sekali tugas yang kami lakukan terus menerus selama hari kerja. Anda telah menyebutkan satu - membangun proyek di luar IDE - tetapi ada banyak lagi.
Pengembang yang berpengalaman / proaktif cenderung mengotomatiskan tugas-tugas ini. Beberapa, bahkan membangun alat ketika tugas-tugas ini menjadi bagian dari SDLC dan mereka membosankan - dan rawan kesalahan - harus dilakukan dengan tangan. Program bagus dalam melakukan pekerjaan yang berulang, tidak peduli seberapa membosankannya mereka. Kita - manusia - tidak sebaik itu.
Alat / skrip ini memiliki efek samping positif lainnya
Jadi, ya skrip harus di SCM dan mereka harus menjadi satu alat lagi di kotak alat pengembang.
Mengenai folder
/scripts
saya akan mengatakan bahwa itu tidak masalah. Untuk kesederhanaan saya meninggalkan mereka di direktori root proyek sehingga semua rute yang dinyatakan dalam skrip relatif ke folder proyek. Jika saya memerlukan akses ke folder atau file eksternal, saya membuat tautan lunak .Hal yang perlu dipertimbangkan sebelum memeriksa skrip ke dalam SCM.
Untuk keamanan, pastikan skrip tidak memiliki kredensial hardcoded - idealnya, skrip harus parametrized dengan baik -
Pastikan skrip tidak melakukan hal-hal aneh pada sistem, seperti misalnya untuk mengeksekusi perintah yang tidak dapat dibatalkan (yang paling khas
rm -rf
).Karena ini menjadi bagian dari sumber proyek, dokumentasi sangat dihargai.
Scripting bukan ilmu roket. Buat skrip ringkas. Alih-alih satu untuk memerintah mereka semua ... dan dalam kegelapan mengikat mereka , buat lebih, lebih kecil dan ringkas. Seolah Anda sedang menerapkan SRP.
sumber
Saya akan menawarkan pendapat yang agak lebih negatif. Di satu sisi, skrip pengembang yang generik, efektif, dan berguna tentu saja harus dibagikan dengan pengembang lain, dan cara terbaik untuk melakukannya adalah meminta mereka duduk dengan kode dalam repositori yang sama.
Namun saya akan menetapkan bar tinggi untuk entri karena skrip harus dilakukan. Script adalah kode, sama seperti perangkat lunak itu sendiri. Itu berarti mereka perlu diperlakukan serupa dengan potongan kode lainnya:
Ada sejumlah pertimbangan lebih lanjut yang berlaku lebih pada skrip daripada pada perangkat lunak itu sendiri:
Untuk meringkas, skrip bisa sangat membantu bagi pengembang individu, tetapi berbagi kemudian sebagai bagian dari basis kode itu sendiri bisa menjadi tugas yang jauh lebih sulit, dan berpotensi menyebabkan lebih banyak masalah daripada yang dipecahkan.
sumber