İngilizce olmayan bir alanda Programlama ve Ubiquitous Dili (DDD)


64

Burada zaten bu konuyla yakından ilgili bazı sorular olduğunu biliyorum, ancak hiçbiri Ubiquitous Language'i başlangıç ​​noktası olarak kabul etmiyor , bu yüzden bu soruyu haklı çıkardığını düşünüyorum.

Bilmeyenler için: Ubiquitous Dil, çeviri sorunları ve yanlış anlama nedeniyle tutarsızlıklar ve iletişimsizlikten kaçınmak için geliştiriciler ve alan uzmanları arasında eşit şekilde kullanılan (hem sözlü hem de yazılı) bir dil tanımlama kavramıdır. Aynı terminolojinin kodda göründüğünü, herhangi bir ekip üyesi arasındaki konuşmaları, işlevsel özellikleri ve ne olmadığını göreceksiniz.

Yani, merak ettiğim şey İngilizce olmayan alanlarda Ubiquitous Language ile nasıl başa çıkılacağıydı.

Kişisel olarak, programlama kodunu tamamen İngilizce olarak yazmayı şiddetle tavsiye ediyorum, yorumlar dahil ama tabii ki sabitler ve kaynaklar hariç.

Bununla birlikte, İngilizce olmayan bir alanda, aşağıdakilerden birini yapmak zorunda kalıyorum:

  1. Ubiquitous Language'i alan adının doğal dilinde yansıtan kod yazın.
  2. Ubiquitous Dilini İngilizceye çevirin ve alanın doğal dilinde iletişim kurmayı bırakın.
  3. Ubiquitous Dilinin İngilizce'ye nasıl çevrileceğini tanımlayan bir tablo tanımlayın

İşte bu seçeneklere dayanarak düşüncelerimden bazıları:

1) Karışık dil koduna karşı, türkçe olmayan üye / değişken adları vb. Kullanarak kodlayan güçlü bir isteksizliğe sahibim. Çoğu programlama dili İngilizce'yi büyük ölçüde 'soluyor' ve teknik literatürün çoğu, tasarım deseni adları vb. De ingilizce. Bu nedenle, çoğu durumda, tamamen İngilizce olmayan bir dilde kod yazmanın hiçbir yolu yoktur, bu yüzden yine de karışık dillerle bitirdiniz.

2) Bu, alan uzmanlarının UL'in İngilizce eşdeğerinde düşünmeye ve konuşmaya başlamasını, muhtemelen kendilerine doğal gelmeyecek ve bu nedenle iletişimi önemli ölçüde engelleyecektir.

3) Bu durumda, geliştiriciler kendi ana dillerinde etki alanı uzmanlarıyla iletişim kurarken, geliştiriciler birbirleriyle İngilizce olarak iletişim kurar ve en önemlisi, UL'nin İngilizce çevirisini kullanarak kod yazarlar.

İlk seçenek için gitmek istemediğime eminim ve seçenek 3'ün seçenek 2'den daha iyi olduğunu düşünüyorum. Diğer seçenekleri mi özlüyorum?

GÜNCELLEME

Bugün, yaklaşık bir yıl sonra, bu konuyu günlük olarak ele alarak, 3. seçeneğin benim için oldukça iyi çalıştığını söylemeliyim.

Başlangıçta korktuğum kadar sıkıcı değildi ve müşteriyle konuşurken gerçek zamanlı olarak tercüme etmek de sorun değildi.

Tecrübelerime dayanarak aşağıdaki avantajları da doğru buldum.

  • UL'nin çevrilmesi, özellikle bir terimin nasıl çevrileceğini bilmediğiniz ve sözlükler vb. biraz zaman.
  • İngilizce dil bilginizi daha derin yapmanıza yardımcı olur.
  • Açıkçası, kodunuz akıllara durgunluk veren bir akıl almazlığı yerine bakmak çok daha keyifli.

9
+1 Olağanüstü soru. Her yerde dil gelişimine çok önem veriyoruz ve bu bizim için büyük bir sorun. İyi cevaplar için sabırsızlanıyorum!
CesarGon

2
Bence analizin mükemmel, her şeyi düşündün. Farklı proje senaryolarına bağlı olarak, bu konuda bir cevap almak zor. Örneğin, bir hukuk firması için yazılım geliştiriyorsanız, geliştirici olduğunuzdan ve tüm terimleri nasıl çevireceğinizi bilmediğinizden, kodunuzdaki tüm kelimeleri İngilizce olarak kullanmak zor olabilir. Seçenek 1) bazen cevaptır.
Alex

