Anúncio
Anúncio

Mais conteúdo relacionado

Similar a Charla - MVP con django (beta beers)(20)

Último(20)

Anúncio

Charla - MVP con django (beta beers)

  1. www.kevinzelada.cl
  2. Emprendedor Tecnológico & Backend Developer mis preferencias son Python/Django & Entusiasta de JavaScript. @kevinzeladacl Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  3. Empresas & Startups Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl www.appfactory.cl Cofounder Creativo Partner tecnológico de negocios Desarrollamos Web/Mobile Apps www.findfounders.com Cofounder & Developer Plataforma para encontrar socios de negocios e inversionistas. www.primerocotiza.cl CTO Plataforma para cotizar servicios a través de un formulario único
  4. Comunidades Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl www.programadores.cl Cofounder & Organizador Red de programadores e informáticos de Chile www.suricataorg.com Cofounder ONG dedicada a entregar un valor agregado a la educación www.kevinzelada.cl Developer Web/Blog personal con tips, articulos, consejos, etc.
  5. Caso de ejemplo : FindFounders.com Tema de Charla “Creando un MVP con DJANGO” Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  6. ¿Qué es Django? Un framework web de alto nivel escrito en Python que fomenta el desarrollo rápido y limpio y el diseño pragmático. Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  7. ¿Quiénes usan Django? Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  8. Django es Python ● Python es un lenguaje de script de código abierto. ● Es multiplataforma: Linux, Mac OS X y Windows. ● Es multiparadigma: Funcional y orientado a objetos ● Es muy legible y conciso ● Es interpretado: No necesitamos compilar nuestros programas ● Python es fuertemente tipado pero tiene tipos dinámicos: ○ Una variable puede cambiar de tipo en ejecución pero el tipo se tiene en cuenta para las operaciones Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  9. Django sigue el principio
  10. Sigue el patrón MTV Separa datos, interfaz de usuario y lógica de control: ★ Model → modelo de datos (models.py) ★ View →vistas de datos (views.py): qué datos se presentan ★ Template → plantillas de páginas (generalmente archivos HTML): cómo se presentan los datosEl controlador es el propio framework Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  11. ¿Qué hace Django? Provee una estructura de trabajo bajo el patrón Model Template View ● Mapea objetos Python con la base de datos (ORM) ● Permite diseñar URLs amigables para buscadores (útil para SEO) ● Tiene un sistema de plantillas sencillo para diseñadores ● Genera una interfaz de administración automática ● Dispone de un framework para manejar formularios ● Puede gestionar sesiones de usuario, autenticación, caché, almacenamiento, sitemaps, internacionalización, etc. Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  12. Django es modular
  13. ¿Qué es un MVP? ● Producto mínimo viable es la versión que nos permite lanzar el producto con el mínimo de features (características) posible pero que siga entregando el valor agregado de nuestro producto o servicio. ● Nos permite aprender información relevante de su lanzamiento y uso de los usuarios mediante una serie de métricas. ● Tratamos de comprobar si los early adopter estan dispuestos a pagar por nuestra solución a su problema y si entregamos el producto o servicio adecuado? Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  14. ¿Qué necesito para crear un MVP? 1. Tener una idea 2. Aterrizar tu idea 3. Establece un plazo 4. Evita perfecciones 5. Lanza rápido 6. Analiza tus feedback Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  15. ¿Qué es FindFounders.com? ● Es una plataforma que permite encontrar socios de negocios o inversionistas. Donde publicas tu aviso/oferta y esta puede ser respondida por los usuarios de la plataforma. ● Stack ○ Django Framework ○ PostgreSQL y Redis ○ Digital Ocean (ubuntu) ● Tiempo : 1 mes - Tiempo promedio para un MVP Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  16. ORM - Simpleza en la BD Es una herramienta que te permite realizar consultas SQL a la Base de Datos, SIN UTILIZAR SQL, ¿Cómo es eso?, un ejemplo: Sin ORM: SELECT * FROM “autores_autor” INNER JOIN “autor_libro” ON (“autores_autor”.”id” = “autores_libro”.”autor_id”) INNER JOIN “autores_libro_librerias” ON (“autores_libro”.”id” = “autores_libro_librerias”.”libro_id”) INNER JOIN “autores_libreria” ON (“autores_libro_librerias”.”libreria_id” = “autores_libreria”.”id”) WHERE “autores_libreria”.” nombre” = “La Cultura” Con ORM: Autor.objects.filter(libros__libreria__nombre = “La Cultura”) Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  17. Las Migraciones - Modelos DB Las migraciones son cómo almacena Django cambios a sus modelos (y por tanto el esquema de base de datos) Son simplemente los archivos en el disco. Puedes leer la migración para su nuevo modelo si se quiere; que es el archivo app/migrations/0001_initial.py . Cada cambio en la DB genera un archivo de migracion solo para la app correspondiente, permitiendo tener un historial, hacer rollback, corregir errores, etc. Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  18. VISTAS - Todo es Python “Django es un framework web de alto nivel” Eso está muy claro en la definición, pero ahora agregaremos algo: “Django es un framework web de alto nivel escrito en Python”. Gracias a esto Django hereda todas las características y facilidades que nos da Python, entre ellas escribir código bastante fácil de entender, y sobre todo te permite desarrollar aplicaciones muy rápidas y potentes. Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  19. Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  20. Modular El ser modular permite trabajar tu aplicación de forma escalable Permite que FindFounders pueda sumar mejoras constantemente. Al ser modular se pueden integrar apps externas que apoyen el proyecto Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl pip install unipath # Para manejar referencias de directorios dentro del proyecto pip install Celery # Para manejar tareas en segundo plano pip install djangorestframework # Para crear api rest con django
  21. Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl Cada Apps es un módulo del proyecto. Funcionan como un ecosistema independiente lo que permite al equipo trabajar en funciones distintas de forma ordenada. Ejemplo: FindFounders
  22. Sistema de Cache Otra integración fundamental es Redis Un sistema de caché permite que el impacto a tu sistema y/o DB se vean disminuidos. Menos consultas a la base de datos, ya que la data se almacena temporalmente en una db secundaria Ideal para chat, notificaciones, o muestra de data sin cambios frecuentes. Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  23. Deploy Recomiendo 100% Digital Ocean para MVP También puedes usar Heroku, Openshift, etc. Consejo : No sean RATAS! son solo 5USD FindFounders esta en Digital Ocean, de esta forma tengo una infraestructura estable mientras dura mi etapa de MVP Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  24. Consejos Finales Si tienen una idea que no te detenga el diseño. El mejor feedback es el de tus propios clientes. Aterriza tu proyecto, hazlo simple para un tiempo razonable. Que el lenguaje no te limite: Usa lo que mejor manejes. Tienes una idea puedes contactarme en : www.kevinzelada.cl | www.appfactory.cl | yo@kevinzelada.cl
  25. www.kevinzelada.cl Ya sabes lo necesario para crear tu MVP
Anúncio