2009-04-21 13 views
6

Ben onun Aktör programlama modeli için bir fikir edinmesini küçük Scala kütüphane yazmak için arıyorum. Ben rastlamak ettik örnek kodda Do Scala kütüphaneleri, paketleri Java olarak adlandırmak için aynı ters etki alanı kuralını izler mi?

, bazı kütüphaneler paketleri ters etki alanını (örneğin org.foo.bar) kullanın ve bazı (belki sadece kısalık için) yok.

o tavsiye Scala kütüphaneleri Java ile aynı paket adlandırma kurallarını kullanmak için mi? Daha genel olarak, Python'un PEP 8 ile yaptığı gibi iyi bir Scala kodlama stili önerileri var mı?

Evet, muhtemelen arabayı atın önüne koymak, ama ben de dışarı sarsılmış olan sözleşmelerin bazı görerek bir dil için iyi bir fikir elde edebilirsiniz bulabilirsiniz.

Teşekkür

cevap

8

Lift, Scala daha büyük projelerinden biri, aslında Scala ve Java çalışma özelliğine sahip olduğundan, çok anlamlı bir hale getirir ters etki alanı adı kuralını kullanır, bu isterdim nedenle duran şeyleri olabildiğince ağrısız tutmak ve başka bir şekilde yapmanın değerli avantajlarını gerçekten düşünemiyorum.

+0

Lift'in yapılandırıldığı şekle bakarak ambalajı/modülleri biraz daha iyi anlamama yardımcı oluyor. Ters etki alanı anlaşması tamam, ancak Python'u yeterince uzun süredir kullanıyorum. Daha da düz paket hiyerarşilerini de takdir ediyorum. İtirazların taklit edilebilme yeteneği, bir ad alanı çarpışmasının meydana geldiği nadir durumlar için iyi bir çözüm gibi görünmektedir, ancak kuşkusuz problemi tamamen çözmemektedir. –

+0

potansiyel konuda bir örnek için http://www.drmaciver.com/2009/07/how-packages-work-in-scala/ bakın. Yine de, Java normunu takip etmek mantıklıdır. – mauhiz

2

Scala temelde (neredeyse her şeyde) Java'nın sözleşmelerin en devralır. Bunun birkaç istisnası var. Örneğin, Scala "Alıcılar ve ayarlayıcılar" aslında şu şekilde yapılır:

class Person { 
    private var _name: String = _ 

    def name = _name 

    def name_=(s: String) { 
    _name = s 
    } 
} 

şüphe halinde (tercih bu sırayla) Java Ruby veya Haskell gelen kuralını ödünç. Paketlerle ilgili olarak, cevap "evet", Scala paketleri, ters alan adı sözleşmesi kullanılarak adlandırılır.

İlgili konular