Orada çalışmaya başlamak için Belçika'ya taşınıyorum ve bunu düşünmemiştim bile. Hangi rotaya binip gittiklerini görmek "ilginç" olacak, özellikle de bazılarına dış kaynaklı olduğunu söylediğimden (sanırım Hindistan'a).
Phil N DeBlanc

Harika bir soru ve güncelleme için teşekkürler - Ben de seçenek 3'ü tercih ediyorum ve bazı onaylar almaktan çok mutluyum.
lutzh

Yanıtlar:


11

Bu sorunla sık sık karşılaştım ve bence cevap şu: "Tüm senaryolar için geçerli tek bir cevap yok."

Ancak Ubiquitous Dilinin kendi başına bir amaç olmadığını unutmayın. Ekip ve Etki Alanı Uzmanları arasındaki iletişimi güçlendirmek ve uygulanan modelin kod, testler ve konuşmadaki kavramsal tutarlılığını güçlendirmek için bir araçtır.

Açıkça UL konuşabiliyorsanız, doğru yoldasın. Siz ve akranlarınız sürekli olarak koddan konuşmaya veya konseptten konsepte çeviri yapıyorsanız, o zaman muhtemelen yolun dışındasınız demektir.

Uygulamada, tüm alanlar eşit değildir, ne de etki alanı uzmanları. Bazı etki alanlarının yine de çok sayıda İngilizce terminolojisi vardır (örneğin, teknoloji kaynaklı alanlar) ve tam İngilizce seçiminde bulunmayı makul kılar. Bununla birlikte, bazı kültürler bu seçimi etkileyebilir (Fransızca akla gelir) ve İngilizce terminolojinin yayılması ülkeden ülkeye değişir. Diğer bazı alanlarda (Birini isimlendirmek için yasal) bazı terimleri çevirmenin bir yolu yoktur. Veya çeviri, Domain Expert'in görüşmeyi izlemesini kesinlikle zorlaştıracaktır.

Genel olarak, Etki Alanı Uzmanının söyledikleriyle daha fazla ilgileniyoruz. Bu yüzden onlar için işleri kolaylaştırmak istiyoruz. Aksi takdirde, sadece bir UML dersi alabilir ve şemalarımızı okuyabilirdi (şaka yapıyordu). Bu nedenle, buradaki tek gerçek öneri şudur: "Etki Alanı Uzmanı davranışına dikkat edin", konuşmaya katılıyorlarsa ve konuşma sorunsuz devam ederse, muhtemelen yolundasınız demektir, o dili koruyun. Takımda biraz fazla çalışmaya neden olabilir, ama sorun değil. Geliştiriciler olarak, bir bağlamda belirli bir anlamı olan kelimeleri öğrenmek için biraz eğitimliyiz.

Garip bir şekilde, bu soruya her zaman tüm kodların bir dil konuşması gerektiği varsayımı eşlik eder. Bu da zor olabilir. Ben anadili İngilizce değilim ve yabancı dil bilgisi düz değil: beynim isim , soyadı , araba vb. Hakkında konuşurken hızlı ilerliyor , posta kodu hakkında konuşurken bazı ayrıntıları kaçırıyor , kredi hakkında konuşurken yavaşlıyor ve kesinlikle soruyor ipotek hakkında konuşurken güven verici bir açıklama için .

Bu nedenle, yine de, önemli konuşma akışını sağlayacak ve Etki Alanı Uzmanından en yüksek miktarda bilgi ve geri bildirim sağlayacak en iyi kombinasyonu seçin.


1
Eh, zipcode genel İngilizce kelime (olurdu değil posta kodu ). Bir Posta kodu ABD posta servisi özgüdür.
TRiG

1
Düzeltme için teşekkürler. ... bu muhtemelen kaçırdığım detaylardan biri ;-)
ZioBrando

4

Bazı teknik kelimeleri, diğer dilde çeviri olsa bile, dili tarafsız olarak kabul ediyorum.

Örneğin, Almanca kodlama hakkında konuşurken, Almanca bir eşdeğeri olsa bile İngilizce teknik kelimeleri hala Almanca kelimelermiş gibi kullanıyorum.

Senin durumunda tam tersini yaparım. Yüzlerce yıldır yabancı sözcüklerin alındığı gibi bazı teknik kelimeleri anadilinizden İngilizceye alın. Dilbilgisel olarak İngilizce kelimeler gibi davranmalarını sağlayın. İlk başta garip geliyor, ama buna alışacaksın.


