Design GuideLines — Parte I

Flavio Ribeiro Lima
4 min readFeb 27, 2022

--

Você sabe a importância de definir um design guidelines para sua equipe?

Times que não entram em acordo e não discutem as formas de como o código deve ser escrito, correm o risco de gerar projetos com formas distintas de escrita de código.

Para evitar uma bagunça generalizada, o primeiro passo é discutir e criar o design guidelines para o time.

Em um design guidelines podem conter dicas e informações sobre performance e boas práticas em relação a tecnologia que o time desenvolve.

Ah! mas já existe o Clean Code, sim ele existe. Mas todos os devs do seu time leram o livro? E todos seguem as mesmas diretrizes? Inclusive os devs jr.? Se a resposta for sim, você não terá problemas com estilo por ex. Minha recomendação é fazer um resumo focando no que o time considera importante.

Mas conhecer e aplicar o Clean Code é o suficiente? De forma macro não, porque existe outro elemento, a linguagem do negócio, que também precisa ser discutida, entendida e definida, esse trabalho não é desenvolvido apenas por desenvolvedores, é preciso incluir o time de negócios. Sim estou falando da Linguagem Ubíqua, mas isso ultrapassa o alvo dessa discussão nesse momento, assim como a DSL (Domain Specific Languages ou Linguagens Específicas de Domínio).

Algumas empresas, ao desenvolver uma linguagem, disponibilizam um guidelines sobre sua tecnologia, mas muitos desenvolvedores não leem e não aplicam as regras. Por isso é necessário trazer essa discussão para o time, para definir e explicitar as regras, principalmente para os recém chegados. E infelizmente poucas empresas possuem um processo bem estruturado de onboarding.

Existe também uma forte discussão sobre qual idioma utilizar na codificação, isso também deve ser discutido, padronizado e definido.

Elementos

Podemos citar como componentes a serem considerados na definição de estilo e nomeação os seguintes elementos:

  • Definir o idioma.
  • Considerar o design guideline da tecnologia utilizada, caso exista.
  • Discutir, definir e criar o design guidelines para a equipe.
  • Divulgar os padrões.

Definir o idioma

Aqui não existe consenso, o time precisa decidir qual idioma será utilizado, mas falando brevemente, quais as vantagens e desvantagens de utilizar ou não o idioma nativo?

Vantagens de codificar em inglês

A escrita do código fica uniforme e aderente aos patterns e a própria linguagem de programação em si, que são em inglês.

Se você trabalha em um time que desenvolve componentes, a escolha pelo inglês pode ser considerada, já que não terão contato com termos de negócio nos projetos.

Desvantagens de codificar em inglês

Os problemas de codificar em inglês são:

  • A equipe precisa ser apta no idioma, e quando isso não ocorre, é preciso definir um dicionário de termos traduzidos. Mas acredite, existem tantos termos que seria mais viável a equipe falar o idioma.
  • Tradução da Linguagem Ubíqua e desconformidade. Aqui o problema é sério. Se o time vai codificar em inglês as operações de negócio também devem ser traduzidas, e acredite, podem aparecer coisas estranhas. Sobre a violação da Linguagem Ubíqua pegue como exemplo o método AddCustomer, na área de negócio da sua empresa, o processo de inclusão de um novo cliente na carteira da empresa realmente é chamado de AddCustomer no dia-a-dia? Acredito que não, ainda que seja outro termo utilizado, pense em como ficaria em inglês, faz sentido? É o que pronunciam no dia-a-dia?
  • As conversas com a equipe de negócios podem ficar confusas, e todos os desenvolvedores devem saber claramente a qual termo de negócio em português equivale ao que está no código em inglês.
  • As documentações serão escritas em inglês ou em português?
  • Adaptação: As pessoas que ingressam no time terão que se adaptar, por que todos começamos a codificar em português.

Vantagens de codificar em português

Codificar em idioma nativo é mais fácil e temos aderência forte com os termos utilizados na área de negócios e a Linguagem Ubíqua fica intacta. Não é necessário um dicionário de termos traduzidos, e as documentações em português irão refletir o que encontramos no código.

Desvantagens de codificar em português

A principal desvantagem é a mistura no código de inglês com português, por que não traduzimos os patterns, então você acaba escrevendo coisas como: ClienteService, ProdutoService, e etc., sendo que CustomerService, ProductService soam melhor.

Outra dificuldade de codificar em português, é definir os limites do que deve de fato estar em português ou não. Tome como exemplo o Specification Pattern, ali fica uma mistura clara entre inglês e português que pode gerar confusão.

Veja abaixo como fica em cada abordagem do ponto de vista do desenvolvedor e considerando a Linguagem Ubíqua.

Equipe de negócios falando em português e código em inglês.
Equipe de negócios falando em português e código em português.

Essa foi a primeira discussão para se pensar antes da definição do Design Guidelines. Espero que tenha gostado das ideias e que faça sentido para seu dia-a-dia.

--

--

Flavio Ribeiro Lima

Desenvolvedor de Software. Entusiasta de boas práticas, padrões de desenvolvimento e arquitetura de sistemas.