Dojo de programação PL/pgSQL

Propaganda
Squeenote
1.
Bem vindos ao dojo de PL/pgSQL!
2.
O que é um dojo?
Aprendizado através da prática
Resolução de um problema com foco na técnica e não no resultado
Se você está aqui, você vai programar!
3.
Boas práticas
O dojo tenta incentivá-las: TDD e Programação em pares
O TDD não é muito popular entre programadores PL/pgSQL
No entanto existem diversas ferramentas para isso
4.
Método
Sempre temos um piloto e um co-piloto
Os programadores devem narrar o que estão fazendo e o motivo.
Testes falhando: ninguém fala além do piloto e co-piloto
(podem fazer perguntas em casos de emergência)
Testes passando: a platéia pode dar dicas de refatoração, etc...
5.
PL/pgSQL Básico
Lembram-se do pascal?
CREATE OR REPLACE FUNCTION hello_world()
RETURNS text
LANGUAGE plpgsql
AS $$
1 of 2
Squeenote
DECLARE
vlabel text := 'Hello World';
BEGIN
RETURN vlabel;
END;
$$;
6.
PL/pgSQL Básico
Selecionando valores do banco
CREATE OR REPLACE FUNCTION pick_relation()
RETURNS text
LANGUAGE plpgsql
AS $$
DECLARE
vlabel text;
BEGIN
SELECT relname FROM pg_class ORDER BY random()
LIMIT 1 INTO vlabel;
RETURN vlabel;
END;
$$;
7.
Testando com Epic
Primeiro escrevemos uma função de teste que testa um comportamento
Sempre finalizamos a função com um
RAISE EXCEPTION '[OK]';
Sempre comentamos antes do BEGIN principal:
-- module: dojo
Rodamos os testes com:
SELECT * FROM test.run_all()
8.
O problema da vovó surda
Dizer para a vovó qualquer coisa em minúsculas faz com que ela responda: "O que foi? Fale mais alto!"
Dizer algo em maiúsculas faz com que ela responda: 'Ahhh... Você quis dizer: ' || mensagem em
maiúsculas || ' ?'
Quando queremos sair precisamos dizer 'TCHAU VOVÓ!' 3 vezes consecutivas e após a terceira vez ela
responde: 'Tchau, não precisa gritar!'
Qualquer coisa entre os 'TCHAU VOVÓ!' faz a avó surda esquecer que estamos indo embora
2 of 2
Download