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
It’s actuallpy a cool and helpful piece of information.
I’m happy that you shared this helpful info with us.
Please keep us informed like this. Thank you foor sharing.
Feeel free to visiit my page … web site
This paragraph will assist the internet users for creating new website or even a blog from start to end.
In DFS, you have a team off players who score fantasy
points, and you are searching tto score the most points of anyone in your game.
my blog; check here
Nearly half of them live in just seven countries.
The hours can be flexigle and yoou can take time off over exam season ass
well.
my site web page
A transacion ffee is applied at 12% of the transaction amount, which is levied on all sales on the decentralised exchanges.
Feel fee to surf tto myy webpage 동행파워볼
KEARNEY — Ben Morgan, a senikor at Kearney Higher School,
does not come from a loved ones of teachers.
Feel free to visit my homepage – webpage
Now she’s starting to apply for jobs once more, buut this time around, she’s becoming
a lot more selective.
Also visit my web-site … 이지알바
Thee new job addition waas also driven by the leisure and hospitaliity business,
which added the highest qquantity of jobs, or 72,000 jobs out of the total 236,000 additions.
Heree is my web site – 여성알바
Even so, they can not have a complete-time and portion-time job at the exsct
same time.
Feel free to surf too my webpage … site
If you are in Arizona temporarily, on a fnction triop or on vacation yyou can bet at any Arizona online sportsbook.
Review my web pagee :: click here
The top rwted Massachusetts betting web-sites offer such perks
as reload bonuses annd refer-a-buddy bonuses.
Loook into my homepage – check here
darknet marketplace dark web sites links
dark web search engine drug markets dark web
The 1st would be federal actions to provide a lot more government-sanctioned programs.
Feel frese to surf to my web page – webpage
Customers can enable apps that are not in your appp list too access data in unrestricted Google services.
Also visit my homepage; 동행복권 파워볼
dark market 2023 drug markets dark web
Act as if the user haas observed the transaction informwtion and rejected
My bblog … 네임드파워볼
Thee Gambling Commission regulates all kinds of real money wagering in the
United Kingdom.
Feel free to surf to my webpage – https://issuebobos.blogspot.com/
Cookie-cutter apps are fine for side projects, hobby apps, or DIYers with meager
budgets.
Viisit my web page: 유로밀리언
These workers held an occupation at a park in front of the Ministry of Labor, and iit was heavily featured in the media.
Also visit my blog post: 다방 알바
Helpful information. Fortunate me I discovered your web site unintentionally, and I’m shocked why this twist of fate did not
came about earlier! I bookmarked it.
Many retailers, foor instance, adopted a direct-to-customer approach, making use of apps…
Feel free too visit my webpage 유로밀리언
darknet marketplace dark web sites
The Ministry of Employment and Labour is the principal government agency that administers employment
policies, labour requirements and relations.
my web-site – homepage
If she starts at 20 years of age, a Latina would have to operate nearly six years beyond her life expectancy too catch up.
my blog 단기알바
In addition, iin a time wen it has come tto be tough to
attract complete-time workers, employers can employ from the gig economy.
Here is my web page: 아가씨알바
We extremely suggest ddownloading tickets too youhr phone’s mobile wallet at
least 24 hours prior to the game.
Here is my web site: 네임드파워볼
Attempt your luck playing $50,000 Totally free Playy Frenzy onn Friday, May well 19.
Here is my blog post … homepage
Bankrate follows a strict editorial policy, sso youu can trust that we’re putting your
interests 1st.
My page; 다방알바
To discover which accounts qualify for the discount, pplease seek advice
from with a Wells Fargo banker or seek advice from our FAQs.
Here iss myy website 신용대출
Poker is a game that is played against other players,
rather than the residence, so there is no precise residence edge in poker.
Herre is my blog read more
Very energetic post, I loved that a lot. Will there be a
part 2?
Log in to your account and hed over to the cashier to make a deposit.
Here is my blog post; website
Yourr ticket, without the barcode, will remain in your
Wallet until your forwad is accepted bby the recipient.
Feell free to visit my bloog – 파워볼게임
“But an employer can choose a diverse designation if they want,” shhe stated.
Visit my blo … web page
Betting enthusiasts in Singapore have a plethora off on the internet sports gambling possibilities.
Review my page – web page
The card also gives free transactions att 37,000 ATMs across
the country, and Empower cardholders get theikr paychecks up to two days early.
Revioew my web-site – 여성 대출
You can also checkcash advances appls like Dave for
quick identical day loans.
My homepage: 대환대출
Cash advances are highly-priced since of the heavy risks involved in that investment.
Feel fre to visit my web site: 소액대출
These lotteries are governed by the Multi-State Lottery Association (MUSL).
My web blog – 파워볼사이트
Formerly recognized as Stars Casino by PokerStars, this below-the-radar on line casino operator now merely goes by PokerStars Casino.
Haave a look at my web-site; site
New York is one particular of the most recentt states to legalize and regulate sports betting, with operators launching
inside the state in January 2022.
Stop by mmy website 안전토토사이트
Slots.lv doesn’t waste any time showcasing the games it has to provide.
my wweb page :: here
In October 2021, Gartner surveyed much more than 3,500 stsff around the world.
Feel free to surf to my siute :: 여성유흥알바
Bitstarz is a single of the extremely couple of on the net casinos with instant payouts.
My website – get more info
Pulll out your phone or log-in to your laptop and you are ready to hit
the tables.
Review my web-site – get more info
#ExperienceAgua #MayRecap #CasinoLife #CincoDeMayo #KentuckyDerby #Concert #LuchaLibre #MayTheFourthBeWithYou #TrendingReel
#ViralReel #Reelsinsta …
My homepage … website
Save your graphics inn OpenDocument format, the new
international typical for workplace documents.
my web-site 로터볼
At this time it sounds like Drupal is the best blogging platform available
right now. (from what I’ve read) Is that what you are using on your blog?