SORU
8 ŞUBAT 2010, PAZARTESİ


Clojure isim kullanmak için ortak kuralları nelerdir?

Sorun Clojure içinde ad alanı kullanmak için iyi bir tavsiye ve yaygın uygulamalar bulmakta zorlanıyorum. Ad şaşırtıcı bir şekilde belirlemek zor görünüyor Clojure kuralları, didiklemek için çalışıyorum bu yüzden Java aynı paket olmadığını biliyorum.

Clj dosya içine split fonksiyonları ve dizinleri içine bu dosyaları düzenlemek istediğim kabaca bile nasıl iyi bir fikrim var. Ama sorun dev ortamım için mekanik bulmakta zorlanıyorum ötesinde. Birbirleri ile ilgili bazı sorular vardır

  1. Normalde Java paketleri için kullanırdım olarak Clojure ad için aynı teklik kuralları kullanırım? [geriye-şirket etki yani.proje.alt]
  2. Benim ad ile eşleşen bir dizin yapısı içinde dosyalarımı kurtarayım? [ala Java]
  3. Eğer birden fazla isim varsa, bir kavanoz içine benim kod tüm derleme ve benim sınıf için erişilebilir hale getirmek için eklememe gerek var mı?
  4. Her bir kavanoz için derleme ad yapmalıyım? Ya ben birçok ad clj kod içeren tek bir kavanoz oluşturmak gerekir?

Teşekkürler...

CEVAP
8 ŞUBAT 2010, PAZARTESİ


  1. Eğer bir faydası olacağını düşünüyorsan sorun yok sanırım, ama çok Clojure projeler -- cf gelmeyin. Compojure (üst düzey compojure bir ns ve çeşitli compojure kullanarak.* ns için belirli işlevler), Yüzük, Leiningen... kendisi kullanır Clojure clojure.* (ve clojure.contrib.* kütüphaneler contrib), ama bu özel bir durum sanırım.

  2. Evet! Kesinliklegerekirbunu yapmak, ya da başka Clojure senin ad bulmak mümkün olmayacak. Ayrıca unutmayın bana kızma kullanın alt ad alanı adları veya tire dosya ve her yerde kullandığınız bir tire bir ad alanı adı, bir alt çizgi dosya adı (böylece ns my.cool-project tanımlanmış bir dosya adı cool_project.clj adlı bir dizin my).

  3. İhtiyacınız emin olmak için tüm eşyaların üzerinde bir sınıf, ama fark etmez, eğer bir kavanoz, birden fazla kavanoz, bir karışım bir kavanoz ve dizinlerde dosya sistemi... sürece itaat doğru adlandırma kuralları (noktanız yok. 2) ince olmalıdır.

    Ancakyokderleme işleri zamanından önce olursa, özel bir sebebi yok yani ... bu olabilir önlemek kodu olan taşınabilir çeşitli sürümleri Clojure olmadan sağlayan herhangi bir yarar yanı sıra, biraz geliştirilmiş yükleme zamanı.

    Hala CUF derleme bazen, özellikle bazı Java birlikte çalışabilirlik senaryoları / makrolar her zaman bahseder ilgili fonksiyonların belgeleri kullanmak gerekir. Şeyler clojure içinde CUF gerektiren örnekler de vardır.contrib; hiç de olmadı, detayları pek iyi bir yol sağlayabilir.

  4. Kod fonksiyonel birimler için kavanoz kullanmanız gerektiğini söylemek istiyorum. E. g. Compojure ve Yüzük tek kavanoz gibi paketlenmiş birlikte bütün paketi oluşturan birçok ad içeren. Ayrıca, clojure.contrib özellikle birden çok alakasız kitaplıkları ile tek bir jar olarak paketlenmiş; ama bir daha özel bir durum olabilir.

    Öte yandan, tek bir kavanoz birlikte projenizin tüm kod bağımlılıkları ile içeren bazen dağıtım için yararlı olabilir. the Leiningen build tool ve 'uberjar' eğer bu tür bir şey yararlı olabilir düşünüyorsanız odası bakın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ADDVOiCE

    ADDVOiCE

    28 Mayıs 2009
  • Animation Workshop

    Animation Wo

    8 NİSAN 2010
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007