Porque aprender várias
linguagens me tornou um DBA
(e desenvolvedor) melhor?
por Dickson S. Guedes
Definição de “melhor”...
É sobre o quê?
● Vou ganhar mais dinheiro?
● Vou ficar mais inteligente?
● Vou aprender novas linguagens de programação?
● Vou dominar o mundo?
● Vou ser mais feliz?
Situação de muitas empresas com
os papéis DBA e DEV
Silo DBA
Silo DEV
Situação de muitas empresas com
os papéis DBA e DEV
PÁ!Silo DBA
Silo DEV
Situação de muitas empresas com
os papéis DBA e DEV
PÁ!
PÁ!Silo DBA
Silo DEV
Situação de muitas empresas com
os papéis DBA e DEV
PÁ!
PÁ!
QUE SILOS SÃO
ESSES?
É sobre o que?
É sobre empatia
É sobre empatia
conhecimento
É sobre empatia
conhecimento
humildade
É sobre empatia
conhecimento
humildade
e acima de tudo ...
entregar valor!
Mas…
como que aprender várias
linguagens vai me
permitir isto?
Então vamos ver alguns exemplos
Java
Muito utilizada no mundo
“Enterprise”
Orientação a Objeto
ORM
Hibernate
Troca de mensagens
@Annotations
Coisas que você verá no Java
● JDBC, Dialect
● compra.getProduto().getCategoria().getNomeCategoria()
● use JOIN FETCH
● PreparedStatement
○ SELECT a, b FROM tb WHERE c = 1234 AND d > 1000;
○ SELECT a, b FROM tb WHERE c = $1 AND d > $2;
Coisas que você verá no Java
● CREATE TEMP TABLE foo -> WITH foo as ( …. )
● Exemplos
…
@Column(name="DESC", nullable=false, length=512)
public String getDescription() { return description; }
@Column(name="ORDER_COST", updatable=false, precision=12, scale=2)
public BigDecimal getCost() { return cost; }
...
C
ponteiros
struct
o cuidado com a memória
o código do PostgreSQL
armazenamento dos dados
o dado crú, o void* e o tipo..
C
● Compatibilidade com vários sistemas operacionais
● Suíte de testes do PostgreSQL
● Usando PostgreSQL no raspberryPI
○ http://www.pgconf.com.br/raspberrypi/
Ruby
Metaprogramação
Migrations
Testes
Rails
tooling: gem, rvm, renv, rails new
Do Ruby ao banco evolutivo e ao pgvm
● Mudanças incrementais
● Git
● Testes
● pgvm inspirado no rvm
● pgxn-utils inspirado no rails new
● method_missing
Python
Zen do Python
Explícito melhor que implícito
Melhor pedir perdão que
permissão e o conceito de
transação
Dataframes
ORM SQL Alchemy
pip
Do Python ao Django, do Django ao SETL
from setl import *
inicializa = [
Initialize(‘inicializa_banco’, force=True),
]
extrai = [
SQL(‘produtos’),
SQL(‘pessoas’),
CSV(‘pedidos_externos’, file=’PED.csv’),
]
finaliza = [
Run(‘limpa_logs’),
]
SETL.run(initializers=inicializa,
extractors=extrai,
finalizers=finaliza);
Javascript
funcional, JSON, Promises
Event driven
async
Data Driven Document (D3.js)
Exemplo D3.js
Data Driven Documents
Javascript
CSV
d3.csv(‘aquivo.csv’, function(data)
{
...
});
Erlang/Elixir
funcional, supervisors, atores,
deixe falhar
não é sobre sintaxe
macros
imutabilidade
pattern matching
recursividade
Me levaram a ...
● PGEx
○ entender o protocolo do PostgreSQL
● ExJSON
○ Só me divertir mesmo…
● Funções de agregação no PostgreSQL
CREATE AGGREGATE e recursividade??
CREATE AGGREGATE media (float8)
(
sfunc = acumula_float8,
stype = float8[],
finalfunc = media_float8,
initcond = '{0,0,0}'
);
acumula_float8 vai concatenando os valores em um array
media_float8 recebe o array no final, soma os valores e divide
pelo número de elementos
Rust
segurança, FFI
escrever em Rust no lugar de C
cross-compilation
Me levou a ...
● prsql
○ um cliente de linha de comando como o psql
Então é uma
questão de ...
Conectar
pontos!
comunicação, percepção,
linguagem, informação, reflexão,
pensamento
O que procurar numa linguagem?
O porquê da linguagem
Porque surgiram?
Ruby:
originalmente planejada e desenvolvida no Japão em 1995, por Yukihiro "Matz"
Matsumoto, para ser usada como linguagem de script.
Matz queria uma linguagem de script que fosse mais poderosa do que Perl, e
mais orientada a objetos do que Python
suporta programação funcional, orientada a objetos, imperativa e reflexiva.
inspirada principalmente por Python, Perl, Smalltalk, Eiffel, Ada e Lisp
Porque surgiram?
Python:
projetada com a filosofia de enfatizar a importância do esforço do programador
sobre o esforço computacional.
prioriza a legibilidade do código sobre a velocidade ou expressividade.
combina uma sintaxe concisa e clara com os recursos de sua biblioteca padrão e
por módulos e frameworks desenvolvidos por terceiros
Porque surgiram?
Javascript:
originalmente implementada como parte dos navegadores web para que scripts
pudessem ser executados do lado do cliente e interagissem com o usuário sem a
necessidade deste script passar pelo servidor, controlando o navegador,
realizando comunicação assíncrona e alterando o conteúdo do documento
exibido.
concebida para ser uma linguagem script com orientação a objetos baseada em
protótipos, tipagem fraca e dinâmica e funções de primeira classe
Porque surgiram?
Erlang
é uma linguagem de programação de uso geral e um sistema para execução
desenvolvida pela Ericsson para suportar aplicações distribuídas e tolerantes a falhas a
serem executadas em um ambiente de tempo real e ininterrupto
hot swapping, criar e gerenciar processos é uma tarefa trivial em Erlang
a comunicação entre processos é feita por troca de mensagens
Algumas palestras que podem explorar melhor os
temas que abordei aqui ...
Como ser um DBA na era DevOps - Sebastian Webber
Criando uma extensão para PostgreSQL - Marcone Viana Peres
Usando PostgreSQL no raspberryPI - Gustavo Sperandio
Go e PostgreSQL, ganhando desempenho em processos de carga de dados -
Marcelo Kruger
Tudo isso foi apenas um índice..
50% concluído
Os outros 50% estão com vocês...
FIM...
twitter.com/guediz | github.com/guedes … e obrigado pelos peixes!

