Me fizeram essa pergunta e eu não soube responder (o que não é nenhuma surpresa :oops: )
No DDD há aquela questão da linguagem ubíqua, mas como fica isso em relação a diferentes idiomas?
Ex: Se a empresa adota o padrão de programar em inglês, mesmo atendendo usuários brasileiros, usando as traduções equivalentes para os termos que os usuários utilizam, estaria violando este princípio?
Se sim, então como ficaria por exemplo se eu tiver que desenvolver um software para atender a um grupo da china por exemplo, como eu poderia trabalhar com um modelo de domínio em mandarin?
[quote=magnomp]Me fizeram essa pergunta e eu não soube responder (o que não é nenhuma surpresa :oops: )
No DDD há aquela questão da linguagem ubíqua, mas como fica isso em relação a diferentes idiomas?
Ex: Se a empresa adota o padrão de programar em inglês, mesmo atendendo usuários brasileiros, usando as traduções equivalentes para os termos que os usuários utilizam, estaria violando este princípio?
Se sim, então como ficaria por exemplo se eu tiver que desenvolver um software para atender a um grupo da china por exemplo, como eu poderia trabalhar com um modelo de domínio em mandarin?[/quote]
Esta perguntando se a equipe precisa utilizar uma linguagem comum? Isso me parece óbvio e nem tem nada a ver com DDD, ou não entendi o que vc quis dizer?
O importante é o time usar os mesmo termos. Por exemplo :
“funds pending” em inglês, se todas as pessoas que falam em protuguês traduzirem isto para um único termo, “Fundos Pendentes” não acho que haja problema. O errado seria alguns chamarem de “Fundos Inválidos” e outros de “Fundos Pendentes”. Isso é o que gera os erros.
Linguagem onipresente não tem nada haver com o idioma nativo do desenvolvedor, e sim com a linguagem expressada dentro do projeto de forma que quando dita todos entendam do que se trata.
O que gostaria de saber é se a equipe trabalhar em um idioma diferente do idioma que o cliente usa (Ex: Português x Inglês, Português x Mandarim, etc), se isso vai contra o conceito de linguagem ubíqua.
Ubíquo é sinônimo de onipresente, quando você diz que está utilizando a linguagem Ubíqua do DDD você está dizendo que seus analistas de negócio, usuários e programadores (Todos os invilvidos) mantém um idioma comum para falar a respeito do domínio.
Como essa linguagem está relacionada ao conceito do termo acredito que o seu exemplo não viola o principio.
Também não são todos os termos que entram nesse “Idioma” são aqueles que podem ser comuns as áreas, vide seta verde da imagem:
No seu caso se houverem termos em uma língua que não exista em mandarim, você teria que adequar sua Linguagem Ubíqua.
[quote=Giulliano]O importante é o time usar os mesmo termos. Por exemplo :
“funds pending” em inglês, se todas as pessoas que falam em protuguês traduzirem isto para um único termo, “Fundos Pendentes” não acho que haja problema. O errado seria alguns chamarem de “Fundos Inválidos” e outros de “Fundos Pendentes”. Isso é o que gera os erros.
Linguagem onipresente não tem nada haver com o idioma nativo do desenvolvedor, e sim com a linguagem expressada dentro do projeto de forma que quando dita todos entendam do que se trata.[/quote]
Exato. O fato de diferentes pessoas falarem diferentes idiomas não impossibilita chegar a um entendimento comum sobre os conceitos, a linguagem ubiquita. Mas esse processo de tradução é um peso a mais que acarreta no processo, isso sem dúvida.