Para que el primer panqueque no salga grumoso. Consejos para un desarrollador de servicios novato

¡Buenas tardes queridos lectores! Este artículo está dirigido a todos los científicos de datos que decidan escribir su primera aplicación web. En esta publicación, no publicaré listados de códigos. En Internet, hay muchos ejemplos prácticos de servicios de construcción escritos en diferentes marcos. Pero hay muy pocos artículos teóricos sobre la lógica del proceso, la arquitectura de la solución y, lo más importante, las dificultades con las que se encontrará un especialista. Decidí llenar este nicho y describir mi experiencia personal, que puede ser útil para alguien.





 Especialmente para el artículo, preparé dos ejemplos idénticos en Flask y Dash y los publiqué en GitHub. Ilustran el cálculo y la salida de indicadores económicos unitarios para un mercado de TI abstracto llamado Habr (y por qué no, porque ahora todas las empresas han comenzado a participar en el comercio electrónico :).





Propongo construir la conversación en forma de resumen paso a paso del material adjunto, en el proceso enfocaré su atención en aquellos momentos que personalmente me parecieron más difíciles o interesantes. Y, por supuesto, definitivamente nos centraremos en esos errores que cometí como desarrollador backend.





"OPP: si no sabe cómo, ¡no lo tome!" Cuando se trata de OPP, por alguna razón, automáticamente pienso en Django con sus clases. Pero si observa el trabajo de científicos o analistas de datos en ciernes, vemos una imagen completamente diferente. Las clases se utilizan por el bien de las clases mismas. Todo el código simplemente se fusiona en esta estructura del lenguaje. ¿De qué es responsable este "monstruo"? ¡Para todos! No está claro cómo buscar errores o reescribir el código. Personalmente, tengo esa opinión sobre este asunto. Si no sabe cuándo, cómo y por qué usar OPP, entonces es mejor usar un estilo procedimental-funcional para pequeños desarrollos.





“Sea vergonzoso, pero uniformidad. Incluso si está trabajando solo, desarrolle un sistema de formación de espacios de nombres uniforme. Esto, en primer lugar, mejorará la legibilidad del código y, en segundo lugar, acelerará su escritura, ya que no es necesario recordar exactamente cómo se nombra la función en otra página.





"Nos comprometemos, incluso si no presionamos". Incluso si no tiene una cuenta de GitHub, practique el uso de un sistema de control de versiones. Esto es realmente conveniente, ya que permite realizar experimentos en ramas auxiliares sin crear hojas adicionales para probar hipótesis. A menudo descuido esta recomendación, pero en vano.





“ .” ? , . , 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.





. . .





Eso es todo. ¡Toda salud, buena suerte y éxito profesional!








All Articles