Rastgele 'endişeler' klasörleri ve '.keep' dosyaları


87

Rayları öğreniyorum.

Hat boyunca bir yerlerde, raylar uygulamasının dizininde rastgele görünen klasörlerin ve dosyaların göründüğünü fark ettim. Bazı klasörlerde içinde dosya bulunan bir concernsklasör vardır .keep. .keepDosya boş görünüyor. Diğer klasörlerde concernsklasör yok ama boş bir .keepdosya var.

Bu dosya / klasörlerin ne olduğunu bilen var mı?

Yanıtlar:


132

.keepdosyalar 0 baytlık dosyalardır ve boş klasörlerin her türlü işlem tarafından göz ardı edilmesini engeller. Endişelenecek birşey yok.


2
çok teşekkürler! Öyleyse onları bırakmalı mıyım? Gerekmiyorlarsa onları silecektim
Alex Vallejo

5
Evet, onları etrafınızda bulundurmalısınız, böylece ihtiyaç duyduğunuzda yanlarında olurlar. Ayrıca, klasörlerin sürüm kontrol sisteminiz tarafından fark edilmesini de sağlayacaktır.
Josh

Onları benim içime koymalı mıyım .gitignore? Boş dosyalar işlememeyi tercih ederim.
tbodt

7
@tbodt Onları yapardım. Başka biri kod tabanınızı klonlasa ne olurdu emin değilim.
DickieBoy

33

.keep dosyaları, git ile boş dizinleri işlemek istediğinizde özellikle yararlıdır.

Eğlenceli gerçek, adı .keepya .gitkeepda anlamsız. dosyayı .fooaynı efekt için çağırabilirsiniz, yalnızca okunabilir bir kuraldır.

.keepBu dizinleri boş olmasına neden olacağını ne zaman un-birleştirme şey dosyaları önemli dizinleri silinmesini engelleyen bir VC'si diğerine yardım portage'a orada da bulunmaktadır.

Örneğin, cd dirgit tarafından izlenmeyen bir dizine girmeye çalışan bir komut dosyasını düşünün .

Bu, geliştiricilerin yapması gereken kararların sayısını azaltmayı, basitlik kazanmayı, ancak esnekliği kaybetmeyi zorunlu kılan bir yazılım tasarım paradigmasıdır.


6

Endişeler basit ama güçlü bir kavramdır. Kodun yeniden kullanılabilirliği için mevcuttur. Temel olarak fikir, modelleri temizlemek ve çok şişman ve yönetilemez hale gelmelerini önlemek için ortak ve / veya bağlama özgü kod parçalarını çıkarmaktır.

Belirli bir nesneyi ilgilendirmeyen işlevsellik sağlamak için hizmet nesnelerini kullanmanız gerektiğini açıkça belirtmek isterim. Örneğin, bir kuruluşun birçok kullanıcısı vardır. Artık kuruluş yöneticisinin bu kuruluş için tüm kullanıcıların bir CSV'sini dışa aktarması gerekir. Bu kod organizasyon modeline yerleştirilebilir, ancak organizasyon nesnesinin sorumluluğu olmadığı için, bu kod sadece organizasyon nesnesini geçtiği ve tüm kullanıcıların CSV'sini döndürdüğü bir sınıfa yerleştirilmelidir.

 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 oluşturmaya ihtiyaç duyduğunuzda, yukarıdaki sınıfa bu mantığı yerleştirebilirsiniz. Bu yaklaşım nesneyi (bu durumda, organizasyon modelini) sorumluluğu olmaması gereken koddan temiz tutar. İzlediğim genel bir ilke şudur: eğer kod öz nesneyi değiştiriyorsa, kodu bir hizmet nesnesine taşıyın.

Not: Sorunuz endişelerle ilgiliydi, ancak kod tabanını temiz ve yönetilebilir tutmak için takip ettiğim bazı ekstra şeyler eklemeyi düşündüm, çünkü bu diğer programcılara yardımcı olabilir. Yukarıdaki yaklaşım tartışmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.