Saya sedang belajar rel.
Di suatu tempat di sepanjang garis, saya perhatikan bahwa folder dan file yang tampaknya acak muncul di direktori aplikasi rel saya. Di beberapa folder terdapat concerns
folder dengan .keep
file di dalamnya. The .keep
file muncul kosong. Di folder lain tidak ada concerns
folder tetapi ada .keep
file kosong .
Adakah yang tahu apa masalahnya dengan file / folder ini?
git
version-control
Alex Vallejo
sumber
sumber
.gitignore
? Saya lebih suka tidak melakukan file kosong.File .keep sangat membantu ketika Anda ingin memasukkan direktori kosong dengan git.
Fakta menyenangkan, namanya
.keep
atau.gitkeep
tidak ada artinya. Anda dapat memanggil file.foo
untuk efek yang sama, itu hanya konvensi yang dapat dibaca.The
.keep
file juga ada untuk bantuan portage dari satu vcs ke yang lain, mencegah penghapusan direktori penting ketika Anda un-merge sesuatu yang akan menyebabkan direktori kosong.Misalnya, pertimbangkan skrip yang mencoba
cd dir
masuk ke direktori yang tidak terlacak oleh git.Ini adalah paradigma desain perangkat lunak yang berusaha mengurangi jumlah keputusan yang perlu dibuat oleh pengembang, mendapatkan kesederhanaan, tetapi tidak selalu kehilangan fleksibilitas.
sumber
Kekhawatiran adalah konsep yang sederhana namun kuat. Itu ada untuk digunakan kembali kode. Pada dasarnya, idenya adalah untuk mengekstrak potongan kode umum dan / atau konteks tertentu untuk membersihkan model dan menghindarinya menjadi terlalu gemuk dan tidak dapat diatur.
Saya ingin menentukan secara eksplisit bahwa Anda harus menggunakan objek layanan untuk menyediakan fungsionalitas yang bukan merupakan perhatian dari objek tertentu. Misal sebuah organisasi memiliki banyak pengguna. Sekarang admin organisasi perlu mengekspor CSV semua pengguna untuk organisasi ini. Kode ini dapat ditempatkan dalam model organisasi tetapi karena ini bukan tanggung jawab objek organisasi, kode ini harus ditempatkan di kelas di mana Anda hanya meneruskan objek organisasi dan mengembalikan CSV dari semua pengguna.
Kapan pun Anda membutuhkan pembuatan CSV, Anda dapat menempatkan logika itu di kelas di atas. Pendekatan ini menjaga objek (dalam hal ini, model organisasi) bersih dari kode yang seharusnya tidak menjadi tanggung jawabnya. Prinsip umum yang saya ikuti adalah: jika kode itu memodifikasi objek diri, pindahkan kode ke objek layanan.
Catatan: Pertanyaan Anda tentang masalah tetapi saya berpikir untuk menambahkan beberapa hal tambahan yang saya ikuti untuk menjaga basis kode tetap bersih dan dapat dikelola karena dapat membantu sesama pemrogram. Pendekatan di atas masih bisa diperdebatkan.
sumber