Folder 'kekhawatiran' acak dan file '.keep'

87

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 concernsfolder dengan .keepfile di dalamnya. The .keepfile muncul kosong. Di folder lain tidak ada concernsfolder tetapi ada .keepfile kosong .

Adakah yang tahu apa masalahnya dengan file / folder ini?

Alex Vallejo
sumber

Jawaban:

132

.keepfile adalah file 0 byte yang ada untuk menghentikan folder kosong diabaikan oleh semua jenis proses. Tidak ada yang perlu dikhawatirkan.

DickieBoy
sumber
2
Terima kasih banyak! Jadi haruskah saya meninggalkan mereka? Saya akan menghapusnya jika tidak diperlukan
Alex Vallejo
5
Ya, Anda harus menyimpannya agar selalu ada saat Anda membutuhkannya. Ini juga akan memastikan folder diperhatikan oleh sistem kontrol versi Anda.
Josh
Haruskah saya memasukkannya ke dalam saya .gitignore? Saya lebih suka tidak melakukan file kosong.
tbodt
7
@tbodt Saya akan melakukannya. Tidak yakin apa yang akan terjadi jika orang lain mengkloning basis kode Anda.
DickieBoy
33

File .keep sangat membantu ketika Anda ingin memasukkan direktori kosong dengan git.

Fakta menyenangkan, namanya .keepatau .gitkeeptidak ada artinya. Anda dapat memanggil file .foountuk efek yang sama, itu hanya konvensi yang dapat dibaca.

The .keepfile 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 dirmasuk 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.

lfender6445.dll
sumber
6

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.

 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

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.

prasad.surase
sumber