Mais conteúdo relacionado

PPT
Entendendo um pouco melhor o que é Ruby
ODP
Phpreact flisol-fb-2014
PDF
Entendendo Conceitos Caching com PHP
PDF
Refatorar é preciso! 2.0
PDF
Programação funcional que funciona
PPTX
Sobre TDD - Tech Friday da Everis Uberlândia
PDF
Frameworks PHP
PPTX
Big data da teoria à prática
Entendendo um pouco melhor o que é Ruby
Phpreact flisol-fb-2014
Entendendo Conceitos Caching com PHP
Refatorar é preciso! 2.0
Programação funcional que funciona
Sobre TDD - Tech Friday da Everis Uberlândia
Frameworks PHP
Big data da teoria à prática

Mais procurados (20)

PDF
Objects calisthenics - Os 10 mandamentos do rei do código
PDF
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
PDF
Projeto de API, por Gilmar P.S
PDF
Crescendo profissionalmente com o apoio comunidade
PDF
Refinamento e boas práticas de programação
PPTX
Behaviour Driven Development
PPTX
Boas práticas técnica para um código limpo (Clean Code)
PPT
Desenvolvimento web: PHP orientado a objetos
PDF
Refatorar é preciso. Palestra TDC 2014
PPTX
Unit Test JavaScript
ODP
Palestra Faculdade Lourenço Filho
PDF
Javascript por debaixo dos panos
PDF
Engenharia rever sa mentebinaria
PPTX
5 meses de python o que aprendi
PPTX
Conhecendo o Novo REST Framework
PDF
Tdd com Node.js
PDF
Ferramentas Livres Para Desenvolvimento com PHP
PDF
Cacheamento Lado Servidor
PDF
Código limpo php
PDF
PHP Jedi - Boas Práticas e Alta Performance
Objects calisthenics - Os 10 mandamentos do rei do código
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Projeto de API, por Gilmar P.S
Crescendo profissionalmente com o apoio comunidade
Refinamento e boas práticas de programação
Behaviour Driven Development
Boas práticas técnica para um código limpo (Clean Code)
Desenvolvimento web: PHP orientado a objetos
Refatorar é preciso. Palestra TDC 2014
Unit Test JavaScript
Palestra Faculdade Lourenço Filho
Javascript por debaixo dos panos
Engenharia rever sa mentebinaria
5 meses de python o que aprendi
Conhecendo o Novo REST Framework
Tdd com Node.js
Ferramentas Livres Para Desenvolvimento com PHP
Cacheamento Lado Servidor
Código limpo php
PHP Jedi - Boas Práticas e Alta Performance
Anúncio

