Upgrade to Pro — share decks privately, control downloads, hide ads and more …

De .Net a Python

De .Net a Python

De .NET a Python. ¿Dónde están mis cosas?
Hace unos meses di un giro de 180º y, tras más de 8 años trabajando con .NET, he saltado a un stack muy diferente, con Python como centro del cambio. En mi día a día utilizaba multitud de herramientas a todos los niveles: patrones de diseño, librerías, frameworks, SDKs, servicios de Azure y, por supuesto, Visual Studio. Hoy, mi caja de herramientas es bien diferente, empezando con python, pip, tornado y Pycharm, entre otros. Al principio todo bien. Hago mis ejercicios de HackerRank, voy aprendiendo las diferentes estructuras de datos, convenciones, buenas prácticas, algunas librerías, etc. Pero llega el día en el que quiero hacer mi primer proyecto web desde cero. Y en ese momento me pregunto ¿Dónde están mis cosas? Me refiero a todas esas piezas a diferentes niveles, que usaba a diario y que, en un primer momento, no tengo claro cuál es su equivalente en Python o si acaso tienen sentido dentro de este stack. ¿Hay algún IDE que me facilite la vida para desarrollarlo? ¿Cómo hago debug? ¿Hay alguna herramienta de profiling? Y más allá del entorno, ¿qué capas se suelen utilizar y cómo las separo? ¿Cómo implemento la inversión de control? ¿Cuál es el equivalente de un patrón repositorio genérico? ¿Por qué necesito los entornos virtuales? ¿Qué me aporta la herencia múltiple? Y las comprehensions, ¿puedo hacer todo lo que hacía con Linq? En esta charla trataremos de enlazar los dos mundos, analizaremos pros y contras e intentaremos responder a algunas de las preguntas anteriores.

jorge jardines

November 23, 2018
Tweet

Other Decks in Technology

Transcript

  1. ¿Quiénes somos? Gonzalo Rubio .NET: 8 años Python: meses... LinkedIn:

    http://www.linkedin.com/in/gonzalo-rubio-torrente Twitter: @GonzaloRubio1 Jorge Jardines .NET: 7 años Python: 8 años LinkedIn: https://www.linkedin.com/in/jorgejardines Twitter: @gardenunez
  2. Un poco de historia Lanzadoen2002 Propósito general en Windows Framework

    mutilenguaje • Framework Class Library • Common LanguageRuntime C#: Anders Hejlsberg Orientado a objetos Fuertemente tipado y estático Lanzado en 1991, Guido van Rossum Propósito general Multiplataforma Opensource Interpretado Orientado a objetos Fuertemente tipado y dinámico
  3. Persistencia Presentación Django Sé dónde escribir… ¿y ahora qué? MVC

    DI Gestión de errores Autenticación Contratos API y validaciones Lógica de negocio Servicios Lógica de negocio Implementación Repositorios Modelos DTOs sin persistencia específica Mapeos DB y migraciones Template Serializers (Contratos Modelo y validaciones) View Lógica de negocio Contratos (verbos) Model Modelos de BD (con mapeos) Migraciones Gestión de errores Autenticación Contratos (URLs)
  4. Persistencia Presentación Django Sé dónde escribir… ¿y ahora qué? MVC

    Contratos API y validaciones Lógica de negocio Servicios Implementación Modelos Template Serializers (Contratos Modelo y validaciones) View Contratos (verbos) Model Contratos (URLs)
  5. Persistencia Presentación Django Sé dónde escribir… ¿y ahora qué? MVC

    DI Contratos API y validaciones Lógica de negocio Servicios Implementación Modelos Template Serializers (Contratos Modelo y validaciones) View Contratos (verbos) Model Contratos (URLs)
  6. Persistencia Presentación Django Sé dónde escribir… ¿y ahora qué? MVC

    DI Gestión de errores Autenticación Contratos API y validaciones Lógica de negocio Servicios Implementación Modelos Template Serializers (Contratos Modelo y validaciones) View Contratos (verbos) Model Gestión de errores Autenticación Contratos (URLs)
  7. Persistencia Presentación Django Sé dónde escribir… ¿y ahora qué? MVC

    DI Gestión de errores Autenticación Contratos API y validaciones Lógica de negocio Servicios Lógica de negocio Implementación Modelos Template Serializers (Contratos Modelo y validaciones) View Lógica de negocio Contratos (verbos) Model Gestión de errores Autenticación Contratos (URLs)
  8. Persistencia Presentación Django Sé dónde escribir… ¿y ahora qué? MVC

    DI Gestión de errores Autenticación Contratos API y validaciones Lógica de negocio Servicios Lógica de negocio Implementación Repositorios Modelos DTOs sin persistencia específica Mapeos DB y migraciones Template Serializers (Contratos Modelo y validaciones) View Lógica de negocio Contratos (verbos) Model Modelos de BD (con mapeos) Migraciones Gestión de errores Autenticación Contratos (URLs)
  9. Conclusiones No hay uno mejor que otro La clave: buenos

    principios de desarrollo De estático a dinámico y viceversa…