jueves, 31 de mayo de 2018

Frameworks: Componentes vs. Diseño

Frameworks

Los frameworks son solo uno de muchas técnicas de reutilización. 

Componentes vs. Diseño

La tecnología de reutilización ideal provee componentes que pueden ser fácilmente conectados para hacer un nuevo sistema. El desarrollador no tiene que conocer como el componente esta implementado, y la especificación del componente tiene que ser fácil de entender. El sistema resultante seria eficiente y fácil de mantener. Una analogía sería un sistema eléctrico; puedes comprar una plancha en un comercio y una TV en otro, y ambos trabajaran como cualquier electrodomestico de tu casa u oficina. La mayoría de la gente no conoce la ley de Ohm, sin embargo no tuvo ningún problema al conectar la plancha al sistema eléctrico. Desafortunadamente, el software no es casi tan adaptable como el sistema eléctrico.

Cuando diseñamos un componente de software, siempre tendremos que intercambiar simplicidad por control. Un componente que hace algo bien es fácil de usar, pero puede ser usado en menos casos. Un componente con muchos parámetros y opciones, puede ser usado mas frecuentemente, pero sera mas difícil de comprender para usarse. El rango de técnicas de rehuso va desde lo simple e inflexible a lo complejo y poderoso. Aquellos que dejan al desarrollador hacer la elección son usualmente mas complicadas y requieren mas tiempo de entrenamiento para la parte de desarrollo.

Un componente representa rehuso de código. Un libro representa rehuso de diseño. El rehuso experto frecuentemente afirman que el rehuso del diseño es mas importante que el rehuso de código, sobre todo porque este puede estar aplicado en mas contextos y es mas común. También, esto es aplicado antes que en el proceso de desarrollo, y así que pueden tener un gran impacto en el proyecto. Un desarrollador experto es en parte debido a conocer diseños que pueden ser personalizados para colocar un nuevo problema. Pero la mayoría del rehuso de diseño es informal. Uno de los principales problemas con información del diseño de rehuso es capturar y expresar este.

No hay notación de diseño estándar y tampoco catálogos de diseños para rehuso. Una compañía simple puede normalizar, y hacer alguno.

Que es un frameworks?

Una de las ideas que desmiente los frameworks es aquella de la clase abstracta. Una clase abstracta es una clase sin instancias, como esta es usada solo como una superclase. Una clase abstracta usualmente tiene como mínimo una operación implementación a estas subclases. Desde entonces una clase abstracta no tiene instancias, esta es usada como una plantilla para crear objetos. Los frameworks usan ellas como diseño de sus componentes.

Una manera que una clase abstracta actúa como un diseño que especifica la interfaz de estas subclases. Cuando un cliente indica que quiere usar una instancia de una clase abstracta, esta siempre significa una instancia de una clase que reune la interfaz de una clase abstracta.

Una clase abstracta usualmente provee parte de la implementación de estas subclases, también.

Por ejemplo, un template methods define el esqueleto de un algoritmo en una clase abstracta, diferenciando alguno de los pasos a las subclases. Cada paso esta definido con un método separado que puede ser redefinido por una subclase, así una subclase puede redefinir pasos individuales del algoritmo sin cambiar su estructura. La clase abstracta tampoco puede dejar pasos individuales sin implementar (i.e. ellos son métodos abstractos) o pueden proveer una implementación por defecto. (i.e. ellos son métodos hook). Una clase concreta debe implementar todos los métodos abstractos de su clase abstracta y debe implementar cualquiera de los métodos hook. También seria capaz para usar todos los métodos inherentes desde su superclase abstracta.

Un framework es usualmente representado como un conjunto de clases abstractas y la manera en que esas instancias interactúan. Este es un modelo colaborativo o de interacción de patrones de objetos tal como esta en la clase de clases en el diseño. Los frameworks también rehusan implementación, pero es menos importante que el rehuso de interfaces interna de un sistema y la manera que sus funciones son divididas entre sus propios componentes. Este diseño de alto nivel es el principal contenido intelectual de software, y los frameworks son una manera para rehusar este.

domingo, 20 de mayo de 2018

Bienvenidos!!!

En este espacio pretendo dar a conocer novedades acerca de nuevas tecnologías, relacionadas con robótica y desarrollo de aplicaciones tanto web como mobile. A medida que vaya haciendo pruebas e investigaciones sobre tecnologías emergentes, estaré publicando todo su desarrollo.Los invito a seguirme y a dejarme comentarios para poder generar un debate e intercambiar experiencias.