Ubiquitous Language
Já faz algum tempo que alguns alunos me perguntaram o que era Ubiquitous Language, com isso me motivou a fazer este post. Espero realmente que seja útil.
Ubiquitous Language é um conceito muito comum em DDD(Domain-driven Design).
Basicamente é um dos conceitos que o DDD utiliza, que tem como finalidade: “falar” a língua do usuário/cliente . Manter uma única linguagem de domínio que seja entendível tanto para os desenvolvedores quanto para o cliente.
Vamos falar de outra forma.
No DDD você tem o Domain/Domínio que é o primeiro D, que é a parte mais “importante” desta abordagem. Pois esse domínio é exatamente o problema que queremos resolver, o problema do cliente.
Problemas
Normalmente não conhecemos a área do cliente, por isso se faz necessário o entendimento por completo ou parcial do domínio(problema do cliente).
O cliente usando a sua linguagem pede algo que pode ser entendido[isso acontece sempre] de outra forma pelo desenvolvedor ou analista.
Outro problema também seria a falta de cuidado para definição de nomes de classes, métodos, variáveis etc, causando problemas de entendimento na equipe e favorecendo ao aumento na dificuldade de manutenção dessas classes e entendimento no código.
Possível solução
Para esses “problemas” anteriores se os desenvolvedores tivessem o conceito de Ubiquitous Language bem definidos na equipe, esses problemas poderiam ser evitados. Quando se tem por exemplo uma classe chamada StrUtil.java onde muitos de nós adotamos como classes utilitárias[inclusive eu confesso, mas não da forma como passada aqui claro 😉 ] é no mínimo perigoso, pois o nome dessas classes não refletem bem a sua real função.
Mas então você defende: “- Ah mas é uma classe utilitária de strings, onde você pode fazer certas manipulações com Strings”.
Ok ! Mas muitas vezes por não tem um bom senso o desenvolvedor acaba criando uma classe UtilUtil, ou seja, essa sua classe StrUtil não está manipulando somente String ela pode está fazendo determinadas funções que são completamente diferentes, métodos que não tem nada em comum, como manipulação de datas etc, e esse é o problema.
O que o DDD com o Ubiquitous Language fala é bem simples:
Todo comportamento do seu sistema deveria estar implementado em classes cujos nomes devem fazer parte do domínio do problema, do domínio do cliente.
Isso é válido não somente para nomes de classes,mas para métodos, variáveis e tudo dentro do domínio, assim como também para o problema em si.
Esses nomes devem ter o mesmo[se não bem próximo] significado tanto para a equipe quanto para o cliente, facilitando assim a comunicação entre os mesmo, sem falar que irá melhorar muito a manutenção e entendimento do código.
Essa “linguagem” é um meio termo entre a linguagem técnica e a linguagem do cliente. O seu cliente não irá entender seu dialeto técnico e você provavelmente não irá entender[pelo menos no início] a linguagem do cliente. Assim utilizando esse conceito você irá facilitar a comunicação entre todos[desenvolvedores, analistas e cliente].
O cliente[conhecedor do domínio/problema em detalhes] deve conversar com os desenvolvedores[que possuem o conhecimento para a solução] que conhecem a programação em detalhes, para juntos, chegarem a uma língua comum, onde que todos consigam se entender e que será usada não somente nas conversas mas também no desenvolvimento do software.
Com essas conversas constantes e com a utilização desse conceito de linguagem comum, todos juntos chegarão a um consenso sobre o domínio, definindo assim o modelo do domínio[Domain Model].
Domain Model em resumo é a abstração do problema real, criada em parceria com os especialistas no domínio[normalmente o cliente e/ou analista] com os desenvolvedores.
É utilizando esse modelo que os desenvolvedores vão implementar em código[seu código irá refletir a solução para o problema do cliente], exatamente como foi acordado e as chances de cair naquele velho problema de telefone sem fio[cliente diz X, analista entende –X+2, desenvolvedor implementa Y] serão mais escassas.
Conclusão
Podemos observar que o conceito de Ubiquitous Language é bem simples, e parece que não tem muita importância, pois no resumo é apenas a padronização de nomes de métodos, classes etc, claro que tudo dentro do domínio.
Mas vimos também que não é somente isso, a idéia de Ubiquitous Language no DDD é criar um canal de comunicação entre o cliente e a principal peça: o desenvolvedor.
Pois é ele que irá criar o produto que o cliente deseja.
E através da Ubiquitous Language podemos juntamente com o cliente definir um modelo para o sistema, fazendo com o que as chances de problemas de má interpretação sejam anuladas[ou parcialmente anuladas], assim deixando o sistema mais limpo, fácil manutenção, simples alteração e de quebra, sendo entregue no prazo.
Bem espero ter conseguido explicar um pouco sobre Ubiquitous Language.
Abraços
dark web markets dark web websites
dark website darknet market
It is appropriate time to make a few plans for the future and it is time to be happy.
I’ve read this publish and if I may I want to recommend you some
attention-grabbing issues or suggestions. Maybe you can write next articles referring to this article.
I want to learn even more things approximately it!
onion market darknet market lists
buy adalat paypal fexofenadine 120mg oral generic allegra 120mg
You are also probably tto be charged defaulted payment charges, processingg fees, andd extra.
Look into my web site – 소액대출
The legal on line gambling age is 21 in just about every state with the exception of 18 in Wyoming
and Washington, D.C.
Here is my website rankshop.kr
drug markets dark web dark market onion
All the games are tested for fairness and randomness, so you can be positive you
happen to bee having a fair shake.
Look at my web blog … click here
Café Casino iss a single of the handful of on the internet gambling internet
sites thbat surprised us.
my blog – https://separesupere.com.br/
Yes,your credit score does not matter here, only
you could finish up with a greater APR (Annual Percentage
Rate) if your
Also visit my webpage … 무직자 대출
The payday enders are nott interested in checking your credit history prior to they can grant
you the loan.
Take a look at my web page; 소액대출
The most distinct difference is that teens and older Sims can geet component-time jobs, whilst teens are restricted from careers.
Here is my blog post :: 비제이 알바
By comparison, in the U.S., unemployment ammong thosxe ages 15 to 24 fluctuated among 8% and 9% in 2018.
Check out my web-site :: webpage
The median value of a dwelling in Baton Rouge is estimated to be $174,000.
Look into my web site; 소액대출
darknet drug store dark websites
dark net blackweb official website
dark web link darknet drug market
dark web sites links tor dark web
tor markets links dark web site
deep web links deep dark web
To see information click the link beneath annd
head to thee ‘Promotions’ link at the bottom oof thhe page.
Check out my page read more
tor markets 2023 dark markets 2023
dark web links darkmarket 2023
dark web markets deep web drug store
dark web site deep web drug markets
tor market url dark market
darknet market darknet websites
tor markets 2023 deep dark web
deep web drug markets onion market
darkmarkets darknet links
Some sportsbooks will also function a reside feed of the events to keep their players engaged and continuously betting.
My web page 토토사이트검증
buy generic nifedipine buy perindopril pill allegra cheap
darknet websites deep dark web
drug markets dark web darknet websites
darknet markets tor markets
dark website tor market url
USA North 811 is a 501(c)(6) non-profit organization funded by over 1,500 utility owners
annd governed by 34 board members electe fropm the membership.
Feel free to visit my web site; 비트파워볼
dark web market deep dark web
Typically, each and every NFT lottery game prize iis
about $7,250, based on the marketplace value of the APX.
my web site: 파워볼중계
Please incorporate a copy of valid, government-issued,
photo identification (e.g. Driver’s Licence or BCID) along wigh the original ticket.
Visit my web site :: EOS파워볼
Other alternative digital payment methods—like debit cards or electronic checks—are
linked directly to client accounts.
Here is my website: 동행복권 파워볼
deep web search tor market links
They offer you reasonable odds, swift payments, and substantial bonuses on NHL games.
Visit myy site here
darknet site dark web search engines
The odds of winning the lottery depends on the number
of balls you have to opt for and the quantity of lttery pots.
Visit my web site – homepage
tor darknet dark net
Make some coin by teaching individuals how to survive in the water as a portion-time swimming instructor.
My web site – 밤일 알바
tor markets darknet websites
In addition to sports betting, The Pools also delivers a variety of lottery-style games, including scratchcarcs
and immediate win games.
Heere is my site; http://www.podsliving.ph