Semelhante a Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor (20)

PDF
Por que PostgreSQL?
PDF
Funcionalidades das versões 9.x do PostgreSQL
PDF
PostgreSQL: O melhor banco de dados Universo
PDF
Oracle para PostgreSQL: Conseguir migrar e não parar UTI
PDF
Conhecendo a JSR 223: Scripting for the Java Platform
ODP
Fazendo Um Elefante Passar Debaixo da Porta - FISL
PDF
A linguagem de programação Erlang
PDF
Postgres Wonderland - PGDay CE2013
PDF
PostgreSQL Rock Star
PDF
Visao geralti netshoes03
PDF
Visao geralti netshoes03
PDF
PostgreSQL Wonderland TDC-SP 2015
PDF
PostgreSQL-Prático.pdf
PDF
Paradigms of programming languagens
PDF
Tutorial postgre
PDF
Bancos de dados open source
PDF
Arquitetando Soluções de Dados com PostgreSQL
ODP
Linguagens Dinamicas na JVM
PDF
Linguagens de Programação para Ficar de Olho em 2019 - DevRocks
PPTX
Isc aula 7
Por que PostgreSQL?
Funcionalidades das versões 9.x do PostgreSQL
PostgreSQL: O melhor banco de dados Universo
Oracle para PostgreSQL: Conseguir migrar e não parar UTI
Conhecendo a JSR 223: Scripting for the Java Platform
Fazendo Um Elefante Passar Debaixo da Porta - FISL
A linguagem de programação Erlang
Postgres Wonderland - PGDay CE2013
PostgreSQL Rock Star
Visao geralti netshoes03
Visao geralti netshoes03
PostgreSQL Wonderland TDC-SP 2015
PostgreSQL-Prático.pdf
Paradigms of programming languagens
Tutorial postgre
Bancos de dados open source
Arquitetando Soluções de Dados com PostgreSQL
Linguagens Dinamicas na JVM
Linguagens de Programação para Ficar de Olho em 2019 - DevRocks
Isc aula 7
Anúncio

Mais de Dickson S. Guedes (20)

PDF
Ganhando tempo automatizando com SQL
PDF
O mínimo necessário que você precisa conhecer sobre computação quântica
PDF
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
PDF
Primeiros passos machine learning PostgreSQL
PDF
Dicas de sobrevivência de um DBA sem mouse
PDF
Destistificando o EXPLAIN
PDF
Falando "Postgrês"
PDF
Se meu elefante falasse
PDF
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
PDF
O Elefante Poliglota
PDF
Como encontrar uma agulha num palheiro de logs
PDF
Como encontrar uma agulha no palheiro de logs do PostgreSQL
PDF
Gerenciando múltiplas versões do PostgreSQL com pgvm
PDF
PGXN - Como distribuir suas extensões com o PostgreSQL
PDF
Pgxn.pgday
PDF
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
PDF
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
PDF
Conhecendo Postgresql.- ENECOMP 2009
PDF
Minicurso Postgresql - Enecomp 2009
PDF
Testes unitarios no PostgreSQL com pgTAP
Ganhando tempo automatizando com SQL
O mínimo necessário que você precisa conhecer sobre computação quântica
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Primeiros passos machine learning PostgreSQL
Dicas de sobrevivência de um DBA sem mouse
Destistificando o EXPLAIN
Falando "Postgrês"
Se meu elefante falasse
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
O Elefante Poliglota
Como encontrar uma agulha num palheiro de logs
Como encontrar uma agulha no palheiro de logs do PostgreSQL
Gerenciando múltiplas versões do PostgreSQL com pgvm
PGXN - Como distribuir suas extensões com o PostgreSQL
Pgxn.pgday
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Conhecendo Postgresql.- ENECOMP 2009
Minicurso Postgresql - Enecomp 2009
Testes unitarios no PostgreSQL com pgTAP

Último (20)

