Muito em breve, nos dias 4 e 5 de novembro, iniciaremos novos fluxos de cursos de SQL para análise de dados e desenvolvedor C ++ , especialmente para o seu início, preparamos esta tradução do blog Engenharia do Facebook com uma visão geral de uma ferramenta útil.
O SQLite é amplamente utilizado, mas escrever camadas de acesso a dados bem testadas e com suporte pode ser desafiador, na melhor das hipóteses. Muitos comandos usam algum tipo de geração de código para evitar a alteração de dezenas de números de sequência sempre que uma coluna é adicionada, mas essa abordagem leva a erros. O compilador CQL para CG / SQL permite que você crie procedimentos armazenados complexos com grandes consultas, e combinações de auxiliares de sintaxe e tipos fortes tornam esses procedimentos muito mais fáceis de obter e armazenar. A combinação de uma forte digitação em um idioma e uma ferramenta para um bom teste de unidade pode fornecer a confiança de que até mesmo lógicas muito complexas estão corretas.
O que é isso
CG / SQL é um sistema de geração de código para a popular biblioteca SQLite que permite aos desenvolvedores escrever procedimentos armazenados em uma variante Transact-SQL (T-SQL) e compilá-los em código C que usa a API SQLite para realizar operações C. CG / SQL permite que os engenheiros criem procedimentos armazenados complexos com grandes consultas sem a revisão manual do código exigida pelos métodos existentes.
Todo o sistema também inclui funções para gerenciar e atualizar o esquema, gerar código de teste para procedimentos armazenados, obter planos de consulta para procedimentos e interagir com procedimentos armazenados de outras linguagens, como Java e Objective-C. A saída JSON permite análise ou código de front-end. O pacote contém extensa linguagem e documentação do sistema.
O que a ferramenta faz
O compilador CQL faz a maior parte do trabalho sujo. Ele lê esquemas e procedimentos, fornecendo uma linguagem fortemente tipada com centenas de erros de compilação projetados para evitar problemas de tempo de execução do SQLite. O compilador monitora cuidadosamente os tipos de dados variáveis e os tipos de esquema, relatando inconsistências, como tentar atribuir colunas anuláveis a variáveis de saída não anuláveis e, de outra forma, garantir que as APIs SQLite sejam usadas de forma consistente e correta.
O código gerado sempre verifica os códigos de retorno e sempre usa os números ordinais e tipos de coluna corretos ao vincular ou ler dados de ou para SQLite. Isso é exatamente o que é difícil de obter e manter corretamente. Além disso, as anotações de esquema permitem que o sistema crie automaticamente procedimentos armazenados que atualizam o banco de dados de qualquer versão anterior do esquema para a versão atual. Para isso, dezenas de verificações são realizadas.
As anotações de procedimento também podem ser usadas para indicar que você gostaria de manter o código de teste para criar fragmentos de esquema e inserir dados nesse esquema. Essa abordagem permite testar procedimentos quase sem complicações e também não depende do sistema que está sendo implantado. Da mesma forma, essas ferramentas podem criar esquemas que validam planos de consulta em tempo de compilação.
Por que isso é necessário?
O SQLite é amplamente utilizado, mas escrever camadas de acesso a dados bem testadas e com suporte pode ser desafiador, na melhor das hipóteses. Muitos comandos usam algum tipo de geração de código para evitar a alteração de dezenas de números de sequência sempre que uma coluna é adicionada, mas essa abordagem leva a erros. O compilador CQL para CG / SQL permite que você crie procedimentos armazenados complexos com grandes consultas, e combinações de auxiliares de sintaxe e tipos fortes tornam esses procedimentos muito mais fáceis de obter e armazenar. A combinação de forte digitação em um idioma e uma ferramenta para bons testes de unidade pode fornecer a confiança de que até mesmo lógicas muito complexas estão corretas. Os auxiliares sintáticos convertem o código seguro em SQL canônico, para que os engenheiros escrevam menos código, mas o código é mais correto e roda em qualquer lugar.Vejamos um exemplo:
create procedure insert_a_row(like your_table)
begin
insert into your_table from arguments;
end;
Este código cria um procedimento para inserir em qualquer tabela (aqui está
your_table), cujos argumentos são exatamente as colunas da tabela. Você não se esquecerá das colunas, não coloque dezenas de argumentos na ordem errada. As construções são concisas e robustas, o que torna mais fácil para os engenheiros gerar código sem ter que verificar manualmente cada parte dele.
CG / SQL no Github
CG / SQL é certamente uma coisa útil, mas o código promocional de desconto HABR não é menos útil, ele lhe dará um adicional de 10% ao desconto indicado no banner.

- SQL para análise de dados
- Desenvolvedor C ++
- Curso de Aprendizado de Máquina
- Treinamento para a profissão de ciência de dados
- Treinamento de analista de dados
- Data Analytics Online Bootcamp
- Curso de Python para Desenvolvimento Web
Mais cursos