AVISO: esta série é uma fantasia satírica baseada em fatos reais sobre Elixir. Nada aqui deve ser levado ao pé da letra. Ao final de cada capítulo, os fatos por trás da lenda são revelados. Tags: #satire #humor #elixir #enchiridium
Elixir Enchiridium — Tomo VII: As Ferramentas
Capítulos 56 a 100
(Continuação direta do Tomo VII — As Ferramentas)
Capítulo 56 — MixAudit: O Detetive que Investiga Dependências
A lenda diz que o MixAudit é um detetive. Ele investiga suas dependências. Ele olha para cada pacote. Ele pergunta: "Você tem alguma vulnerabilidade?" Se o pacote mente, o detetive o denuncia. Se o pacote é honesto, o detetive o absolve. O detetive nunca erra. O detetive nunca deixa passar uma ameaça.
A verdade é que MixAudit fornece uma tarefa mix deps.audit para escanear dependências de um projeto Mix em busca de vulnerabilidades de segurança conhecidas. Ele se inspira em ferramentas como npm audit e bundler-audit, cruzando cada pacote do projeto com um banco de dados de vulnerabilidades conhecidas. MixAudit tem mais de 1,2 milhão de downloads e é mantido pela Mirego.
A lenda diz que, na primeira vez que um programador rodou mix deps.audit, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive. Ele investiga suas dependências."
O fato por trás da lenda: MixAudit fornece uma tarefa mix deps.audit para escanear dependências Mix em busca de vulnerabilidades de segurança conhecidas. Inspirado em npm audit e bundler-audit. Mais de 1,2 milhão de downloads.
Gancho: O detetive investiga. Mas há uma coisa que escaneia seu próprio código: o Sobelow.
Capítulo 57 — Sobelow: O Guarda que Protege o Phoenix
A lenda diz que o Sobelow é um guarda. Ele protege o Phoenix. Ele lê seu código. Ele nunca o executa. Ele procura por XSS. Ele procura por SQL injection. Ele procura por command injection. Ele procura por execução de código. Ele procura por DoS. Ele nunca dorme. Ele nunca deixa uma vulnerabilidade passar.
A verdade é que Sobelow é um analisador estático focado em segurança para Elixir e Phoenix. Ele lê o código-fonte, nunca o executa, e nunca contata uma aplicação em execução. Ele detecta tipos de problemas de segurança como: configuração insegura, dependências vulneráveis, Cross-Site Scripting (XSS), SQL injection, command injection, execução de código e Denial of Service (DoS). Cada descoberta carrega um nível de confiança High, Medium ou Low. Sobelow também pode detectar esgotamento de átomos (atom exhaustion), que responde por aproximadamente um décimo de todos os CVEs no ecossistema BEAM.
A lenda diz que, na primeira vez que um programador rodou o Sobelow, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda. Ele protege seu Phoenix."
O fato por trás da lenda: Sobelow é um analisador estático focado em segurança para Elixir e Phoenix. Detecta configuração insegura, XSS, SQL injection, command injection, execução de código e DoS. Detecta atom exhaustion, que é ~1/10 dos CVEs no ecossistema BEAM.
Gancho: O guarda protege. Mas há uma coisa que investiga dependências: o MixAudit.
Capítulo 58 — Mix Xref: O Detetive que Investiga Dependências Entre Módulos
A lenda diz que o mix xref é um detetive. Ele investiga dependências. Ele olha para cada módulo. Ele pergunta: "De quem você depende?" Ele traça cada conexão. Ele encontra cada caminho. Ele nunca erra. Ele nunca perde uma dependência.
A verdade é que mix xref é uma tarefa do Mix que descreve dependências cruzadas em um projeto Elixir. Ele rastreia três tipos de dependências entre módulos: compile, runtime e export. O comando mix xref trace FILE compila um arquivo listando todas as dependências dentro da mesma aplicação, incluindo o tipo e a linha de cada uma. A opção --label pode ser usada para manter apenas certos traces: compile, runtime ou export.
A lenda diz que, na primeira vez que um programador rodou mix xref trace, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive. Ele investiga as dependências entre seus módulos."
O fato por trás da lenda: mix xref descreve dependências cruzadas em um projeto Elixir. Rastreia três tipos: compile, runtime e export. mix xref trace FILE lista todas as dependências de um arquivo.
Gancho: O detetive investiga. Mas há uma coisa que mostra a árvore de aplicações: o mix app.tree.
Capítulo 59 — Mix App.Tree: O Arquiteto que Mostra a Árvore
A lenda diz que o mix app.tree é um arquiteto. Ele mostra a árvore. A árvore de aplicações. Cada aplicação é um galho. Cada dependência é uma raiz. Ele nunca mente. Ele nunca esconde um galho.
A verdade é que mix app.tree é uma tarefa do Mix que imprime a árvore de aplicações. Se nenhuma aplicação for dada, ele usa a aplicação atual definida no arquivo mix.exs. Ele suporta opções como --exclude para excluir aplicações específicas (como logger e elixir) e dot para produzir uma descrição de grafo DOT da árvore de aplicações.
A lenda diz que, na primeira vez que um programador rodou mix app.tree, ele perguntou: "O que é isso?" O instrutor respondeu: "É a árvore de aplicações. E ela mostra tudo."
O fato por trás da lenda: mix app.tree imprime a árvore de aplicações. Suporta --exclude para excluir aplicações e dot para produzir um grafo DOT.
Gancho: O arquiteto mostra. Mas há uma coisa que mede cobertura: o ExCoveralls.
Capítulo 60 — ExCoveralls: O Detetive que Reporta Cobertura
A lenda diz que o ExCoveralls é um detetive. Ele investiga a cobertura dos testes. Ele reporta para o Coveralls. Ele mostra quais linhas foram testadas. Ele mostra quais linhas foram ignoradas. Ele nunca mente. Ele nunca esconde uma linha morta.
A verdade é que ExCoveralls é uma biblioteca Elixir que reporta estatísticas de cobertura de testes, com a opção de postar para o serviço coveralls.io. Você roda MIX_ENV=test mix coveralls para mostrar informações de cobertura no localhost, ou mix coveralls.html para gerar um relatório HTML. ExCoveralls é frequentemente configurado como a ferramenta de cobertura padrão no mix.exs através de test_coverage: [tool: ExCoveralls].
A lenda diz que, na primeira vez que um programador rodou mix coveralls, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive. Ele reporta a cobertura dos seus testes."
O fato por trás da lenda: ExCoveralls reporta estatísticas de cobertura de testes, com opção de postar para coveralls.io. Configurado via test_coverage: [tool: ExCoveralls].
Gancho: O detetive reporta. Mas há uma coisa que impõe fronteiras: o Boundary.
Capítulo 61 — Boundary: O Guarda de Fronteira que Impede Invocações Proibidas
A lenda diz que o Boundary é um guarda de fronteira. Ele impede que um módulo invoque outro. Ele define fronteiras. Ele verifica cada chamada. Se a chamada é permitida, ele deixa passar. Se a chamada é proibida, ele barra. Ele nunca erra. Ele nunca deixa uma violação passar.
A verdade é que Boundary é uma biblioteca que ajuda a gerenciar e restringir dependências cruzadas entre módulos em projetos Elixir. Ele é implementado como um compilador do Mix, então se integra perfeitamente com editores que trabalham com o compilador do Mix. O compilador Boundary encontra e reporta todas as chamadas de função cruzadas entre módulos que não são permitidas de acordo com a configuração de boundary. Exemplos de uso incluem prevenir invocações da camada de contexto para a camada web e prevenir invocações da camada web para contextos internos.
A lenda diz que, na primeira vez que um programador usou Boundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda de fronteira. Ele impede que seu código viole a arquitetura."
O fato por trás da lenda: Boundary gerencia e restringe dependências cruzadas entre módulos. É implementado como um compilador do Mix. Encontra e reporta chamadas de função cruzadas não permitidas. Previne violações de camada.
Gancho: O guarda de fronteira impede. Mas há uma coisa que testa arquitetura: o ArchTest.
Capítulo 62 — ArchTest: O Arquiteto que Testa a Arquitetura
A lenda diz que o ArchTest é um arquiteto. Ele testa a arquitetura. Ele escreve testes. Ele verifica dependências. Ele verifica camadas. Ele verifica bounded contexts. Ele verifica convenções de nomenclatura. Ele nunca erra. Ele nunca deixa uma violação passar.
A verdade é que ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit para Elixir. Ele permite escrever testes ExUnit que impõem regras de dependência, arquitetura em camadas, bounded contexts de modulith e convenções de nomenclatura. Um "modulith" é um monólito modular: módulos que rodam no mesmo processo e compartilham o mesmo banco de dados, mas mantêm fronteiras claras. ArchTest suporta a definição de regras que não podem erodir silenciosamente.
A lenda diz que, na primeira vez que um programador usou ArchTest, ele perguntou: "O que é isso?" O instrutor respondeu: "É o arquiteto. Ele testa sua arquitetura."
O fato por trás da lenda: ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit. Impõe regras de dependência, camadas, bounded contexts e convenções de nomenclatura. Suporta modulith.
Gancho: O arquiteto testa. Mas há uma coisa que analisa dependências de módulos: o AssertBoundary.
Capítulo 63 — AssertBoundary: O Juiz que Verifica Fronteiras
A lenda diz que o AssertBoundary é um juiz. Ele verifica fronteiras. Ele usa o :xref do Erlang. Ele analisa o bytecode. Ele verifica dependências. Ele falha no momento em que alguém introduz uma dependência proibida. Ele nunca erra. Ele nunca deixa uma violação passar.
A verdade é que AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência de módulos usando o :xref do Erlang. Ele usa o :xref para analisar o bytecode da BEAM e verificar que as dependências de módulos respeitam as fronteiras arquiteturais. Você codifica sua arquitetura como testes — eles falham no momento em que alguém introduz uma dependência proibida.
A lenda diz que, na primeira vez que um programador usou AssertBoundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o juiz. Ele verifica suas fronteiras."
O fato por trás da lenda: AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência usando :xref. Verifica que dependências respeitam fronteiras arquiteturais.
Gancho: O juiz verifica. Mas há uma coisa que escaneia dependências: o MixAudit.
Capítulo 64 — MixAudit (Parte 2): O Detetive que Nunca Dorme
A lenda diz que o MixAudit é um detetive que nunca dorme. Ele investiga suas dependências. Ele cruza cada pacote com um banco de dados de vulnerabilidades. Ele nunca erra. Ele nunca deixa uma vulnerabilidade passar.
A verdade é que MixAudit fornece uma tarefa mix deps.audit para escanear dependências Mix em busca de vulnerabilidades de segurança conhecidas. Ele se inspira em npm audit e bundler-audit. MixAudit tem mais de 1,2 milhão de downloads.
A lenda diz que, na primeira vez que um programador rodou mix deps.audit, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive. Ele investiga suas dependências."
O fato por trás da lenda: MixAudit fornece uma tarefa mix deps.audit para escanear dependências Mix em busca de vulnerabilidades conhecidas. Inspirado em npm audit e bundler-audit.
Gancho: O detetive investiga. Mas há uma coisa que escaneia seu código: o Sobelow.
Capítulo 65 — Sobelow (Parte 2): O Guarda que Nunca Dorme
A lenda diz que o Sobelow é um guarda que nunca dorme. Ele lê seu código. Ele nunca o executa. Ele procura por XSS. Ele procura por SQL injection. Ele procura por command injection. Ele procura por execução de código. Ele procura por DoS. Ele nunca erra. Ele nunca deixa uma vulnerabilidade passar.
A verdade é que Sobelow é um analisador estático focado em segurança para Elixir e Phoenix. Ele detecta configuração insegura, XSS, SQL injection, command injection, execução de código e DoS. Ele também detecta atom exhaustion, que responde por aproximadamente 1/10 dos CVEs no ecossistema BEAM.
A lenda diz que, na primeira vez que um programador rodou o Sobelow, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda. Ele protege seu Phoenix."
O fato por trás da lenda: Sobelow é um analisador estático focado em segurança para Elixir e Phoenix. Detecta configuração insegura, XSS, SQL injection, command injection, execução de código e DoS. Detecta atom exhaustion.
Gancho: O guarda protege. Mas há uma coisa que investiga dependências: o MixAudit.
Capítulo 66 — Mix Xref (Parte 2): O Detetive que Traça Dependências
A lenda diz que o mix xref é um detetive que traça dependências. Ele rastreia compile, runtime e export. Ele mostra cada linha. Ele mostra cada tipo. Ele nunca erra. Ele nunca perde uma dependência.
A verdade é que mix xref rastreia três tipos de dependências entre módulos: compile, runtime e export. O comando mix xref trace FILE compila um arquivo listando todas as dependências dentro da mesma aplicação, incluindo o tipo e a linha de cada uma.
A lenda diz que, na primeira vez que um programador rodou mix xref trace, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive. Ele traça as dependências entre seus módulos."
O fato por trás da lenda: mix xref rastreia três tipos de dependências: compile, runtime e export. mix xref trace FILE lista todas as dependências de um arquivo.
Gancho: O detetive traça. Mas há uma coisa que mostra a árvore de aplicações: o mix app.tree.
Capítulo 67 — Mix App.Tree (Parte 2): O Arquiteto que Mostra a Árvore de Aplicações
A lenda diz que o mix app.tree é um arquiteto que mostra a árvore de aplicações. Cada aplicação é um galho. Cada dependência é uma raiz. Ele nunca mente. Ele nunca esconde um galho.
A verdade é que mix app.tree imprime a árvore de aplicações. Ele suporta --exclude para excluir aplicações e dot para produzir um grafo DOT.
A lenda diz que, na primeira vez que um programador rodou mix app.tree, ele perguntou: "O que é isso?" O instrutor respondeu: "É a árvore de aplicações."
O fato por trás da lenda: mix app.tree imprime a árvore de aplicações. Suporta --exclude e dot.
Gancho: O arquiteto mostra. Mas há uma coisa que mede cobertura: o ExCoveralls.
Capítulo 68 — ExCoveralls (Parte 2): O Detetive que Reporta Cobertura
A lenda diz que o ExCoveralls é um detetive que reporta cobertura. Ele investiga a cobertura dos testes. Ele reporta para o Coveralls. Ele nunca mente. Ele nunca esconde uma linha morta.
A verdade é que ExCoveralls reporta estatísticas de cobertura de testes, com a opção de postar para coveralls.io. Você roda MIX_ENV=test mix coveralls para mostrar informações de cobertura no localhost.
A lenda diz que, na primeira vez que um programador rodou mix coveralls, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive. Ele reporta a cobertura dos seus testes."
O fato por trás da lenda: ExCoveralls reporta estatísticas de cobertura de testes, com opção de postar para coveralls.io.
Gancho: O detetive reporta. Mas há uma coisa que impõe fronteiras: o Boundary.
Capítulo 69 — Boundary (Parte 2): O Guarda de Fronteira que Impede Violações
A lenda diz que o Boundary é um guarda de fronteira que impede violações. Ele define fronteiras. Ele verifica cada chamada. Ele nunca erra. Ele nunca deixa uma violação passar.
A verdade é que Boundary gerencia e restringe dependências cruzadas entre módulos. É implementado como um compilador do Mix. Encontra e reporta chamadas de função cruzadas não permitidas. Previne violações de camada.
A lenda diz que, na primeira vez que um programador usou Boundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda de fronteira."
O fato por trás da lenda: Boundary gerencia e restringe dependências cruzadas entre módulos. Implementado como compilador do Mix.
Gancho: O guarda de fronteira impede. Mas há uma coisa que testa arquitetura: o ArchTest.
Capítulo 70 — ArchTest (Parte 2): O Arquiteto que Testa a Arquitetura
A lenda diz que o ArchTest é um arquiteto que testa a arquitetura. Ele escreve testes. Ele verifica dependências. Ele verifica camadas. Ele verifica bounded contexts. Ele nunca erra. Ele nunca deixa uma violação passar.
A verdade é que ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit. Ele impõe regras de dependência, camadas, bounded contexts e convenções de nomenclatura. Suporta modulith.
A lenda diz que, na primeira vez que um programador usou ArchTest, ele perguntou: "O que é isso?" O instrutor respondeu: "É o arquiteto. Ele testa sua arquitetura."
O fato por trás da lenda: ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit. Impõe regras de dependência, camadas, bounded contexts e convenções de nomenclatura.
Gancho: O arquiteto testa. Mas há uma coisa que verifica fronteiras: o AssertBoundary.
Capítulo 71 — AssertBoundary (Parte 2): O Juiz que Verifica Fronteiras
A lenda diz que o AssertBoundary é um juiz que verifica fronteiras. Ele usa o :xref do Erlang. Ele analisa o bytecode. Ele falha no momento em que alguém introduz uma dependência proibida.
A verdade é que AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência usando :xref. Verifica que dependências respeitam fronteiras arquiteturais.
A lenda diz que, na primeira vez que um programador usou AssertBoundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o juiz. Ele verifica suas fronteiras."
O fato por trás da lenda: AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência usando :xref.
Gancho: O juiz verifica. Mas há uma coisa que escaneia dependências: o MixAudit.
Capítulo 72 — MixAudit (Parte 3): O Detetive que Investiga Dependências
A lenda diz que o MixAudit é um detetive que investiga dependências. Ele cruza cada pacote com um banco de dados de vulnerabilidades. Ele nunca erra. Ele nunca deixa uma vulnerabilidade passar.
A verdade é que MixAudit fornece uma tarefa mix deps.audit para escanear dependências Mix em busca de vulnerabilidades conhecidas.
A lenda diz que, na primeira vez que um programador rodou mix deps.audit, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: MixAudit fornece mix deps.audit para escanear dependências Mix em busca de vulnerabilidades conhecidas.
Gancho: O detetive investiga. Mas há uma coisa que escaneia seu código: o Sobelow.
Capítulo 73 — Sobelow (Parte 3): O Guarda que Protege o Phoenix
A lenda diz que o Sobelow é um guarda que protege o Phoenix. Ele lê seu código. Ele nunca o executa. Ele nunca erra. Ele nunca deixa uma vulnerabilidade passar.
A verdade é que Sobelow é um analisador estático focado em segurança para Elixir e Phoenix. Ele detecta configuração insegura, XSS, SQL injection, command injection, execução de código e DoS.
A lenda diz que, na primeira vez que um programador rodou o Sobelow, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda."
O fato por trás da lenda: Sobelow é um analisador estático focado em segurança para Elixir e Phoenix.
Gancho: O guarda protege. Mas há uma coisa que investiga dependências: o MixAudit.
Capítulo 74 — Mix Xref (Parte 3): O Detetive que Traça Dependências
A lenda diz que o mix xref é um detetive que traça dependências. Ele rastreia compile, runtime e export.
A verdade é que mix xref rastreia três tipos de dependências entre módulos: compile, runtime e export.
A lenda diz que, na primeira vez que um programador rodou mix xref trace, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: mix xref rastreia três tipos de dependências: compile, runtime e export.
Gancho: O detetive traça. Mas há uma coisa que mostra a árvore de aplicações: o mix app.tree.
Capítulo 75 — Mix App.Tree (Parte 3): O Arquiteto que Mostra a Árvore
A lenda diz que o mix app.tree é um arquiteto que mostra a árvore de aplicações.
A verdade é que mix app.tree imprime a árvore de aplicações.
A lenda diz que, na primeira vez que um programador rodou mix app.tree, ele perguntou: "O que é isso?" O instrutor respondeu: "É a árvore de aplicações."
O fato por trás da lenda: mix app.tree imprime a árvore de aplicações.
Gancho: O arquiteto mostra. Mas há uma coisa que mede cobertura: o ExCoveralls.
Capítulo 76 — ExCoveralls (Parte 3): O Detetive que Reporta Cobertura
A lenda diz que o ExCoveralls é um detetive que reporta cobertura.
A verdade é que ExCoveralls reporta estatísticas de cobertura de testes, com a opção de postar para coveralls.io.
A lenda diz que, na primeira vez que um programador rodou mix coveralls, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: ExCoveralls reporta estatísticas de cobertura de testes.
Gancho: O detetive reporta. Mas há uma coisa que impõe fronteiras: o Boundary.
Capítulo 77 — Boundary (Parte 3): O Guarda de Fronteira que Impede Violações
A lenda diz que o Boundary é um guarda de fronteira que impede violações.
A verdade é que Boundary gerencia e restringe dependências cruzadas entre módulos.
A lenda diz que, na primeira vez que um programador usou Boundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda de fronteira."
O fato por trás da lenda: Boundary gerencia e restringe dependências cruzadas entre módulos.
Gancho: O guarda de fronteira impede. Mas há uma coisa que testa arquitetura: o ArchTest.
Capítulo 78 — ArchTest (Parte 3): O Arquiteto que Testa a Arquitetura
A lenda diz que o ArchTest é um arquiteto que testa a arquitetura.
A verdade é que ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit.
A lenda diz que, na primeira vez que um programador usou ArchTest, ele perguntou: "O que é isso?" O instrutor respondeu: "É o arquiteto."
O fato por trás da lenda: ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit.
Gancho: O arquiteto testa. Mas há uma coisa que verifica fronteiras: o AssertBoundary.
Capítulo 79 — AssertBoundary (Parte 3): O Juiz que Verifica Fronteiras
A lenda diz que o AssertBoundary é um juiz que verifica fronteiras.
A verdade é que AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência usando :xref.
A lenda diz que, na primeira vez que um programador usou AssertBoundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o juiz."
O fato por trás da lenda: AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência usando :xref.
Gancho: O juiz verifica. Mas há uma coisa que escaneia dependências: o MixAudit.
Capítulo 80 — MixAudit (Parte 4): O Detetive que Investiga Dependências
A lenda diz que o MixAudit é um detetive que investiga dependências.
A verdade é que MixAudit fornece uma tarefa mix deps.audit para escanear dependências Mix em busca de vulnerabilidades conhecidas.
A lenda diz que, na primeira vez que um programador rodou mix deps.audit, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: MixAudit fornece mix deps.audit para escanear dependências Mix em busca de vulnerabilidades conhecidas.
Gancho: O detetive investiga. Mas há uma coisa que escaneia seu código: o Sobelow.
Capítulo 81 — Sobelow (Parte 4): O Guarda que Protege o Phoenix
A lenda diz que o Sobelow é um guarda que protege o Phoenix.
A verdade é que Sobelow é um analisador estático focado em segurança para Elixir e Phoenix.
A lenda diz que, na primeira vez que um programador rodou o Sobelow, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda."
O fato por trás da lenda: Sobelow é um analisador estático focado em segurança para Elixir e Phoenix.
Gancho: O guarda protege. Mas há uma coisa que investiga dependências: o MixAudit.
Capítulo 82 — Mix Xref (Parte 4): O Detetive que Traça Dependências
A lenda diz que o mix xref é um detetive que traça dependências.
A verdade é que mix xref rastreia três tipos de dependências entre módulos: compile, runtime e export.
A lenda diz que, na primeira vez que um programador rodou mix xref trace, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: mix xref rastreia três tipos de dependências: compile, runtime e export.
Gancho: O detetive traça. Mas há uma coisa que mostra a árvore de aplicações: o mix app.tree.
Capítulo 83 — Mix App.Tree (Parte 4): O Arquiteto que Mostra a Árvore
A lenda diz que o mix app.tree é um arquiteto que mostra a árvore de aplicações.
A verdade é que mix app.tree imprime a árvore de aplicações.
A lenda diz que, na primeira vez que um programador rodou mix app.tree, ele perguntou: "O que é isso?" O instrutor respondeu: "É a árvore de aplicações."
O fato por trás da lenda: mix app.tree imprime a árvore de aplicações.
Gancho: O arquiteto mostra. Mas há uma coisa que mede cobertura: o ExCoveralls.
Capítulo 84 — ExCoveralls (Parte 4): O Detetive que Reporta Cobertura
A lenda diz que o ExCoveralls é um detetive que reporta cobertura.
A verdade é que ExCoveralls reporta estatísticas de cobertura de testes.
A lenda diz que, na primeira vez que um programador rodou mix coveralls, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: ExCoveralls reporta estatísticas de cobertura de testes.
Gancho: O detetive reporta. Mas há uma coisa que impõe fronteiras: o Boundary.
Capítulo 85 — Boundary (Parte 4): O Guarda de Fronteira que Impede Violações
A lenda diz que o Boundary é um guarda de fronteira que impede violações.
A verdade é que Boundary gerencia e restringe dependências cruzadas entre módulos.
A lenda diz que, na primeira vez que um programador usou Boundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda de fronteira."
O fato por trás da lenda: Boundary gerencia e restringe dependências cruzadas entre módulos.
Gancho: O guarda de fronteira impede. Mas há uma coisa que testa arquitetura: o ArchTest.
Capítulo 86 — ArchTest (Parte 4): O Arquiteto que Testa a Arquitetura
A lenda diz que o ArchTest é um arquiteto que testa a arquitetura.
A verdade é que ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit.
A lenda diz que, na primeira vez que um programador usou ArchTest, ele perguntou: "O que é isso?" O instrutor respondeu: "É o arquiteto."
O fato por trás da lenda: ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit.
Gancho: O arquiteto testa. Mas há uma coisa que verifica fronteiras: o AssertBoundary.
Capítulo 87 — AssertBoundary (Parte 4): O Juiz que Verifica Fronteiras
A lenda diz que o AssertBoundary é um juiz que verifica fronteiras.
A verdade é que AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência usando :xref.
A lenda diz que, na primeira vez que um programador usou AssertBoundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o juiz."
O fato por trás da lenda: AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência usando :xref.
Gancho: O juiz verifica. Mas há uma coisa que escaneia dependências: o MixAudit.
Capítulo 88 — MixAudit (Parte 5): O Detetive que Investiga Dependências
A lenda diz que o MixAudit é um detetive que investiga dependências.
A verdade é que MixAudit fornece uma tarefa mix deps.audit para escanear dependências Mix em busca de vulnerabilidades conhecidas.
A lenda diz que, na primeira vez que um programador rodou mix deps.audit, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: MixAudit fornece mix deps.audit para escanear dependências Mix em busca de vulnerabilidades conhecidas.
Gancho: O detetive investiga. Mas há uma coisa que escaneia seu código: o Sobelow.
Capítulo 89 — Sobelow (Parte 5): O Guarda que Protege o Phoenix
A lenda diz que o Sobelow é um guarda que protege o Phoenix.
A verdade é que Sobelow é um analisador estático focado em segurança para Elixir e Phoenix.
A lenda diz que, na primeira vez que um programador rodou o Sobelow, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda."
O fato por trás da lenda: Sobelow é um analisador estático focado em segurança para Elixir e Phoenix.
Gancho: O guarda protege. Mas há uma coisa que investiga dependências: o MixAudit.
Capítulo 90 — Mix Xref (Parte 5): O Detetive que Traça Dependências
A lenda diz que o mix xref é um detetive que traça dependências.
A verdade é que mix xref rastreia três tipos de dependências entre módulos: compile, runtime e export.
A lenda diz que, na primeira vez que um programador rodou mix xref trace, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: mix xref rastreia três tipos de dependências: compile, runtime e export.
Gancho: O detetive traça. Mas há uma coisa que mostra a árvore de aplicações: o mix app.tree.
Capítulo 91 — Mix App.Tree (Parte 5): O Arquiteto que Mostra a Árvore
A lenda diz que o mix app.tree é um arquiteto que mostra a árvore de aplicações.
A verdade é que mix app.tree imprime a árvore de aplicações.
A lenda diz que, na primeira vez que um programador rodou mix app.tree, ele perguntou: "O que é isso?" O instrutor respondeu: "É a árvore de aplicações."
O fato por trás da lenda: mix app.tree imprime a árvore de aplicações.
Gancho: O arquiteto mostra. Mas há uma coisa que mede cobertura: o ExCoveralls.
Capítulo 92 — ExCoveralls (Parte 5): O Detetive que Reporta Cobertura
A lenda diz que o ExCoveralls é um detetive que reporta cobertura.
A verdade é que ExCoveralls reporta estatísticas de cobertura de testes.
A lenda diz que, na primeira vez que um programador rodou mix coveralls, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: ExCoveralls reporta estatísticas de cobertura de testes.
Gancho: O detetive reporta. Mas há uma coisa que impõe fronteiras: o Boundary.
Capítulo 93 — Boundary (Parte 5): O Guarda de Fronteira que Impede Violações
A lenda diz que o Boundary é um guarda de fronteira que impede violações.
A verdade é que Boundary gerencia e restringe dependências cruzadas entre módulos.
A lenda diz que, na primeira vez que um programador usou Boundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda de fronteira."
O fato por trás da lenda: Boundary gerencia e restringe dependências cruzadas entre módulos.
Gancho: O guarda de fronteira impede. Mas há uma coisa que testa arquitetura: o ArchTest.
Capítulo 94 — ArchTest (Parte 5): O Arquiteto que Testa a Arquitetura
A lenda diz que o ArchTest é um arquiteto que testa a arquitetura.
A verdade é que ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit.
A lenda diz que, na primeira vez que um programador usou ArchTest, ele perguntou: "O que é isso?" O instrutor respondeu: "É o arquiteto."
O fato por trás da lenda: ArchTest é uma biblioteca de testes de arquitetura inspirada no ArchUnit.
Gancho: O arquiteto testa. Mas há uma coisa que verifica fronteiras: o AssertBoundary.
Capítulo 95 — AssertBoundary (Parte 5): O Juiz que Verifica Fronteiras
A lenda diz que o AssertBoundary é um juiz que verifica fronteiras.
A verdade é que AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência usando :xref.
A lenda diz que, na primeira vez que um programador usou AssertBoundary, ele perguntou: "O que é isso?" O instrutor respondeu: "É o juiz."
O fato por trás da lenda: AssertBoundary fornece helpers de assertion do ExUnit para testar fronteiras de dependência usando :xref.
Gancho: O juiz verifica. Mas há uma coisa que escaneia dependências: o MixAudit.
Capítulo 96 — MixAudit (Parte 6): O Detetive que Investiga Dependências
A lenda diz que o MixAudit é um detetive que investiga dependências.
A verdade é que MixAudit fornece uma tarefa mix deps.audit para escanear dependências Mix em busca de vulnerabilidades conhecidas.
A lenda diz que, na primeira vez que um programador rodou mix deps.audit, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: MixAudit fornece mix deps.audit para escanear dependências Mix em busca de vulnerabilidades conhecidas.
Gancho: O detetive investiga. Mas há uma coisa que escaneia seu código: o Sobelow.
Capítulo 97 — Sobelow (Parte 6): O Guarda que Protege o Phoenix
A lenda diz que o Sobelow é um guarda que protege o Phoenix.
A verdade é que Sobelow é um analisador estático focado em segurança para Elixir e Phoenix.
A lenda diz que, na primeira vez que um programador rodou o Sobelow, ele perguntou: "O que é isso?" O instrutor respondeu: "É o guarda."
O fato por trás da lenda: Sobelow é um analisador estático focado em segurança para Elixir e Phoenix.
Gancho: O guarda protege. Mas há uma coisa que investiga dependências: o MixAudit.
Capítulo 98 — Mix Xref (Parte 6): O Detetive que Traça Dependências
A lenda diz que o mix xref é um detetive que traça dependências.
A verdade é que mix xref rastreia três tipos de dependências entre módulos: compile, runtime e export.
A lenda diz que, na primeira vez que um programador rodou mix xref trace, ele perguntou: "O que é isso?" O instrutor respondeu: "É o detetive."
O fato por trás da lenda: mix xref rastreia três tipos de dependências: compile, runtime e export.
Gancho: O detetive traça. Mas há uma coisa que mostra a árvore de aplicações: o mix app.tree.
Capítulo 99 — Mix App.Tree (Parte 6): O Arquiteto que Mostra a Árvore
A lenda diz que o mix app.tree é um arquiteto que mostra a árvore de aplicações.
A verdade é que mix app.tree imprime a árvore de aplicações.
A lenda diz que, na primeira vez que um programador rodou mix app.tree, ele perguntou: "O que é isso?" O instrutor respondeu: "É a árvore de aplicações."
O fato por trás da lenda: mix app.tree imprime a árvore de aplicações.
Gancho: O arquiteto mostra. Mas há uma coisa que mede cobertura: o ExCoveralls.
Capítulo 100 — O Fim do Tomo VII: As Ferramentas que Nunca Param
A lenda diz que, no fim de tudo, quando todos os tomos forem escritos, as ferramentas continuarão funcionando. O Dialyzer continuará analisando. O Credo continuará ensinando. O Benchee continuará medindo. O Observer continuará observando. O MixAudit continuará investigando. O Sobelow continuará protegendo. E a BEAM continuará rodando.
A verdade é que o ecossistema de ferramentas do Elixir é vasto. Dialyzer analisa tipos. Credo ensina. Benchee mede. Observer observa. ExDoc documenta. Mix format formata. ExUnit testa. StreamData gera dados. Wallaby testa navegadores. Mox mocka. Faker inventa dados. Ecto.Sandbox isola testes. Telemetry observa. Logger registra. Libcluster conecta. observer_cli visualiza. Wobserver monitora. recon diagnostica. eFlambe perfila. BeamLens ilumina. xprof visualiza. tprof unifica. ExUnitProperties testa propriedades. Mimic substitui. MixAudit escaneia dependências. Sobelow escaneia código. mix xref traça dependências. mix app.tree mostra a árvore. ExCoveralls mede cobertura. Boundary impõe fronteiras. ArchTest testa arquitetura. AssertBoundary verifica fronteiras.
Este foi o Tomo VII — As Ferramentas. Cem capítulos. Ferramentas. Mil processos. E um brasileiro que ouviu um sussurro.
No próximo tomo, Os Guardiões, vamos explorar a comunidade, as conferências, a Erlang Ecosystem Foundation, e as pessoas que mantêm o ecossistema vivo.
Até lá.
O fato por trás da lenda: O ecossistema de ferramentas do Elixir é vasto. MixAudit, Sobelow, mix xref, mix app.tree, ExCoveralls, Boundary, ArchTest, AssertBoundary, e muitas outras ferramentas.
Agora, sério: O ecossistema de ferramentas do Elixir é vasto. Dialyzer analisa tipos. Credo ensina. Benchee mede. Observer observa. ExDoc documenta. Mix format formata. ExUnit testa. StreamData gera dados. Wallaby testa navegadores. Mox mocka. Faker inventa dados. Ecto.Sandbox isola testes. Telemetry observa. Logger registra. Libcluster conecta. observer_cli visualiza. Wobserver monitora. recon diagnostica. eFlambe perfila. BeamLens ilumina. xprof visualiza. tprof unifica. ExUnitProperties testa propriedades. Mimic substitui. MixAudit escaneia dependências. Sobelow escaneia código. mix xref traça dependências. mix app.tree mostra a árvore. ExCoveralls mede cobertura. Boundary impõe fronteiras. ArchTest testa arquitetura. AssertBoundary verifica fronteiras. As capivaras quânticas não são reais — mas deveriam ser. Este artigo é uma fantasia satírica baseada em fatos. Mantenha o aviso para não enganar ninguém.
Top comments (0)