lunes, enero 28, 2008

Charlas en el 2008 que me gustaría dar o escuchar

Como todos los años, junto a la gente técnica y copada de IBM planificamos una serie de charlar en las cuales intercambiamos conocimiento. Lo venimos haciendo desde el 2005 y la verdad que son de muy buena calidad, lo único malo es que desde que las hacemos vía telefónica, se perdió bastante el debate, cosa que era lo más importante cuando empezamos. Con un objetivo de listar y que me ayuden sobre que temas sería importante no olvidar este año:
  • Creo que Grails debería ser un tema a escuchar, más allá de Groovy, creo que ver como el mundo Java desde el lado de scripting adaptó RoR sería algo interesante de ver.
  • Groovy sigue siendo algo que no hay que perder de viste, sobre todo para incorporar en aplicaciones Java, creo que usarlo como medio de contenido para extender o modificar la aplicacion en runtime puede ser muy interesante. Hoy generalmente usamos XML, pero creo que Groovy podría ser tambien interesante.
  • Ruby on Rail, todavía me debo armar una charla sobre este framework junto a Damian Garcia, no tanto en la gilada del scaffolding (CRUDs) , sinó en los principios y ventajas que tiene construido sobre un gran lenguaje.
  • Creo que Continuation seguirá siendo un area en la cual tenemos que seguir investigando y aprendiendo para la correcta implementación.
  • Uno de los temas que hay que ir teniendo en cuenta es la Performance en las aplicaciones RIA con CSS y JavaScript, sobre todo con los ítems de usabilidad y cantidad de pedidos ajax que se están haciendo por pantalla. Creo que muy pocos lo estan teniendo en cuenta y es un tema que hay que ver de manera urgente.
  • Creo que SOA va a seguir siendo un tema interesante de charlar, sobre todo temas de armado de equipos, prácticas de desarrollo (construcción), integración continua en desarrollos de integración, por que no TDD para BPM, todo ese tipo de cosas que están muy maduras en aplicaciones, pero esta vez para integración.
  • Yo calculo que voy a dar alguna otra charla de TDD un poco más avanzada, y quizá ver la manera de como enganchar el TDD con los frameworks de desarrollo, la idea es como ver de facilitar el TDD con un framework.
  • Por que no algo de JavaScript, me parece un lenguaje increíble, y quiero que se use correctamente, ya por el 2000 programaba en JavaScript y sentía que lo hacia bien y sabia, pero ahora me doy cuenta la manera en la cual lo usaba era patética, y lo que me molesta que hoy exista gente que primero, lo menosprecia y por otro lado lo use de la manera que yo lo usaba en el 2000. Me gustaría ver temas de prototipado, clousures, performance, entornos de desarrollo, interacción con el DOM (cualquiera sea) y tdd.
  • Otra charla que me gustaría dar es sobre los AntiPatters de los patrones de diseño... quiero erradicar el uso del Singleton indiscriminado, no lo soporto más... quiero que la gente antes de implementar un patron de diseño piense por que y no que lo use por el solo hecho de que soluciona el problema, si no que lo use por que es la solución más simple de todas. También quiero que se priorice la orientación a objetos por sobre el uso de patrones de diseño, muchas veces los patterns te obligan a separar el comportamiento del estado y eso si que está muy mal, en algunos casos, muchas veces cometí este error y creo que pudo hablar de ello.
  • Me gustaría escuchar una charla sobre los 6 principios de Robert C. Martins de la programación y diseño orientado a objetos. Introductorio sobre Patterns y Principios - http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf
  • Un colega ya está preparando para presentar un resumen del libro de Pragmatic Programmer, biblia del programador cuando entra a IBM, o al menos a mi area.
  • Creo que algo de Earlang me gustaría escuchar, es un lenguaje que viene sonando y lo poco que pude ver es interesante sobre todo por el uso del paradigma funcional.
  • Y por que no DSLs... o en Ruby o LISP
Esto es lo que se me ocurre por ahora, por favor tienen algo para aconsejar, se los agradezco...

jueves, enero 24, 2008

Tipos de Arquitecturas de IT

Uno de las primeras cosas que hay que entender sobre la Arquitectura es que existen diferentes tipos en el ámbito de IT, con lo cual es muy importante tener claro que rama o especialización de la arquitectura uno quiere desarrollarse y obviamente el alcance de cada una. Esta es la clasificación que más me gusta y es la damos en APIT:
Enterprise Architecture (EA) : Es la arquitectura toma las decisiones necesarias para que Organizació de IT de la compañia esté alineada y permita cumplir con visión/misión de la organización en cuestiones de negocio , definiendo guías y políticas para que el conjuntos componentes de IT (redes, hardware, software, aplicaciones, etc) crezca de manera ordenada siguiendo un objetivo bien definido.
System architecture: Relaciona los requerimientos y el mundo externo con las estructuras del sistema, incluyendo el hardware y el software. Vendría a ser la Infraestructura.
Software architecture (o Application Architecture): Está relacionada con una aplicación en particular, o sea con el desarrollo de un software en particular, son las decisiones que se toman pero acotadas a un proyecto o aplicación en particular y no cross a la organización como la EA. Esta es el tipo de Arquitectura en la que trabajo y está focalizada la materia.
Integration Architecture: Está relacionada con las decisiones tomadas desde el punto de vista de la integración de las diferentes aplicaciones y los procesos de negocio asociados. Como para dar un mejor entendimiento, temas como SOA o EAI, estarían en este tipo de Arquitecturas.

Existen otro tipo de Arquitecturas pero en mi opinión ya con la clasificación planteada alcanza, como por ejemplo, Data Architect, Business Architect, etc.

Alguno creo que se puede mejorar esa clasificación?