1Frameworks(... ¡¡¡reutilizar, reutilizar, reutilizar!!! ...)(Arquitectura de Software para Practicantes)Universidad de lo...
Diseño ArquitectónicoDiseñoArquitectónicoArquitecturadel SoftwareBibliotecas /ComponentesPatrones deDiseñoClases /Funcione...
3¿qué relación tienen los frameworkscon los estilos arquitectónicos?¿qué relación tienen los frameworkscon los patrones de...
¿Frameworks y Arquitectura de Software?Bibliotecas /ComponentesPatrones deDiseñoClases /FuncionesFrameworks(Marcos)Estilos...
5To framework or not to framework? (use)Si tienen que desarrollar unaaplicación WEB...(O un compilador, o unaaplicación de...
6To framework or not to framework? (use)Opción 1:Desarrollar desde cero (“from scratch”),para esto es necesario:Definir la...
7To framework or not to framework? (use)Opción 2:Tomar una aplicación WEB que ya esté desarrollada(no necesariamente con u...
8To framework or not to framework? (use)Opción 3:Tomar un framework(para desarrollar aplicaciones WEB)Comprender / aprende...
9To framework or not to framework? (use)Opción 1:Desarrollar desde cero (“from scratch”)Opción 2:Tomar una aplicación WEB ...
10Generalmente, si hay un buenframework que cumple conlas expectativas no hayexcusa para no utilizarlo...To framework or n...
11To framework or not to framework?(development)¿Vale la pena desarrollar un framework?... depende ...Crear un framework e...
12To framework or not to framework?(development)YAGNI: You Aint Gonna Need It
13Nadie dice que no puede desarrollar un framework, dehecho, las opciones 1 y 2 (especialmente la 2) del ejemploanterior p...
14¿Cómo se “aprende” a desarrollarframeworks?¿Cómo se desarrollan las habilidades necesariaspara desarrollar frameworks?1....
15¿Cómo saber si vale al penautilizar un framework ocomponente específico?(Algunos tips para evaluarframeworks y component...
16Primero:Tenga bien claro el contexto yel para qué necesita elframework......y luego considere losiguiente...¿Cómo elegir...
17¿Cómo elegirun framework o un componente?Asegúrese de que el framework / componente está siendomantenido activamente, re...
18¿Cómo elegirun framework o un componente?Determine la calidad del soporte¿Hay soporte oficial (de los desarrolladores)?¿...
19¿Cómo elegirun framework o un componente?¿Cuál es la dificultad de aprendizaje del framework?¿Cuál es la curva de aprend...
20¿Cómo elegirun framework o un componente?¿El framework/componente es open source / free software(son dos cosas diferente...
21¿Cómo elegirun framework o un componente?* La calidad interna es importante si necesitamos extender omodificar el framew...
22...y seguramente hay muchasotras variables adicionales atomar en cuenta según elcaso, de modo que mantengalos ojos bien ...
23Gracias¡Gracias!
Upcoming SlideShare
Loading in...5
×

Clase 09c seleccion

252

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
252
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase 09c seleccion

  1. 1. 1Frameworks(... ¡¡¡reutilizar, reutilizar, reutilizar!!! ...)(Arquitectura de Software para Practicantes)Universidad de los AndesDemián GutierrezNoviembre 2012
  2. 2. Diseño ArquitectónicoDiseñoArquitectónicoArquitecturadel SoftwareBibliotecas /ComponentesPatrones deDiseñoClases /FuncionesFrameworks(Marcos)EstilosArquitectónicos
  3. 3. 3¿qué relación tienen los frameworkscon los estilos arquitectónicos?¿qué relación tienen los frameworkscon los patrones de diseño?¿qué relación tiene un frameworkcon el concepto general dearquitectura de software?¿Frameworks y Arquitectura de Software?
  4. 4. ¿Frameworks y Arquitectura de Software?Bibliotecas /ComponentesPatrones deDiseñoClases /FuncionesFrameworks(Marcos)EstilosArquitectónicosVisión estructural y/o dinámica de cómodebería ser un sistema(no utilizable o ejecutabledirectamente) (“out of the box”)Visión estructural y/o dinámica de cómose pueden resolver ciertos problemascomunes de diseño(no utilizable o ejecutabledirectamente) (“out of the box”)Implementación yfuncionalidad concreta,utilizable directamentedesde el código de laaplicación implementadaAplicaciónMenorniveldeabstraccióndefinenimplementanImplementanSe diseñan usando (entre otras cosas)UtilizanDefinen laArquitectura
  5. 5. 5To framework or not to framework? (use)Si tienen que desarrollar unaaplicación WEB...(O un compilador, o unaaplicación de escritorio, o uneditor gráfico, etcétera)...algunas opciones son...
  6. 6. 6To framework or not to framework? (use)Opción 1:Desarrollar desde cero (“from scratch”),para esto es necesario:Definir la arquitectura del software a implementar(arquitectura general, estilos arquitectónicos, etcétera)Codificar, validar y probar la arquitecturaCodificar la funcionalidad particular de la aplicación(aunque esto algunas veces se mezcla con el paso anterior)Encontrar errores y problemas en la arquitectura,refinar y rehacer parte de la funcionalidad / arquitectura,hacer refactors, mejorar el código, etcétera
  7. 7. 7To framework or not to framework? (use)Opción 2:Tomar una aplicación WEB que ya esté desarrollada(no necesariamente con un framework)y adaptarla a las necesidades actuales de laaplicación requeridaComprender cómo funciona la aplicación existenteUsar la arquitectura ya definida / refinada para codificar lafuncionalidad requerida¿Es una buena aproximación?¿Que tal si añadimos una opción 3?
  8. 8. 8To framework or not to framework? (use)Opción 3:Tomar un framework(para desarrollar aplicaciones WEB)Comprender / aprender a usar el frameworkUsar la arquitectura ya definida / refinada en el framework ycodificar la funcionalidad requerida¡Aprender a vivir con las limitaciones del framework!!Resistir la tentación de desarrollar un uno propio!
  9. 9. 9To framework or not to framework? (use)Opción 1:Desarrollar desde cero (“from scratch”)Opción 2:Tomar una aplicación WEB que ya esté desarrollada(no necesariamente con un framework)y adaptarla a las necesidades actuales de la aplicaciónrequeridaOpción 3:Tomar un framework(para desarrollar aplicaciones WEB)¿Cuál de las 3?
  10. 10. 10Generalmente, si hay un buenframework que cumple conlas expectativas no hayexcusa para no utilizarlo...To framework or not to framework? (use)
  11. 11. 11To framework or not to framework?(development)¿Vale la pena desarrollar un framework?... depende ...Crear un framework es en parte más arte queciencia... (lamentablemente)Generalmente no es buena idea crear un framework,es preferible buscar uno ya existente que resuelva elproblema que se trata de abordarDesarrollar un framework puede ser un procesomuy costoso (o lento), de modo que es necesarioasegurarse que se tendrá el adecuado retorno deinversión
  12. 12. 12To framework or not to framework?(development)YAGNI: You Aint Gonna Need It
  13. 13. 13Nadie dice que no puede desarrollar un framework, dehecho, las opciones 1 y 2 (especialmente la 2) del ejemploanterior probablemente terminen en el desarrollo de unframework (a largo plazo)Simplemente se trata de hacer un cálculo adecuado de larelación costo beneficio, recuerde que en muchos casos elobjetivo principal es RESOLVER el problema del cliente NODESARROLLAR un frameworkTo framework or not to framework?(development)
  14. 14. 14¿Cómo se “aprende” a desarrollarframeworks?¿Cómo se desarrollan las habilidades necesariaspara desarrollar frameworks?1.- Diseñe / desarrolle software (fundamental)2.- Practique la programación (MUY IMPORTANTE)3.- Trabaje con problemas de diseño, cometa errores, reconozca loserrores cometidos, encuentre soluciones, etcétera4.- Use patrones de diseño5.- USE FRAMEWORKS YA EXISTENTES6.- Vea el código de frameworks ya existentes (extienda frameworks)7.- Atrévase y desarrolle pequeños frameworksque hagan pequeñas cosas
  15. 15. 15¿Cómo saber si vale al penautilizar un framework ocomponente específico?(Algunos tips para evaluarframeworks y componentes)¿Cómo elegirun framework o un componente?
  16. 16. 16Primero:Tenga bien claro el contexto yel para qué necesita elframework......y luego considere losiguiente...¿Cómo elegirun framework o un componente?¿Es adecuado el framework/componente para elcontexto/aplicación en el que se necesita utilizar?(Quizá esto es lo primero que se debería considerar)
  17. 17. 17¿Cómo elegirun framework o un componente?Asegúrese de que el framework / componente está siendomantenido activamente, revise los registros de bugs y lostiempos entre las correcciones. Revise los tiempos entrereleases, el tiempo desde que se liberó la última versión, laactividad del repositorio de código, etcétera*Verifique que el framework / componente está siendoutilizado activamente por otros desarrolladores, averigüeque opinan otros equipos de desarrollo, que problemas hanenfrentado utilizando el framework, etcétera¿Qué otros frameworks / componentes similares existen?¿Cómo se comparan entre sí frameworks / componentessimilares? ¿Qué opciones hay disponibles?*Si el último release fue hace más de un año – año y medioprobablemente no hay mucha actividad (aplican sus excepciones)
  18. 18. 18¿Cómo elegirun framework o un componente?Determine la calidad del soporte¿Hay soporte oficial (de los desarrolladores)?¿De qué tipo? ¿Pago o gratuito? ¿Precios?¿Hay una comunidad sólida alrededor del framework?¿Es posible obtener soporte de la comunidad?¿Hay foros? ¿Wiki? ¿Qué tanta actividad hay en los foros?¿Cuál es el trato y la calidad de la comunidad y de losdesarrolladores del framework? **Esto varía de proyecto en proyecto, mientras más grande sea elframework/componente mayor la comunidad y mayor lafrecuencia de los posts. Lo importante es asegurarse de que elproyecto no esta “muerto”¿Cuánto cuesta? ¿Cuál es la forma de pago? ¿El clientepuede correr con los costos? ¿El equipo de desarrollo puedecorrer con los costos (libre para desarrollo / pago para uso)?
  19. 19. 19¿Cómo elegirun framework o un componente?¿Cuál es la dificultad de aprendizaje del framework?¿Cuál es la curva de aprendizaje?¿El costo de aprende a usar el framework vale los beneficios?Sin FrameworkCon Framework¿Cuánta documentación existe? ¿Cuál es la calidad de ladocumentación? ¿Manuales? ¿Ejemplos de uso?¿Tutoriales?
  20. 20. 20¿Cómo elegirun framework o un componente?¿El framework/componente es open source / free software(son dos cosas diferentes) o es propietario? ¿Cuáles son lasventajas / desventajas de cualesquiera de las tres opcionesen el contexto de uso del framework? (Esto también vaasociado al punto de la documentación)**Esto es importante porque puede ser la diferencia entre poder“parchar” y “extender internamente” el framework en caso de sernecesario (o no, si no es al menos código abierto)
  21. 21. 21¿Cómo elegirun framework o un componente?* La calidad interna es importante si necesitamos extender omodificar el framework (zonas frías) para adaptarlo a nuevasnecesidades¿Cuál es la calidad (interna / externa) del framework?¿Cómo está organizado el equipo que lo desarrolla? ¿Cuál esel proceso de desarrollo? ¿Los releases se planifican? ¿Losplanes se cumplen? ¿Se desarrollan pruebas? ¿Hay suites depruebas? etcétera *
  22. 22. 22...y seguramente hay muchasotras variables adicionales atomar en cuenta según elcaso, de modo que mantengalos ojos bien abiertos...¿Cómo elegirun framework o un componente?
  23. 23. 23Gracias¡Gracias!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×