Saya tahu ada beberapa pertanyaan yang sudah ada di sini yang terkait erat dengan subjek ini tetapi tidak satupun dari mereka mengambil Bahasa Ubiquitous sebagai titik awal jadi saya pikir itu membenarkan pertanyaan ini.
Bagi mereka yang tidak tahu: Bahasa Ubiquitous adalah konsep mendefinisikan bahasa (baik lisan maupun tulisan) yang sama-sama digunakan di seluruh pengembang dan pakar domain untuk menghindari inkonsistensi dan miskomunikasi karena masalah terjemahan dan kesalahpahaman. Anda akan melihat terminologi yang sama muncul dalam kode, percakapan antara anggota tim, spesifikasi fungsional dan yang lainnya.
Jadi, yang ingin saya tanyakan adalah bagaimana cara berurusan dengan Bahasa Ubiquitous dalam domain non-Inggris.
Secara pribadi, saya sangat suka menulis kode pemrograman dalam bahasa Inggris sepenuhnya, termasuk komentar tetapi tentu saja tidak termasuk konstanta dan sumber daya.
Namun, dalam domain non-Inggris, saya terpaksa membuat keputusan untuk:
- Tulis kode yang mencerminkan Bahasa Ubiquitous dalam bahasa alami domain.
- Menerjemahkan Bahasa yang Dapat Diketahui ke Bahasa Inggris dan berhenti berkomunikasi dalam bahasa alami domain.
- Tentukan tabel yang menentukan bagaimana Bahasa Ubiquitous diterjemahkan ke Bahasa Inggris.
Berikut adalah beberapa pemikiran saya berdasarkan opsi-opsi ini:
1) Saya memiliki keengganan yang kuat terhadap kode bahasa campuran, yaitu pengkodean menggunakan tipe / anggota / nama variabel dll yang bukan bahasa Inggris. Sebagian besar bahasa pemrograman 'menghirup' bahasa Inggris untuk sebagian besar dan sebagian besar literatur teknis, nama-nama pola desain dll dalam bahasa Inggris juga. Oleh karena itu, dalam kebanyakan kasus tidak ada cara untuk menulis kode sepenuhnya dalam bahasa non-Inggris sehingga Anda tetap menggunakan bahasa campuran.
2) Ini akan memaksa para ahli domain untuk mulai berpikir dan berbicara dalam bahasa Inggris yang setara dengan UL, sesuatu yang mungkin tidak akan datang secara alami kepada mereka dan karena itu menghambat komunikasi secara signifikan.
3) Dalam hal ini, para pengembang berkomunikasi dengan para ahli domain dalam bahasa asli mereka sementara para pengembang berkomunikasi satu sama lain dalam bahasa Inggris dan yang paling penting, mereka menulis kode menggunakan terjemahan bahasa Inggris dari UL.
Saya yakin saya tidak ingin menggunakan opsi pertama dan saya pikir opsi 3 jauh lebih baik daripada opsi 2. Bagaimana menurut Anda? Apakah saya kehilangan opsi lain?
MEMPERBARUI
Hari ini, sekitar setahun kemudian, setelah menangani masalah ini setiap hari, saya harus mengatakan bahwa opsi 3 telah bekerja dengan cukup baik untuk saya.
Itu tidak membosankan seperti pada awalnya saya takut dan menerjemahkan secara real time sambil berbicara dengan klien juga tidak masalah.
Saya juga menemukan keuntungan berikut ini benar, berdasarkan pengalaman saya.
- Menerjemahkan UL membuat Anda lebih memperhatikan definisi UL dan bahkan domain itu sendiri, terutama ketika Anda tidak tahu bagaimana menerjemahkan istilah dan Anda harus mulai mencari melalui kamus dll. Ini bahkan telah menyebabkan saya untuk mempertimbangkan kembali keputusan pemodelan domain beberapa kali.
- Ini membantu Anda membuat pengetahuan Anda tentang bahasa Inggris lebih mendalam.
- Jelas, kode Anda jauh lebih menyenangkan untuk dilihat daripada menjadi kecabulan yang membingungkan.