SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
nbdev
Create delightful software
with Jupyter Notebooks
Março de 2023
SUMÁRIO
● Introdução
● Primeiros Passos
● Desenvolvendo o Core da Aplicação
● Atualizando o README.md
● Desenvolvendo a CLI
● Subindo o pacote pro PyPi
● 6 Meses Utilizando o nbdev
● Referências
INTRODUÇÃO
https://nbdev.fast.ai/
Write, test, document, and distribute software packages and technical
articles — all in one place, your notebook
O nbdev é um framework para desenvolvimento de pacotes e
interfaces de linha de comando em Python
https://en.wikipedia.org/wiki/Literate_programming
O nbdev implementa o conceito de literate programming,
desenvolvido por Donald Knuth em 1984 e que sugere que
código, testes e documentação sejam escritos em um único
documento
https://en.wikipedia.org/wiki/Jeremy_Howard_(entrepreneur)
O nbdev foi desenvolvido por Jeremy Howard, já foi Presidente
e Chief Scientist do Kaggle, co-fundador da fast.ai e do curso
gratuito de Practical Deep Learning for Coders
Empresas que utilizam o nbdev
https://nbdev.fast.ai/explanations/why_nbdev.html
PRIMEIROS PASSOS
Instalando e criando um projeto nbdev
Inspecionando um projeto nbdev
Servindo a documentação no localhost: nbdev_preview
Fazendo primeira modificação: nbdev_prepare
Subindo código pro github
Criando o repositório no github
Linkando o repositório no github com o repositório local
Linkando o repositório no github com o repositório local
Verificando o pipeline de CI no Github Actions
Habilitando o deploy no Github Pages
Habilitando o deploy no Github Pages
Habilitando o deploy no Github Pages
Checando o link da documentação criada
Disponibilizando o link da documentação na página inicial do repositório
Disponibilizando o link da documentação na página inicial do repositório
Fluxo de Desenvolvimento
● Escreve código nos jupyter notebooks
● Uma vez escrito os códigos, executar o comando nbdev_prepare
● Commit e Push para o repositório no github
● Aguardar finalização do pipeline de CI finalizar com sucesso
● Checar se a documentação foi atualizada
● Vamos exemplificar esse fluxo atualizando o arquivo nbs/00_core.ipynb
para incluir o core da nossa aplicação e criando uma cli
DESENVOLVENDO O CORE DA
APLICAÇÃO
Desenvolvendo o core da aplicação no arquivo nbs/00_core.ipynb
Desenvolvendo o core da aplicação no arquivo nbs/00_core.ipynb
Desenvolvendo o core da aplicação no arquivo nbs/00_core.ipynb
Desenvolvendo o core da aplicação no arquivo nbs/00_core.ipynb
Desenvolvendo o core da aplicação no arquivo nbs/00_core.ipynb
ATUALIZANDO O README.md
Atualizando o arquivo nbs/index.ipynb
Atualizando o arquivo nbs/index.ipynb
Atualizando o arquivo nbs/index.ipynb
DESENVOLVENDO A CLI
Desenvolvendo a CLI
Desenvolvendo a CLI - Linkando a cli com a função a ser executada
Desenvolvendo a CLI - testando
Desenvolvendo a CLI - testando
Desenvolvendo a CLI - documentação atualizada
SUBINDO O PACOTE PRO PYPI
Subindo o pacote pro PyPi
6 MESES UTILIZANDO O NBDEV
10 pacotes: todos com documentação no github pages
https://www.linkedin.com/posts/joaopaulonogueira_python-finanaexaspessoais-nbdev-activity-7012389493177528320-If2z/?utm_source=sha
re&utm_medium=member_desktop
Publicação com 800
curtidas no Linkedin
Vantagens e Benefícios do nbdev
Tempo entre desenvolvimento de uma solução (script, análise, consulta) até a distribuição em um
pacote python foi brutalmente reduzido
Contato prático com conceitos como CI/CD, documentação e testes desde o início do
desenvolvimento, sem muitas fricções ou necessidade de sair integrando diferentes soluções
que implementam isoladamente cada uma dessas necessidades.
Projetos mais fáceis de dar manutenção. Aquele medo de voltar a um projeto antigo e
implementar algo novo vai ser bastante mitigado.
Você será mais feliz e produtivo!
REFERÊNCIAS
Referências
Documentação do nbdev: https://nbdev.fast.ai/
A step-by-step guide to using nbdev: https://nbdev.fast.ai/tutorials/tutorial.html
Zero to published project in 90 minutes: https://www.youtube.com/watch?v=l7zS8Ld4_iA
nbdev v2 review: Git-friendly Jupyter Notebooks | InfoWorld

Mais conteúdo relacionado

Semelhante a Desenvolva software com Jupyter Notebooks e nbdev

TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Eliel Simoncelo
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Construindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e DockerConstruindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e DockerWellington Marinho
 
Zabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres DockerZabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres DockerAécio Pires
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogVinícius Thiengo
 
NuGet no ecossistema empresarial
NuGet no ecossistema empresarialNuGet no ecossistema empresarial
NuGet no ecossistema empresarialNuno Gomes
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferVinicius Warto Campos
 
Azure Bootcamp - Azure App Service e Function com Linux e NodeJS
Azure Bootcamp - Azure App Service e Function com Linux e NodeJSAzure Bootcamp - Azure App Service e Function com Linux e NodeJS
Azure Bootcamp - Azure App Service e Function com Linux e NodeJSAlexandre Bolzon
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesRodrigo Peleias
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
Palestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DPalestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DRenato Puccini
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...Renato Groffe
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingRhuan Karlus Silva
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com DockerWellington Silva
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogVinícius Thiengo
 

Semelhante a Desenvolva software com Jupyter Notebooks e nbdev (20)

TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Construindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e DockerConstruindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e Docker
 
Zabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres DockerZabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres Docker
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do Blog
 
NuGet no ecossistema empresarial
NuGet no ecossistema empresarialNuGet no ecossistema empresarial
NuGet no ecossistema empresarial
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
 
Azure Bootcamp - Azure App Service e Function com Linux e NodeJS
Azure Bootcamp - Azure App Service e Function com Linux e NodeJSAzure Bootcamp - Azure App Service e Function com Linux e NodeJS
Azure Bootcamp - Azure App Service e Function com Linux e NodeJS
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 Portugues
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Palestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DPalestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3D
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and Multithreading
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do Blog
 

Desenvolva software com Jupyter Notebooks e nbdev