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
APR (Annual Percentage Price) is made usse of to calculate
the yearly % on a loan.
Have a look att my page; 정부지원대출
drug markets onion darkmarket 2023
The installment loan lets you set up a payment program so
you can repay your loan in increments more than a period
of time rather than iin one particular lump sum all at once.
Also visit my blog post 대환대출
Every singgle game can provide riches, from progressive jackpots to enormous payoouts to all sorts of goodies.
Feel free to visit my web-site :: https://henax.csublogs.com/
Check for thhe site’s reputation, trustworthiness, and track record of timely payouts.
Feel free to visit my page … 토토사이트추천
For every $three eaened morre than $56,520, the SSA deducts $1till you reach full retirement age.
Feel free to surf to my site; 카페 알바
For those who escaped Korea’s challenging job market place, not all has been rosy.
Review my webpasge – web site
Any loan payments submitted using other SBA types
on Spend.gov will be rejected.
Revuew my blog post … 소액대출
The presudent is also urging Korean firs to recruit men and women with a wider variety of experiences.
Heere is my web site: 유흥알바
According to Sensor Tower, health and fitness app downloads are up 47%
year-more than-year.
My blog post – 파워볼분석
The quantity of jobs lost in the wholesale and retail and the finance and
insurance coverage segments came in aat 24,000 and 24,000 each.
My homepage web page
If youu have poor credit, employment staility is a essential aspect in qualifying for
a vehicle loan.
Feel free to visit my page – web page
When you want to money out your winnings, most of the banking alternatives are available at that stage, also.
Also visit my web-site: 토토사이트검증
tor markets links darknet sites
how to access dark web darkmarket link
tor dark web dark markets
You hve to present your game ticket in order to acquire your
winnings.
my webpage; 코인파워볼
The sikte connects respected lenders with people today whoo
want tto borroiw income.
my homepage :: 신용대출
It wwill not save ykur original numbers, but itt will
save the game and quantity of plays you chosen.
my site – 동행스피드키노
It ought to be just ass uncomplicated when yyou play lotterdy online.
Feeel free to visit my web blog: FELX비트볼
Custojers whoo make a deposit byy means of paysafecard, PayPal, Neteller, or
Skrill will not be able to qualify for the signup offer you.
Feel free to visit my web-site :: jeenee.co
If it was produced in the last month, most probably, they are a scammer.
My blog post :: 동행파워볼
His “initial high” came wheen he won a couple hundred
dolloars while playing dice, he told ABC News.
Also visit my blog – 토토사이트추천
darknet drug links tor market
Depending on your situations, bank loans could be the best choice.
Here is my website; 신용대출
The New Yorkk Rangers, a single of the NHL’s Original Six teams, oasts a hockey tradition unlike any
other.
Have a look at my site – ailetsgo.com
Supreme Court handed down a choice in Murphy v.
NCAA that would alter the sports wagering landscape forever.
my website: 토토사이트추천
Thiis iss the asult agee in most states and that is a single of the 1st needs ffor the loan.
my blog post – 24시대출
drug markets dark web dark web links
These scams are typically primarily based on the buyer’s (and probably the seller’s) misunderstanding of probability and random
numbers.
Also visit my wensite 넷볼파워볼
Nevertheless, some component-time jobs call for Social Stats to
be at a certain Rank.
Feel fre to syrf to my homepage :: 밤알바
Thhe opposition is prepared to exploit any hint of betting as much as doable.
My homepage: get more info
deep web drug links deep web sites
Yeah we all like premier league and football in basic but what iif it’s one particular of these boring
international break weeks?
Here iis my web blog: here
A signature loan is a kind of unsecured loan that can be utilised for a wide variety of
purposes.
Review my blog posst 주부 대출
Other characteristics, like no fees, mobile apps and direct payments to creditors if you
are consolidating debt, set some loans apart.
My web blg … 개인돈대출
darkmarkets onion market
deep web drug store dark web links
If you’re exstra imto correcting the words than writing them,
take on freelance editing or proofreading.
Allso visit my blog web site
Your deposit need to be instant and you’ll be credited with your bonus ass well.
Visit my page … check here
free dark web dark web sites
tor market dark web link
Forr example, Betway facilitates betting oon singles oor accumulators.
Feel free to surf to my page :: 안전토토사이트
Load funds onto the cadd for easy deposits to your plaayer account.
my blog post: website
You will be reminded when funds are withdrawn from you account,
to stop any surprises.
my web page – 소액대출
Everygame is a sportsbook, casino, and poker rom all rolled into one particular.
Feel free to visit my blog post – 메이저토토사이트
black internet darkmarket
darknet marketplace dark markets
darknet market lists bitcoin dark web
So, Checketts quit her daytime office position and got a element-time gig aat evening at an ice cream
shop.
My website :: 언니알바