Bir süredir yapılandırma dosyaları ve bunların kodla ilişkileri üzerine kafa yoruyorum ve rüzgarın gününe ve yönüne bağlı olarak görüşlerim değişiyor gibi görünüyor. Her ne kadar Lisp'i öğrenirken ilk farkına vardığım gerçeğe gittikçe daha fazla geri dönmeme rağmen: veri ve kod arasında çok az fark var. Bu, yapılandırma dosyaları için iki kat daha doğru görünüyor. Doğru ışıkta bakıldığında Perl betiği, perl için bir yapılandırma dosyasından biraz daha fazlasıdır. Bu, yapılandırma dosyalarını değiştirmekten kimin sorumlu olması gerektiği gibi QA ve iş bölümü gibi görevler için oldukça ağır sonuçlara sahip olma eğilimindedir.
Yapılandırma dosyasından tam teşekküllü dile geçiş genellikle yavaştır ve genel bir sisteme sahip olma arzusundan kaynaklanıyor gibi görünmektedir. Çoğu proje, günlüklerin nereye yazılacağı, verilerin nerede aranacağı, kullanıcı adları ve şifreleri vb. Gibi birkaç yapılandırma öğesiyle küçük başlıyor gibi görünüyor. işlemlerin zamanlamaları ve sırası kontrol edilmeye başlar ve kaçınılmaz olarak birisi ona mantık eklemeye başlamak ister (örneğin, makine X ise 10 ve makine Y ise 15 kullanın). Belirli bir noktada, yapılandırma dosyası alana özgü bir dil haline gelir ve bunda kötü yazılmış bir dil olur.
Şimdi sahneyi hazırlamaya başladığıma göre, işte sorularım:
- Bir yapılandırma dosyasının gerçek amacı nedir?
- Yapılandırma dosyalarını basit tutmak için bir girişimde bulunulmalı mı?
- Bunlarda değişiklik yapmaktan kim sorumlu olmalıdır (geliştiriciler, kullanıcılar, yöneticiler vb.)?
- Kaynak kontrollü olmalı mı (bkz. Soru 3)?
Daha önce de söylediğim gibi, bu sorulara verdiğim yanıtlar sürekli değişiyor, ancak şu anda düşünüyorum:
- programcı olmayanların büyük davranış parçalarını hızla değiştirmesine izin vermek
- evet, kaba taneli olmayan her şey kodda olmalıdır
- kullanıcılar yapılandırma dosyalarından sorumlu olmalı ve programcılar, yapılandırma dosyaları ile uygulamanın daha ayrıntılı denetimini sağlayan kod arasındaki bir yapılandırma katmanından sorumlu olmalıdır.
- hayır, ancak daha ince taneli orta katman