Considerações sobre o Idioma no Código de Domínio
-
Linguagem Ubíqua vs. Idioma:
- A linguagem ubíqua não está vinculada a um idioma específico, mas sim a conceitos. O idioma utilizado para representar esses conceitos é uma escolha de representação, e não uma característica intrínseca da linguagem ubíqua.
- Assim como diferentes tecnologias podem expor um mesmo recurso de formas distintas (JSON, XML), a linguagem ubíqua pode ser expressa em diferentes idiomas sem perder a essência dos conceitos.
-
Fluência e Complexidade:
- É essencial que a equipe de desenvolvimento tenha fluência suficiente no idioma escolhido para expressar a linguagem ubíqua. A falta de proficiência pode levar a erros de tradução e a complexidades desnecessárias.
- A escolha de um idioma diferente daquele falado pelo especialista de domínio ou pelo time de desenvolvimento pode adicionar custos e complexidade, tornando-se difícil de justificar se não houver um motivo claro.
-
Casos Especiais:
- Em situações onde o especialista de domínio fala um idioma completamente desconhecido pelo time de desenvolvimento, é preciso encontrar uma solução viável. Por exemplo, pode-se escolher um idioma intermediário (como o inglês) que seja compreendido por ambas as partes, mesmo que não seja a língua nativa de ninguém.
- A tradução literal de termos que não possuem equivalentes diretos pode gerar aberrações no código. É recomendável utilizar o termo no idioma original nesses casos.
-
Custos e Benefícios:
- Optar por um idioma diferente do falado pela equipe ou pelos especialistas de domínio deve ser uma decisão ponderada. Se a equipe não tem fluência suficiente no segundo idioma, os custos de comunicação e entendimento podem superar os benefícios.
- A escolha de escrever código em inglês é comum em equipes internacionalizadas, mas deve-se avaliar se essa decisão realmente agrega valor ou se apenas adiciona dificuldades.
-
Pragmatismo:
- A decisão sobre o idioma no código deve ser pragmática. Se o time de desenvolvimento e os especialistas de domínio têm maior fluência em um determinado idioma, esse deve ser o escolhido, desde que facilite a comunicação e a expressão dos conceitos de forma clara e eficaz.
- A utilização de ferramentas como a Wikipédia para traduzir termos específicos é sugerida, ao invés de confiar em traduções automáticas, que podem não capturar o significado correto.
Conclusão
- Escolha Consciente: A decisão de qual idioma utilizar no código deve ser baseada na fluência da equipe e na clareza na expressão dos conceitos. Adicionar um idioma que não seja o mais natural para a equipe ou para os especialistas de domínio pode ser uma escolha desnecessária que só aumenta o custo do projeto.
- Flexibilidade: Não há problema técnico em optar por um idioma diferente, desde que a equipe esteja ciente dos custos envolvidos e preparada para lidar com as implicações dessa escolha.
Que idioma utilizar no código que expressa o modelo de domínio?