Boa tarde, queridos leitores! Este artigo se destina a todos os cientistas de dados que decidem escrever seu primeiro aplicativo da web. Nesta publicação, não publicarei listagens de código. Na Internet, existem muitos exemplos práticos de construção de serviços escritos em diferentes estruturas. Mas existem muito poucos artigos teóricos sobre a lógica do processo, a arquitetura da solução e, o mais importante, as dificuldades que um especialista encontrará pela primeira vez. Resolvi preencher esse nicho e descrever minha experiência pessoal, que pode ser útil para alguém.
Especialmente para o artigo, preparei dois exemplos idênticos no Flask e no Dash e os postei no GitHub. Eles ilustram o cálculo e a produção de indicadores econômicos unitários para um mercado abstrato de TI chamado Habr (e por que não, porque agora todas as empresas começaram a se envolver com o e-commerce :).
Proponho-me construir a conversa na forma de um resumo passo a passo do material em anexo, no processo irei focar sua atenção naqueles momentos que pessoalmente achei mais difíceis ou interessantes. E, é claro, definitivamente nos concentraremos nos erros que cometi como desenvolvedor de back-end.
"OPP: se você não sabe - não tome!" Quando se trata de OPP, por algum motivo, eu automaticamente penso no Django com suas classes. Mas se você olhar para o trabalho de cientistas ou analistas de dados em formação, vemos um quadro completamente diferente. As classes são usadas para o bem das próprias classes. Todo o código é simplesmente fundido nesta estrutura da linguagem. Qual é a responsabilidade desse “monstro”? Para todos! Como procurar erros ou reescrever o código não está claro. Pessoalmente, tenho essa opinião sobre este assunto. Se você não sabe quando, como e por que usar OPP, então é melhor usar um estilo funcional de procedimento para pequenos desenvolvimentos.
“Que seja vergonhoso, mas uniformidade. Mesmo se você estiver trabalhando sozinho, desenvolva um sistema de formação de namespace uniforme. Isso, em primeiro lugar, melhorará a legibilidade do código e, em segundo lugar, agilizará sua escrita, já que não há necessidade de lembrar exatamente como a função é nomeada em outra página.
"Nós nos comprometemos, mesmo se não empurrarmos." Mesmo se você não tiver uma conta no GitHub, pratique o uso de um sistema de controle de versão. Isto é realmente conveniente, pois permite realizar experimentos em ramos auxiliares sem criar planilhas adicionais para testar hipóteses. Costumo negligenciar essa recomendação, mas em vão.
“ .” ? , . , PHP, Ruby, C#:
Flask – HTML+CSS
Django – HTML+CSS
Flask Rest API/FastAPI/Django Rest Framework – HTML+CSS+ Javascript (Vue, React, Angular)
Dash ( Flask) – Dask ( React)
, .
, , – Dash
. , - – Flask
, . , , - – FastAPI – Vue.js
Flask Dash .
, , 6 -, -. , . , .
Flask , , html css . Bootstrap4 , , .
Dash , app.py. , . . asset. - . , , .
“ .” . . , , , . . . etl- .
“ .” . - . etl-, , . , . , , .
“ SQL- , .” . sql. . . . SQLite.
“Pandas , .” , , . Python.
“ , YAML-.” yaml - data scientist- Youtube. . .
“ Docker.“ . Windows, Docker. Windows 10 , Docker Toolbox. , - Docker GitHub. Windows 8.1, , . , . Debian 10. , . , Apache Airflow, .
. , . , . . , Linux. . , Dash docker-, . , , , .
“ , .” . , , . , , , , .
. Dash, . . , app.py 127.0.0.1, 0.0.0.0.
. . .
Isso é tudo. Toda saúde, boa sorte e sucesso profissional!