Я знаю, що тут вже є деякі питання, тісно пов'язані з цією темою, але жодне з них не бере всюдисущу мову як вихідну точку, тому я думаю, що це питання виправдовує.
Для тих, хто не знає: всюдисуща мова - це концепція визначення мови (як розмовної, так і письмової), яка однаковою мірою використовується для розробників та експертів домену, щоб уникнути невідповідностей та неправильної комунікації через проблеми перекладу та нерозуміння. Ви побачите ту саму термінологію, яка відображається в коді, розмовах між будь-яким членом команди, функціональними характеристиками та ін.
Отже, мені було цікаво, як поводитися з всюдисущою мовою в неанглійських доменах.
Особисто я дуже віддаю перевагу написанню коду програмування англійською мовою повністю, включаючи коментарі, але, звичайно, виключаючи константи та ресурси.
Однак у домені, що не є англійською, я змушений приймати рішення або про:
- Напишіть код, що відображає всюдисущу мову на природній мові домену.
- Перекладіть всюдисущу мову на англійську і перестаньте спілкуватися природною мовою домену.
- Визначте таблицю, яка визначає, як всюдисуща мова перекладається на англійську.
Ось кілька моїх думок на основі цих варіантів:
1) У мене є сильна відраза до змішаного мовного коду, тобто кодування за допомогою імен типу / члена / змінних тощо, які не є англійською мовою. Більшість мов програмування значною мірою "дихають" англійською мовою, а більшість технічної літератури, назви шаблонів дизайну тощо також є англійською мовою. Тому в більшості випадків просто немає можливості повністю писати код не-англійською мовою, так що ви все одно змішані мови.
2) Це змусить експертів домену почати думати і говорити в англійському еквіваленті UL, що, мабуть, не прийде їм природно і тому значно заважає спілкуванню.
3) У цьому випадку розробники спілкуються з експертами домену рідною мовою, тоді як розробники спілкуються один з одним англійською мовою, а головне, вони пишуть код, використовуючи англійський переклад UL.
Я впевнений, що не хочу йти на перший варіант, і я думаю, що варіант 3 набагато кращий, ніж варіант 2. Що ви думаєте? Я пропускаю інші варіанти?
ОНОВЛЕННЯ
Сьогодні, приблизно через рік, щодня займаючись цим питанням, я повинен сказати, що варіант 3 для мене спрацював досить добре.
Це не було набридливо, як я спочатку побоювався і переклад у реальному часі під час розмови з клієнтом також не був проблемою.
На основі свого досвіду я також виявив такі переваги.
- Переклад UL змушує вас більше уваги приділяти визначенню UL та навіть самому домену, особливо коли ви не знаєте, як перекласти термін, і вам потрібно почати переглядати словники тощо. Це навіть змусило мене переглянути рішення щодо моделювання домену. декілька разів.
- Це допомагає зробити ваші знання англійської мови більш глибокими.
- Очевидно, що на ваш код набагато приємніше дивитися, замість того, щоб бути непристойною непристойністю.