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
tor markets 2023 darknet sites
dark markets dark market list
the dark internet dark web market links
onion market darknet drugs
free dark web tor dark web
dark web link darkweb marketplace
dark web websites dark web site
darknet markets bitcoin dark web
Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates.
I’ve been looking for a plug-in like this for
quite some time and was hoping maybe you would
have some experience with something like this. Please let me know if
you run into anything. I truly enjoy reading your blog and I
look forward to your new updates.
It worsens the labor shortage and adds to inflation, generating everybody poorer.
My web page; web page
A single back-of-the-envelope analysis by the Trump
administration foud that a paid leave policy
would have saved the fedeal government upward of $1 trillion.
Feel free to visit my web page; 이지알바
The deterministic random numbrr generator’s fairness
can also be tested with this system.
Review myy web blog: click here
“I made use of to go to sleep with my telephone in my hand,
Googling jolbs andd telling myself to never ever give up,”
says Brown.
Here is my webpage – 이지알바
dark web market dark market
If that mutual trust involving employer and employee is absent, the employee will disengage.
Also visit my blog post – web site
This series explores topics surrounding women who began their careers in Japan following the implementation of equal possibilities employment legislation iin the mid-1980s.
Heere is mmy web site … 유흥알바
Hi there, i read your blog occasionally and i own a similar one and i was
just wondering if you get a lot of spam remarks? If so how do
you protect against it, any plugin or anything you can recommend?
I get so much lately it’s driving me crazy so any help is very much appreciated.
Heya i’m for the primary time here. I found this board
and I in finding It really useful & it helped me out much.
I am hoping to provide something again and help
others such as you helped me.
Hi there, this weekend is good for me, as this moment i am reading this fantastic informative article here at my home.
“I have unlimited sick time, double getaway (compared to where I was ahead of), and double paid holidays. Plus, it is one hundred% remote.
Here is my web page :: webpage
The app comes with security capabilities whifh let you to use
facial recognition to loog in.
my website homepage
Simply desire to say your article is as amazing.
The clearness on your post is simply excellent and i
can think you are knowledgeable in this subject. Well together with your permission let me to
grab your feed to stay updated with imminent post. Thanks a million and please keep
up the gratifying work.
Hello to every body, it’s my first pay a visit of this weblog; this web site carries remarkable and actually excellent
information in favor of visitors.
Paragraph writing is also a excitement, if you know afterward you
can write or else it is complicated to write.
I really like what you guys are usually up too. This type of clever work and reporting!
Keep up the great works guys I’ve included you guys
to my blogroll.
tor market url dark markets 2023
fantastic post, very informative. I’m wondering why the other experts of
this sector don’t realize this. You should proceed your writing.
I’m confident, you have a great readers’ base already!
The Initial State lived up to itss name in 2012 by becoming the initiql US state tto legalize on line casinos.
my web site get more info
Its such as you learn my thoughts! You seem to grasp so much about this, such as you wrote the guide in it or something.
I feel that you could do with a few percent to pressure the message home a little
bit, however instead of that, this is magnificent blog.
An excellent read. I will definitely be back.
But the emlhasis shouldn’t just be on tthe financial challenges women face from the
pandemic.
Also visit mmy web-site – 알바
Thee bonuses come in tthe type of bonus credits,
free of charge spins, or a combination of both.
Allso visit my web site …read more
tor market tor dark web
It’s no surprise thbat this is a single of the major sportsbooks foor US players.
Feel free to surf to my page … web page
The venue is normally equipped with ticket scannmers
orr an access manage system.
My blog post :: 파워볼분석
As shown in Figure 2, 63% of survey respondents mentioned they’re functioning either
full time or componebt time.
my web blog; 란제리알바
This casino also holds about 20 events a year like game tournaments, dinner performances, and
food festivals.
my wesite … https://yrmvv.thezenweb.com
Hello my family member! I want to say that this article is awesome, nice written and include approximately all vital infos.
I’d like to look extra posts like this .
Maine is a member oof the Multi-State Lottery Association which means they
give tickets forr lotteries such as Powerball and Megabucks Plus.
My web blog 클레이파워볼
Wow, superb blog structure! How lengthy have you been running
a blog for? you make blogging glance easy. The full look
of your web site is great, let alone the content material!
The croupier then has to pin the wheel of the roulette table
in only one direction and a ball iin the opposite path.
Stop by my web page … caryi.bloggerchest.com
drug markets dark web darknet seiten
Howdy! Someone in my Facebook group shared this website with us so
I came to check it out. I’m definitely enjoying the information. I’m book-marking and will be tweeting this to
my followers! Exceptional blog and superb style and design.
Hi! I could have sworn I’ve been to this blog before but after reading through some of
the post I realized it’s new to me. Nonetheless, I’m definitely delighted
I found it and I’ll be bookmarking and checking back often!
Most lenders present immediate approval and quick funding foor personal loans.
Feel free to surf to my web-site :: 모바일대출
Insider viewed Megan’s documents to verify her revenue aand mortgage payments.
Here is my homepage :: site
Even so, the enterprise also has a casino section,
virtual sports, poker category, bingo variations, etc.
myweb site … website
There aree really a handful of on the net loans that have rapid applications
and decision processes.
Allso visit my web blog – 대환대출
Thanks a lot for sharing this with all folks you really realize what you are speaking about!
Bookmarked. Kindly additionally discuss with
my website =). We may have a link alternate arrangement among us
1 you use your Resorts Casino bonus code, you wil have access to what is an superb selection of games.
Here is my web site … check here
VIP players can get pleasure from even additional perks, such as exclusive bonuseds and invitations to
particular events.
Feel free to visit my webpage … zoran.blogsvila.com