SORU
15 Mart 2009, Pazar


Hangi noktada bir yapılandırma dosyası bir programlama dili haline gelir?

Config dosyaları ve bir süredir kod ilişkileri üzerinde direttiği oldum ve rüzgar gün ve yönüne bağlı olarak düşüncelerimi değiştirmek gibi. Daha fazla ve daha fazla gerçekleşmesi için geri dönüyorum ama ben ilk Lisp öğrenirken vardı: veri ve kod arasında çok az fark var. Bu yapılandırma dosyaları için iki kat geçerli. Doğru ışıkta hiç bir Perl script baktığımda perl için bir yapılandırma dosyası biraz daha fazla. Bu yapılandırma dosyaları değiştirmek için sorumlu olması gereken gibi emek QA ve bölünmeler gibi görevler için oldukça ağır sonuçlara yol eğilimindedir.

Tam teşekküllü bir dil için config dosyasından sürünme genellikle yavaştır ve genel bir sistem için istekli gibi görünüyor. Projelerin çoğu veri, kullanıcı adları ve parolaları gibi bakmak için dışarı günlükleri yazmak için nereye gibi birkaç yapılandırma öğeleri ile küçük başlayın. Ama o zaman onlar başlamak için büyümek: özellikleri başlangıç yapabilmek için açık veya kapalı, zamanlamaları ve sipariş işlemlerini başlatmak için kontrollü ve birisi mutlaka başlamak istiyor ekleme mantığı için (örneğin eğer makine kullanma 10 X 15 eğer makine Y). Belli bir noktada config dosyası etki alanı belirli bir dil ve çok kötü bir şekilde yazılmış olur.

Sahne için rambled ben şimdi, burada benim soru:

  1. Bir config gerçek amacı nedir dosya?
  2. Bir girişim tutmak için yapılmalıdır dosyaları basit config?
  3. Yapmaktan sorumlu olacaktır onlara değişiklikler (geliştiriciler, kullanıcılar, yöneticiler, vb.)?
  4. Olmak, kaynak kontrol etsinler (soru 3)?

Daha önce bu soruların cevaplarını sürekli vardiya, ama şimdi düşünüyorum da söylediğim gibi:

  1. programcı olmayan bir değişiklik için izin vermek için davranışların büyük bir kısmını hızlı bir şekilde
  2. Evet, kaba olmayan bir şey taneli kodu olmalıdır
  3. kullanıcılar sorumlu olmalıdır ve config dosyaları programcılar bir yapılandırma sorumlu tutulamaz config dosyaları ve kod arasındaki katman daha ince taneli kontrol sağlar uygulama
  4. hayır, ama ince taneli orta tabaka olmalıdır

CEVAP
15 Mart 2009, Pazar


Çok ilginç bir soru!

Çok basit bir "anahtar=config dosyaları çok hızlı bir şekilde tam gelişmiş programlar olabilir size tamamen katılıyorum. çünkü" biçim, değer config dosyalarımı sınırı eğilimindedir Örneğin, hiç "" OpenSER duygu bilir bahsediyorsun: yapılandırma değil, () acı programlama. yapılandırmak için çalıştı herkes

Uygulama "yapılandırılabilir" gerçekten ihtiyacınız olan şey hayal bile edemeyeceğiniz şekilde, bugün, sonra bir . çok gerektiğinde ^strong>eklentileri sistemi. Bir başkası yeni bir eklenti kod ve gelecekte uygulama içine kanca uygulama geliştirmek için bir yol gerekir.

Yani, sorularınızı yanıtlamak için:

  1. Bir yapılandırma dosyası gerçek amacı nedir?

    Diyebilirim ki, izin insanlar kim kuracak başvurunuzu yapabilmek için tweek bazı dağıtım ile ilgili parametreleri, gibi ana bilgisayar adı, iş parçacığı sayısı, adları eklentileri ve dağıtım parametreleri için bu eklentileri (kontrol Fransa yapılandırma için bir örnek bu prensip) vb. Kesinlikle yok yere express iş mantığı.

  2. Bir girişim config dosyalarını basit tutmak için yapılmalıdır?

    Kesinlikle. "Config dosyasında korkunç." programlama önerdiğin gibi Kaçınılması gerektiğine inanıyorum.

  3. Onlar (kullanıcılar, geliştiriciler, vb. yöneticileri) değişiklik yapmaktan sorumlu olacaktır?

    Genel olarak, uygulama dağıtmak isteyen yöneticiler, diyebilirim.

  4. Kaynak kontrolü (soru 3'e bakınız).

    Ben genellikle yapılandırma dosyalarının kendilerini, ama ben kaynak kontrolü yokyapınkaynak-kontrol şablonu yapılandırma dosyası parametreleri ve varsayılan değerlerine tüm yorumlar yaptıklarını anlatan. Eğer bir yapılandırma dosyası database.conf, Kaynak kontrolü genellikle olarak adlandırılır, örneğin, bir dosya database.conf.template adında. Şimdi tabii ki ben ne hakkında konuşuyorumbir geliştirici olarak.Bir yönetici olarakKaynak kontrol etmek isteyebilirsiniz , bu gerçek ayarları her yükleme için seçti Örneğin, birkaç yüz sunucuları uzaktan yönetmek ve kendi yapılandırmaları takip etmeliyiz: kaynak kontrolü ile bunu yapmak için seçtik.

< / ^ hr .

Edit: Yukarıdaki uygulamaların çoğu için doğru olduğuna inanıyorum, ancak her zaman istisnalar vardır, elbette. Uygulama dinamik olarak yapılandırmak için, kullanıcılarını karmaşık kuralları, örneğin izin verebilir. Çoğu e-posta istemcileri izin kullanıcılar için kurallar tanımlamak için yönetim kendi e-postaları (örneğin, "tüm e-postalar gelen" john doe "ve olmaması benim İçin: alan olmalı atılır"). Başka bir örnek, kullanıcı yeni karmaşık ticari bir teklif tanımlamak için izin veren bir uygulama. Ayrıca, kullanıcıların karmaşık veritabanı raporları oluşturmak için izin Cognos gibi uygulamalar hakkında düşünebilirsiniz. E-posta istemcisi muhtemelen basit bir kullanıcı arayüzü kuralları tanımlamak için sunacak ve bu karmaşık bir yapılandırma dosyası (hatta belki de bir kod bit) oluşturur. Diğer taraftan, ticari teklifler için kullanıcı-tanımlı yapılandırma veritabanı, yapılandırılmış bir şekilde (ne basit bir anahtar=değer yapısı ne kodun bir kısmı) kaydedilmiş olabilir. Ve diğer bazı uygulamalar bile kullanıcı python veya VB veya otomasyon özellikli başka bir dilde kod izin verebilir. Diğer bir deyişle... sizin kilometre değişebilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Peyton

    Peyton

    28 Aralık 2008
  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008
  • Strata1000

    Strata1000

    28 EYLÜL 2009