PPTX
Introdução a Computação em Nuvem-parte2-T2
PPTX
RCSOFTdfsdfrvadfvdfvargfvevevrervevqer.pptx
PPTX
Politicas-de-Seguranca-Privacidade-e-Cookies.pptx
PDF
POO - Aula 05 - Herança - Generalização e Especialização.pdf
PPT
01 - Arquitetura de Computadores 1 TEC [Salvo automaticamente].ppt
PPTX
AULA 1.pptx GESTÃO DE OPERAÇÕES INDUSTRIAIS
PDF
Arquitetura de Software slides sommerville
DOCX
Laboratório de cyber security, apresentação simples.
PDF
T-pico 1.pdfnsjabdkaksbbsuendnijsbshajanzk
PPTX
Google saiba mais sobre o google e suas funcionalidades
PDF
instalacoes eletricas para industria apressentacao basicas
PPT
Padrões de Beleza I - Estética Corporal e Saúde
PPTX
Legislação aeronautica na aviação civil Brasileira
PDF
Gestão contínua de exposição a ameaças petrobras
PPTX
Formação aaaaaaaaadsdsfg er rsgrsgesf efsfsefsf e LEEI.pptx
PPTX
Panorama da aviação civil brasileira ANAC
PDF
POO - Aula 03 - Membros Estáticos e Construtores.pdf
DOCX
20250828_Perfis Profissionais em ServiceNow Um Guia Detalhado.docx
PPTX
Importacao_Ordem_Customizacao_SAP_S4HANA.pptx
PDF
Apostila Power Automate Impressionador.pdf
Introdução a Computação em Nuvem-parte2-T2
RCSOFTdfsdfrvadfvdfvargfvevevrervevqer.pptx
Politicas-de-Seguranca-Privacidade-e-Cookies.pptx
POO - Aula 05 - Herança - Generalização e Especialização.pdf
01 - Arquitetura de Computadores 1 TEC [Salvo automaticamente].ppt
AULA 1.pptx GESTÃO DE OPERAÇÕES INDUSTRIAIS
Arquitetura de Software slides sommerville
Laboratório de cyber security, apresentação simples.
T-pico 1.pdfnsjabdkaksbbsuendnijsbshajanzk
Google saiba mais sobre o google e suas funcionalidades
instalacoes eletricas para industria apressentacao basicas
Padrões de Beleza I - Estética Corporal e Saúde
Legislação aeronautica na aviação civil Brasileira
Gestão contínua de exposição a ameaças petrobras
Formação aaaaaaaaadsdsfg er rsgrsgesf efsfsefsf e LEEI.pptx
Panorama da aviação civil brasileira ANAC
POO - Aula 03 - Membros Estáticos e Construtores.pdf
20250828_Perfis Profissionais em ServiceNow Um Guia Detalhado.docx
Importacao_Ordem_Customizacao_SAP_S4HANA.pptx
Apostila Power Automate Impressionador.pdf

Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor

  • 1. Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor? por Dickson S. Guedes
  • 3. É sobre o quê? ● Vou ganhar mais dinheiro? ● Vou ficar mais inteligente? ● Vou aprender novas linguagens de programação? ● Vou dominar o mundo? ● Vou ser mais feliz?
  • 4. Situação de muitas empresas com os papéis DBA e DEV Silo DBA Silo DEV
  • 5. Situação de muitas empresas com os papéis DBA e DEV PÁ!Silo DBA Silo DEV
  • 6. Situação de muitas empresas com os papéis DBA e DEV PÁ! PÁ!Silo DBA Silo DEV
  • 7. Situação de muitas empresas com os papéis DBA e DEV PÁ! PÁ! QUE SILOS SÃO ESSES?
  • 8. É sobre o que?
  • 14. Mas… como que aprender várias linguagens vai me permitir isto?
  • 15. Então vamos ver alguns exemplos
  • 16. Java Muito utilizada no mundo “Enterprise” Orientação a Objeto ORM Hibernate Troca de mensagens @Annotations
  • 17. Coisas que você verá no Java ● JDBC, Dialect ● compra.getProduto().getCategoria().getNomeCategoria() ● use JOIN FETCH ● PreparedStatement ○ SELECT a, b FROM tb WHERE c = 1234 AND d > 1000; ○ SELECT a, b FROM tb WHERE c = $1 AND d > $2;
  • 18. Coisas que você verá no Java ● CREATE TEMP TABLE foo -> WITH foo as ( …. ) ● Exemplos … @Column(name="DESC", nullable=false, length=512) public String getDescription() { return description; } @Column(name="ORDER_COST", updatable=false, precision=12, scale=2) public BigDecimal getCost() { return cost; } ...
  • 19. C ponteiros struct o cuidado com a memória o código do PostgreSQL armazenamento dos dados o dado crú, o void* e o tipo..
  • 20. C ● Compatibilidade com vários sistemas operacionais ● Suíte de testes do PostgreSQL ● Usando PostgreSQL no raspberryPI ○ http://www.pgconf.com.br/raspberrypi/
  • 22. Do Ruby ao banco evolutivo e ao pgvm ● Mudanças incrementais ● Git ● Testes ● pgvm inspirado no rvm ● pgxn-utils inspirado no rails new ● method_missing
  • 23. Python Zen do Python Explícito melhor que implícito Melhor pedir perdão que permissão e o conceito de transação Dataframes ORM SQL Alchemy pip
  • 24. Do Python ao Django, do Django ao SETL from setl import * inicializa = [ Initialize(‘inicializa_banco’, force=True), ] extrai = [ SQL(‘produtos’), SQL(‘pessoas’), CSV(‘pedidos_externos’, file=’PED.csv’), ] finaliza = [ Run(‘limpa_logs’), ] SETL.run(initializers=inicializa, extractors=extrai, finalizers=finaliza);
  • 25. Javascript funcional, JSON, Promises Event driven async Data Driven Document (D3.js)
  • 26. Exemplo D3.js Data Driven Documents Javascript CSV d3.csv(‘aquivo.csv’, function(data) { ... });
  • 27. Erlang/Elixir funcional, supervisors, atores, deixe falhar não é sobre sintaxe macros imutabilidade pattern matching recursividade
  • 28. Me levaram a ... ● PGEx ○ entender o protocolo do PostgreSQL ● ExJSON ○ Só me divertir mesmo… ● Funções de agregação no PostgreSQL
  • 29. CREATE AGGREGATE e recursividade?? CREATE AGGREGATE media (float8) ( sfunc = acumula_float8, stype = float8[], finalfunc = media_float8, initcond = '{0,0,0}' ); acumula_float8 vai concatenando os valores em um array media_float8 recebe o array no final, soma os valores e divide pelo número de elementos
  • 30. Rust segurança, FFI escrever em Rust no lugar de C cross-compilation
  • 31. Me levou a ... ● prsql ○ um cliente de linha de comando como o psql
  • 34. O que procurar numa linguagem?
  • 35. O porquê da linguagem
  • 36. Porque surgiram? Ruby: originalmente planejada e desenvolvida no Japão em 1995, por Yukihiro "Matz" Matsumoto, para ser usada como linguagem de script. Matz queria uma linguagem de script que fosse mais poderosa do que Perl, e mais orientada a objetos do que Python suporta programação funcional, orientada a objetos, imperativa e reflexiva. inspirada principalmente por Python, Perl, Smalltalk, Eiffel, Ada e Lisp
  • 37. Porque surgiram? Python: projetada com a filosofia de enfatizar a importância do esforço do programador sobre o esforço computacional. prioriza a legibilidade do código sobre a velocidade ou expressividade. combina uma sintaxe concisa e clara com os recursos de sua biblioteca padrão e por módulos e frameworks desenvolvidos por terceiros
  • 38. Porque surgiram? Javascript: originalmente implementada como parte dos navegadores web para que scripts pudessem ser executados do lado do cliente e interagissem com o usuário sem a necessidade deste script passar pelo servidor, controlando o navegador, realizando comunicação assíncrona e alterando o conteúdo do documento exibido. concebida para ser uma linguagem script com orientação a objetos baseada em protótipos, tipagem fraca e dinâmica e funções de primeira classe
  • 39. Porque surgiram? Erlang é uma linguagem de programação de uso geral e um sistema para execução desenvolvida pela Ericsson para suportar aplicações distribuídas e tolerantes a falhas a serem executadas em um ambiente de tempo real e ininterrupto hot swapping, criar e gerenciar processos é uma tarefa trivial em Erlang a comunicação entre processos é feita por troca de mensagens
  • 40. Algumas palestras que podem explorar melhor os temas que abordei aqui ... Como ser um DBA na era DevOps - Sebastian Webber Criando uma extensão para PostgreSQL - Marcone Viana Peres Usando PostgreSQL no raspberryPI - Gustavo Sperandio Go e PostgreSQL, ganhando desempenho em processos de carga de dados - Marcelo Kruger
  • 41. Tudo isso foi apenas um índice..
  • 42. 50% concluído Os outros 50% estão com vocês... FIM... twitter.com/guediz | github.com/guedes … e obrigado pelos peixes!