1
Bu yeteneklerini bir ekip hatırlatıyor işlerini tartışırken duydum. Bazı Polonyalı işçiler ile ben Norveç oldu. Hepsi ingilizce konuştu, ancak inşaat ve aletlerle ilgili kelimelerin çoğu Norveççe idi. Aptal geliyordu ama iyi iletişim kuruyordu.
Grastveit

3

Çok dilli geliştirme çalışmalarında her zaman bir sorun haline gelen En programlama dillerinin 'nefes aldığı' İngilizce yorumuna katılıyorum

Normalde UL'i programlama ekibinizin dilinde kullanırdım.

Geçmişte yaptığımız şey, etki alanı konularını daha iyi ifade eden yeni kelimeler oluşturmaktır. Fransızca / İngilizce projesinde, çoğunlukla İngilizce merkezli ancak fransız tadı olan (çoğu İngilizce kelimesi zaten Fransızca olduğu kadar zor değil) yapılan kelimeleri içermektedir, ancak bu herhangi bir dil karışımı için geçerli olabilir.

Örneğin

"miktar bois"

İngilizce'de "odun miktarı" veya "odun miktarı", Fransızca dilinde "quantité de bois" olduğu için her iki konuşmacı için de yeterince yakındır. Bu, her konuşmacının öğrenmesi gereken yeni kelimelerin miktarını azaltmalıdır.

Etki alanınız UL ne kadar büyük? Bu sorun olur. Eğer 100 anahtar kelime öbeğinden azsa, bir stil oluşturulmuş melez dil kullanabilirsiniz, eğer daha büyükse geliştiricilerin baskın dilini genellikle daha yoğun olarak ele almaları gerektiği gibi yapıştırabilirim

Herkesin ihtiyaç duyduğu şekilde referans vermesi için bir wiki sözlüğü / eş anlamlılar sözlüğü yayınlayın, böylece anlama için mazeret kalmaz


3

Geçenlerde İsviçre'de bir DDD projesinde çalıştım, etki alanı vergilerdi (özellikle KDV ve İngilizceye kolayca çevrilemeyen başka bir vergi türü ...).

İlk seçeneği seçtiler: Almancada UL, Almancada da.

Bu proje üzerinde çalışmaya başlamadan önce, karışık dil kodu için sizinle aynı isteksizlik yaşadım. Ben (hala) İngilizce olan her şeye sahip olmayı seviyorum, ancak anadili İngilizce olan bir konuşmacı değilim. Ben de yerli bir Alman konuşmacı değilim. Böylece kod tabanını keşfetmeye başladığımda dehşete düştüm.

Bu proje üzerinde bir yıl çalıştıktan sonra, bu davada doğru karar olduğunu düşündüğümü itiraf etmeliyim (diğer resmi İsviçre dilleri olan Fransızca veya İtalyanca da kullanabilirdik, ancak projedeki oyuncuların çoğu yerli Almanca idi). hoparlörler).

Alanın belirli terimlerinin birçoğu, İngilizceye anlamlı bir şekilde çevrilemiyordu. Zaten ekibin geri kalanıyla iletişim kurabilmek için Almanca terimlerini de öğrenmek zorunda kaldım. Zaten ince havadan icat edilmiş İngilizce çevirileri de öğrenmek zorunda kalmak zor olurdu.

Bu yüzden gerçekten etki alanına bağlıdır. Bazı alan adlarının İngilizceye çevrilmesi gerçekten zor olacak ve pek bir anlam ifade etmeyecek.

Muhtemelen ana diline de bağlıdır. Almanca bir dildir, kelimeleri kabaca aynı şekilde, özellikle de İngilizce ile aynı sırada oluşturabiliyordunuz. Örneğin bir vergi beyannamesi bir Steuerdek beyanı olacaktır . Şaşırtıcı derecede farklı değil.

Mesela Fransızca'da nasıl eşdeğer bir sınıf ismi yapacağımı bilmiyorum, mesela, tam tersi bir terim olan, "sıradan d'dôôts" olan doğal terimdi. basit bir örnek. Latin dillerinde (Fransızca, İspanyolca, İtalyanca, Portekizce ...) bu tür bir isimle ilgili deneyim sahibi olan biri varsa gerçekten ilgimi çeker!

Diğer bir zorluk, Almanca'da bazen tekillerden neredeyse ayırt edilemeyen çoğul hallerdir (oysa İngilizce'de neredeyse her zaman sonunda bir s vardır ).

Vurgulanan karakterler tamam, çünkü Almanca'da hepsinde vurgulanmamış bir eşdeğer var ( ü -> ue vb.) Fransızların daha problemli olacağı bir başka nokta ...

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.