|
| 1 | +# HacktoberfestES 2020 |
| 2 | + |
| 3 | +This article is a review of the event [Python HacktoberfestES](https://hacktoberfest.es.python.org/) |
| 4 | + |
| 5 | + |
| 6 | +# [2020-10-04] Presentación Hacktoberfest |
| 7 | +- vídeo inaugural: |
| 8 | + https://youtu.be/bRemmaI9M34?t=1289 |
| 9 | +- Presentación: |
| 10 | + https://github.com/avara1986/hacktoberfestES-pyms/blob/master/Microservicios%20v3.0%20Light.pdf |
| 11 | + |
| 12 | + |
| 13 | +# [2020-10-04] Presentación PyMS |
| 14 | +Buenas! Con PyMS vamos a estudiar y aprender a construir microservicios para el mundo real: No solo una API que devuelve datos. ¿qué tiene que cumplir un microservicio para ser productivo? Configuración externalizada, healthchecks, trazabilidad... ¡y mucho más! |
| 15 | + |
| 16 | +- Puedes ver la documentación en: https://py-ms.readthedocs.io/en/latest/ |
| 17 | +- Ver el código fuente en Github al igual que las issues abiertas (y las que se nos vayan ocurriendo): https://github.com/python-microservices/pyms |
| 18 | +- Puedes clonarte un arquetipo de microservicio funcional en: https://github.com/python-microservices/microservices-scaffold |
| 19 | +- O crearte el tuyo propio con Cookiecutter: https://github.com/python-microservices/cookiecutter-pyms |
| 20 | + |
| 21 | +# [2020-10-04] Hacktoberfest: primera reunión |
| 22 | +De los que hemos participado juntamos un stack tecnológico muy interesante habiendo tocado no solo Python si no lenguajes como Java, .NET, Groovy, BASH, Ruby, además de tecnologías blockchain, sistemas e infrastructura, CI... |
| 23 | + |
| 24 | +También hemos visto que PyMS, tanto la librería como el arquetipo "destacado" son sobre Flask pero puede incluir en un futuro otros frameworks como aiohttp o FastAPI. Pero además existe este proyecto https://github.com/python-microservices/microservices-django-scaffold para adaptar todas estas buenas prácticas sobre un proyecto de Django. |
| 25 | + |
| 26 | +Planteamos, si a alguien no le atraen los microservicios como tal, poder crear una página web estática con la documentación, información y literatura sobre microservicios y quien sabe, hasta un posible blog con un generador de contenido estático como https://getnikola.com/ o alguno de estos https://wiki.python.org/moin/StaticSiteGenerator (pendiente de definir) |
| 27 | + |
| 28 | +Como no todos tenemos el mismo nivel, hemos acordado empezar con unos tutoriales y formaciones en Python y el arquetipo para tener todos contexto y el fin de semana que viene hacer puesta en común y empezar a trabajar sobre issues de los proyectos. |
| 29 | + |
| 30 | +Para poder colaborar, proponemos que cuando alguien esté mirando cosas del proyecto o dedicado a investigar, que avise por chat y si quiere, conectarse al chat de voz para resolver dudas y hacer pair-programming, presentar o charlar. Del mismo modo, si alguien quiere ver dudas que avise por chat "a tal hora me conecto" |
| 31 | + |
| 32 | +## Recursos útiles para aprender Python: |
| 33 | +- 7 Repositorios para aprender Python https://towardsdatascience.com/top-7-repositories-on-github-to-learn-python-44a3a7accb44 |
| 34 | + |
| 35 | +## Cursos, Posts y Podcasts |
| 36 | +- https://realpython.com/ - Python en general, cursos pago, posts gratis, muy claro. |
| 37 | +- https://www.fullstackpython.com/ - Posts de desarrollo fullstack, muchos enlaces a otros recursos. |
| 38 | +- https://training.talkpython.fm/ - Podcast gratis y cursos de pago, mucho de web en Flask. |
| 39 | +- https://www.pluralsight.com/ - De pago, muchos lenguajes, mucho testing, muchos perfiles (dev, sec, devops), buenos recursos video, examenes, portfolio de habilidades y roles. |
| 40 | +- https://ed.team/ - Canal de youtube, cursos de pago, muchas tecnologías, en español. |
| 41 | +- https://codely.tv/ - Canal de youtube, cursos de pago (devops y arquitectura), algo de Golang pero nada de Python |
| 42 | + |
| 43 | +## Katas |
| 44 | +- https://www.hackerrank.com/ muchos niveles, portfolio de habilidades, bolsa de trabajo. |
| 45 | +- https://exercism.io/ - muchos lenguajes, basado en tests, editas offline y envias con terminal. |
| 46 | +- https://www.codewars.com/ - muchos lenguajes, plataforma de katas, con katas de usuario. |
| 47 | +## Noticias |
| 48 | +- https://dev.to/t/python - Noticias y dudas. |
| 49 | +- https://www.reddit.com/r/Python - Noticias, dudas y nido de trolls. |
| 50 | + |
| 51 | +## Aprender Jugando |
| 52 | +- https://www.codingame.com/ - Muchos lenguajes. |
| 53 | +- https://py.checkio.org/ |
| 54 | +- https://www.twilio.com/quest - Gracioso pero poco codigo. |
| 55 | + |
| 56 | +## Relacionadas con PyMS: |
| 57 | +- Forma más actual de hacer tests en python: https://docs.pytest.org/en/stable/ |
| 58 | +- Para complementar tus test, Tox: https://tox.readthedocs.io/en/latest/ |
| 59 | +- Pipenv como sustituto del típico virtualenv: https://pipenv-es.readthedocs.io/es/latest/ |
| 60 | +- Linter para verificar la sintaxis del código, Pylint: https://pylint.readthedocs.io/en/latest/?badge=latest |
| 61 | +- También Flake8: https://flake8.pycqa.org/en/latest/ |
| 62 | +- "Tipado" en Python: https://docs.python.org/3/library/typing.html |
| 63 | +- "La biblia" de la arquitectura de microservicios: https://microservices.io/ |
| 64 | +- Trazabilidad distribuida con Python: https://github.com/opentracing/opentracing-python |
| 65 | + |
| 66 | + |
| 67 | +# [2020-10-05] Formación, Python Básico: |
| 68 | +https://github.com/avara1986/hacktoberfestES-pyms/blob/master/python_101/Python%20%22b%C3%A1sico%22.ipynb |
| 69 | + |
| 70 | +# [2020-10-06] Formación, buenas prácticas: |
| 71 | +https://github.com/avara1986/hacktoberfestES-pyms/blob/master/python_best_practices/Python%20Best%20Practices.ipynb |
| 72 | + |
| 73 | +# [2020-10-08] Formación, Cómo funciona PyMS: |
| 74 | +https://youtu.be/i9msDUKA0Zk |
| 75 | + |
| 76 | +# [2020-10-08] Formación, Portainer, web-ui para manejar Docker: |
| 77 | +https://youtu.be/z-_DhL6wRFQ |
| 78 | + |
| 79 | +# [2020-10-09] Fin de sprint, reparto de tareas: |
| 80 | +Se puede contribuir mediante Fork o avisadme y os añado como colaboradores para poder trabajar sobre el mismo repo. Lo que prefiráis! |
| 81 | + |
| 82 | +workflow para contribuir: |
| 83 | +https://guides.github.com/introduction/flow/ |
| 84 | + |
| 85 | +## Tareas/issues repartidas: |
| 86 | +https://github.com/python-microservices/pyms/issues/166 @BelenC y @AmandaKhol -> En esta pueden participar más de una persona |
| 87 | +https://github.com/python-microservices/pyms/issues/89 @Rapejim (Raúl) :heavy_check_mark: |
| 88 | +https://github.com/python-microservices/microservices-scaffold/issues/213 @vmyelicich (Víctor) |
| 89 | +https://github.com/python-microservices/pyms/issues/178 @kirk |
| 90 | +https://github.com/python-microservices/microservices-scaffold/issues @felipem775 |
| 91 | +https://github.com/python-microservices/cookiecutter-pyms/issues/9 @AmandaKhol :heavy_check_mark: |
| 92 | +https://github.com/python-microservices/cookiecutter-pyms/issues/4 @PandyTheBroh |
| 93 | + |
| 94 | +## Tareas/issues listas para asignar: |
| 95 | +https://github.com/python-microservices/pyms/issues/68 |
| 96 | +https://github.com/python-microservices/pyms/issues/180 |
| 97 | +https://github.com/python-microservices/pyms/issues/182 |
| 98 | +https://github.com/python-microservices/pyms/issues/184 |
| 99 | +https://github.com/python-microservices/pyms/issues/188 |
| 100 | +https://github.com/python-microservices/pyms/issues/189 |
| 101 | +https://github.com/python-microservices/pyms/issues/185 (HARD) |
| 102 | +https://github.com/python-microservices/pyms/issues/156 (HARD) |
| 103 | +https://github.com/python-microservices/pyms/issues/186 (HARD) |
| 104 | +https://github.com/python-microservices/pyms/issues/190 (HARD) |
| 105 | + |
| 106 | +## Investigación: |
| 107 | +- Access token: |
| 108 | + - Investigar https://microservices.io/patterns/security/access-token.html |
| 109 | + - Actualizar el proyecto de ejemplo https://github.com/python-microservices/oauth con lo último de PyMS |
| 110 | + - Mejorar y hacer de manera genérica la implementación de JWT |
| 111 | +- Saga: |
| 112 | + - Investigar https://microservices.io/patterns/data/saga.html |
| 113 | + - Crear un arquetipo parecido al [que ya existe](https://github.com/python-microservices/microservices-scaffold) que haga este patrón |
| 114 | +- Circuit Breaker: |
| 115 | + - Investigar https://microservices.io/patterns/reliability/circuit-breaker.html |
| 116 | + - Llevar a PyMS, si es posible, ese patrón para que se pueda usar en todos los microservicios (por ejemplo, como hace https://micronaut.io/) |
| 117 | + |
| 118 | +- gRCP ([protocol buffers](https://grpc.io/docs/what-is-grpc/introduction/)): |
| 119 | + - Una forma alternativa a API Rest para comunicar microservicios es [mediante gRCP](https://grpc.io/docs/languages/python/quickstart/) |
| 120 | + - Crear un arquetipo parecido al [que ya existe](https://github.com/python-microservices/microservices-scaffold) que se comunique con otro mediante gRCP |
| 121 | + - Llevar a PyMS, si es posible, este framework |
| 122 | + |
| 123 | +## Retos: |
| 124 | +- Publisher-subscriber: https://github.com/python-microservices/pyms/issues/155 |
| 125 | + - Crear un script que escuche y escriba en una cola infinitamente |
| 126 | + - Evolucionar el servicio para que en un futuro se puedan ir añadiendo diferentes servicios (SQS, Kafka, Pub/sub, RabbitMQ...) |
| 127 | + - Meter este servicio en un subproceso/thread para que se pueda integrar con PyMS |
| 128 | + - Añadir endpoints para consultar información de la cola |
| 129 | + |
| 130 | + |
| 131 | +## Consejos y acuerdos: |
| 132 | +- Hay que visitar Valparaíso (Chile) |
| 133 | +- Es necesario visitar la isla de La Palma al menos una vez en la vida |
| 134 | +- Cuidado al pedir pizza a domicilio |
| 135 | + |
| 136 | +# [2020-10-10] Debate sobre issue #89: |
| 137 | +https://youtu.be/cDR10YSnb0M |
| 138 | + |
| 139 | +# [2020-10-11] Resumen de la primera semana: |
| 140 | +https://youtu.be/WU-IAGConjU |
| 141 | + |
| 142 | +# [2020-10-11] Git workflow y testing: |
| 143 | + |
| 144 | +*TODO: falta link* |
0 commit comments