Skip to content

Instantly share code, notes, and snippets.

@rponte
Last active January 18, 2023 02:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rponte/2ca90dd0989c18e7ee390992b6e9945c to your computer and use it in GitHub Desktop.
Save rponte/2ca90dd0989c18e7ee390992b6e9945c to your computer and use it in GitHub Desktop.
TechDay: Aplicando Clean Code em código PL/SQL

Aplicando Clean Code em código PLSQL

Tech-talk semanal, no estilo hands-on, apresentado para equipe de desenvolvimento na empresa MDIAS BRANCO. O código utilizado na talk foi de uma package PL/SQL utilizada em produção.

Pre-Requisitos: O código PL/SQL deve estar coberto por testes automatizados;

Passo a Passo:

  • passo-1: trazendo semantica ao resultado da consulta SQL (dando alias para cada coluna);
    • 1.1: dê nomes semânticos, de negócio e dentro do contexto a cada coluna;
    • 1.2: rodar bateria de testes;
  • passo-2: melhorando nome das variaveis com base nos comentarios e contexto;
    • 2.1: através dos comentários é possível extrair nomenclatura de negócio, contexto e semântica;
    • 2.2: rodar bateria de testes;
  • passo-3: remove comentarios redundantes e desnecessarios;
    • 3.1: com nomes de variáveis melhores, agora é possível remover os comentários;
    • 3.2: rodar bateria de testes;
  • passo-4: extrai logicas para procedures/functions com nome que explicitem seu comportamento;
  • passo-5: move respectivos comentarios para suas procedures/functions;
    • 5.1: com a melhoria dos nomes os comentários passam a ter menos valor no código principal;
    • 5.2: rodar bateria de testes;
  • passo-6: refatorar codigo dentro das procedures (afinal, fica mais facil com logicas dentro das procedures);
    • 6.1: investir tempo para melhorar o código encapsulado dentro das procedures;
    • 6.2: se possivel extrair blocos de código para novas procedures privadas;
    • 6.3: sempre investir em nomes que explicitem seu comportamento;
    • 6.4: procedures seguindo o SRP - Single Responsibility Principle;
    • 6.5: rodar bateria de testes;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment