Showing posts with label Arquitectura. Show all posts
Showing posts with label Arquitectura. Show all posts

Wednesday, May 28, 2008

Writing High Performance SQL Code + The Architecture Journal + TechEd2008

Holas, quería dejarles tres enlaces (en realidad dos) de mucho interes.

Writing High Performance SQL Code
De momento solo puedo decirles, se ve interesante el libro, aqui una breve reseña.

Dicho sea de paso, esta disponible para descargar.
Te interesa entender los planes de ejecución?
Quizá un poco de tuning?
Recomiendan el uso de una herramienta, pero dan opcion de revisar solo el libro (buena idea, no?)

The Architecture Journal
Hace un tiempo recibía la version en linea de este magazine, de verdad, me parece muy bueno.
Hoy lo recordé pues llegó a mi mesa de trabajo, la version impresa!

Volvi a inscribirme, pues ya no me llegaba, y de paso les pedí que me envien una copía, y gratis!
Aqui la dirección para que vayan revisando.
Ahora, si les interesa suscribirse, pues aqui el enlace.
En todo caso, pueden descargarse las ediciones anteriores (incluso la actual). Esto en varios idiomas, incluso el español!.

TechEd 2008
Pues bien, la siguiente semana estaremos en el TechEd!

Espero asistir a todas las sesiones, aunque, bueno, son mas de 600 y varias a la misma hora, de todas formas, seguiré buscando la manera de dividirme en 5.
De todas formas, asistiré a las sesiones del ScottHa.

Ahora si, me voy a la casa.
Saludos[at]Gesfor-Lima

Friday, May 16, 2008

WF Designer + Performance Tool + VB Tips + Todo!

Antes de apagar la máquina (o me corten el internet pues dicen que debo dormir, lo cual no comprendo) compartiré con ustedes lo que estoy viendo en las ultimas horas, espero no quedarme corto. Lo que si es cierto, es que son días muy interesantes aqui en Gesfor (filial de Perú, mientras me soporten).

Resumiendo! (como diría el buen Joaquin)

WF Designer:
Vamos al grano, hace un tiempo me preguntaron cuando demoraría construir un diseñador similar al que venia en la versión beta de WF (si, en beta, o alfa?, la cual aun recuerdo, se caia cuando queria depurar un flujo de los mas simples y venía sin editor de criterios), Yo a finales del 2005 dije de plano que mejor se estabilice y luego ya vemos.

Pues bien, hace un tiempo que estamos redifiniendo una funcionalidad y recordé al WF, hay un equipo que lo usa bastante, pero me vino a la mente la pregunta del 2006, aprovechar el diseñador, hasta que punto? Cuánto se tiene que investigar?
Lo que si podemos responder incluso publicar (creo) es que msdn hace un buen tiempo (años) un ejemplo del uso del diseñador de flujos que viene con el VS, como para no dejar de usarlo, no?
Ahora, para que lo estamos usando? es obvio pero no comentable, al menos por el momento.
Por mi parte, es una manera de tener un segundo round con el WF, debido a que cambiamos de proyecto no pude seguir en R&D / Arquitectura sobre Flujos (ya, no seas quejón que ahora tampoco estas viendo WF)
Por si les interesa, nunca está de mas comentar que siguen los HOLs de WF, como para revisarlos no nuevo, no?

Performance Tool:
Hace un tiempo que vengo preparando una presentacion sobre Code Analysis en VS, haciendo referencia claro, a herramientas externas. Tal como le comentaba al buen David, estaba buscando una que habia visto en un MSDN Magazine (en las propagandas =D) pero como no la tenía a la mano, no recordaba el nombre.
Aqui un enlace a la pagina del soma, contandonos un poco sobre las nuevas features de CA en VS2008.

Lo gracioso es que no estabamos hablando directamente de una herramienta, pero como la conversa sobre alternativas al uso de objetos de datos vino el enlace a un post de Carlos Walzer que hace unas comparativas alucinantes, les dejo el post, muy bueno, y el nombre de la herramienta, pues dentro del enlace.
Por cierto, no dejen de leer el post, es una seguidilla de tres artículos, los cuales no termino de leer, pero ya de por si, con la herramienta, he quedado ciego.

VB Tips:
En The Visual Basic Team encontré un post muy bueno, en si es un resumen y recursos de una presentación sobre Tips en VB2008, en la cual, como siempre, bajo la comparativa sobre C#, como que quedamos algo mal parados.
Lo cual por cierto, debo afirmar, pues ayer en una renión agregué una librería VB2008, y me sentí como cuando me dieron mi primer VS.net (dios!! no recuerdo el año, solo que demoraba milenios instalarlo en un windows nt). El entorno es muy amigable, me dan ganas de escribir unas librerías en VB, como para no perder la costumbre de su IDE reforzado (es injusto!, si todo fuera igual en el IDE de VC#, tendría mas adeptos de los que siempre va ganando).
Adjunto el enlace de la presentación, la cual es muy interesante, como les dije lineas arriba, dan ganas de darse una vueltita por VB2008 con refactor reforzado (de por si, ya lo estoy haciendo)

Todo!:
Ya para terminar (pues me acaban de decir que me botarán de la casa si no duermo), algunas cosas sueltas
- De que conversaba con David? De muchas cosas, pasando por nuestros días universitarios hasta la lucha de siempre (no, no me refiero al Real-Barcelona), prácticas en Acceso a Datos, una prueba es la busqueda que puse en google. Además del enlace que me pasó via msn, uno de Dino Espósito y otro de Scott Mitchell. Altamente recomendados.
- Sobre Blogs C#: He notado que los blogs listados en la seccion C# de msdn, no están muy actualizado que digamos, que diferencia con los de VB, no?. Qué pretenden!!!???
- Revisión de Código/Diseños, seguimos avanzando: Pues si, nunca dejamos de aprender, hace un par de días encontré un post muy bueno, que usaba ndepend para revisar los cambios en las librerias que vienen con el netFw35 sp1 (aun en Beta), lo curioso es que hace tiempo lo leí en el blog de Scott Hanselman (idolo!), pero Patrick Smacchia me convenció, les recomiendo el blog (en realidad ambos), mas aun la herramienta mencionada, es muy buena, sobre todo si les interesa saber si su diseño tiene sobrantes o sufre, como dicen en algunos lugares, de erosiones.
- Tres herramientas Code Coverage, que deberiamos revisar: No los aburro mas con eso, las listaré nada mas (ojo, el orden es indiferente, aun estan en evaluación):
- NCover
- ReSharper
- OxyProject
Pues como los encontré? google.

- La frase que nunca debemos olvidar:
"Parte del hecho de mantenerse al día significa pasar una hora al día desarrollando prototipos; probando cosas, bien tu propio producto u otras tecnologías; obtener una visión de las piezas de las que se dispone y cómo usarlas."
Mas información en este blog.

Bien, me despido
Saludos[at]Cama

Monday, April 28, 2008

Manejo de Excepciones? (No lo digo yo)

Pues bien, habiendo leido Exception Management Architecture Guide, solo me queda parafrasear lo siguiente (esto, de las páginas 8-9):

"You should only catch exceptions when you need to specifically perform any of the
following actions:

  • Gather information for logging
  • Add any relevant information to the exception
  • Execute cleanup code
  • Attempt to recover

If a particular method does not need to perform any of these actions, it should not
catch the exception..."

Ademas de...

"In other words, you should not use exceptions as a means to provide
your intended functionality."

y...

"Throwing exceptions is more expensive than simply returning a result to a caller. Therefore they should not be used to control the normal flow of execution through your code. In addition, excessive use of exceptions can create unreadable and unmanageable code."

En resumidas cuentas es decir, in spanish:
Usar los bloques de administracion de excepciones resultan costosos, ya que no solo incurren en aspectos de performance, el codigo pierde legilibilidad, dificultando su mantenimiento.
Se recomienda el uso de dichos bloques cuando se requiere realizar procesamientos adicicionales (rollbacks, limpieza de memoría, verificacion de estados, notificaciones, etc.)


De momento veo que actué como traductor, pero valió la pena (creo).

Saludos[at]Casa

Saturday, April 26, 2008

Manejo de Excepciones, cómo?

Han sido varias las conversaciones/consultas en las que he escuchado preguntas del tipo "como debo manejar la excepción", llegan tambien los ejemplos y contraejemplos y las respectivas dudas...
Pues bien, decidi hacer una pequeña encuesta al respecto o en todo caso una breve recopilación de respuestas luego de preguntar "y tu exactamente como lo haces, como lo harías o que recomendarías", aqui algunas de los datos que pude obtener:
- En la capa de negocios
- En la capa de servicios
- En la cada de datos (no la DAL, me refiero a la que llama a la Data Access Library)
- Parte en los stored procedures parte en la capa de negocios
- No uso (???)
- En todas las capas haciendo un throw exception desde la mas interna hacia arriba.

Luego de haber tomado nota, pregunté el "por qué?" de sus respuestas. Esto no con animo de reclamar nada, solo quería conocer una explicacion un poco mas técnica de la metodología en mención.

La verdad, es que no habia respuesta convincente.
Por lo poco que se o que recien he podido averiguar (gracias San Google!), lanzar excepciones implica costos de performance en la aplicación, es decir, que si lo ponemos en mas de una capa... adivina que? tu código cae en riesgo de ser mas lento(asi que, no abusen!).

Por mi parte seguiré colectando información.
De momento dos enlaces muy buenos (al menos para mi)

Good Exception Management Rules of Thumb
Best Practices of Exception Management

Un documento que muchos deberianmos leer... Exception Management Architecture Guide

Me parece o escuché Exception Management Application Block?

Saludos[at]Lima

Monday, December 17, 2007

Desacoplar una aplicación monolítica? Microsoft Volta

Antes de terminar la semana me encontré con Microsoft Volta (Es que, de vez en cuando es bueno ir por Live Labs), el cual es un concepto nuevo que traen nuestros amigos de Redmon, que nos ayuda a crear aplicaciones rapidamente, sin tener que preocuparnos por patrones de diseño, buenas prácticas o como quieran llamarlo, pues "no desacoples tu aplicación, Volta lo hará por ti", si... ya sé que suena a comercial de televisión, pero de acuerdo a lo que indican, la idea es que Volta desagregue la aplicación, genere las llamadas Ajax, y dicho sea de paso, lo haga de la mejor manera (mencioné patrones?).

En fin, la idea es buena, tienen un quickstart que muestra paso a paso como se genera la aplicación multitier, pero... no lo sé, no estoy muy de acuerdo a que se deje que la herramienta haga mas y mas trabajo por nosotros, al menos no ese. De cierto modo permite que no se sigan muy solidamente aspectos básicos de diseño y programación, lo cual depende de que tan ordenados seamos. Si es así, la herramienta nos puede servir.

Ojo que aun no estamos hablando de la calidad del código generado, pero vamos, que es está en beta! Un momento, donde escuché eso?

Aqui unos enlaces en donde se muestra un poco mas de volta:
- http://blogs.msdn.com/dragoman/archive/2007/12/07/tier-split-refactoring-winforms-applications-with-volta.aspx
- http://tiredblogger.wordpress.com/2007/12/12/microsoft-live-labs-volta-framework/

Les dejo la dirección de descarga.

Olvidé decirles, se requiere VS2008

Bueno, comenzó la semana.
Saludos,
Jersson

Tuesday, November 06, 2007

SCRUM y Jerga del Internet

SRUM no es un acrónimo, es el nombre de un juego similar al rugby, la mejor analogía que se le puede dar es con un juego en equipo realizado por miniequipos, donde cada uno de estos cumple funciones específicas y buscan cumplir un objetivo en particular (como meter un Gol!)

BTW si es un acrónimo, By The Way, también el nombre de una canción del 2003 cantada por Anthony Kiedis y sus amigos (Red Hot).
Olvide decir, que el significado que a veces le dan es "por cierto..." aunque siempre he creido que tiene otras acepciones.
BTW, Aqui una lista de otros acrónimos usados.

Monday, November 05, 2007

SCRUM y Desarrollo de Software

Qué es SCRUM?
Pues no puedo mentirles, estoy viendo que es una metodología que puede amoldarse facilmente al Desarrollo Agil, aquí parafraseo a wikipedia con su "menos burocracia"
Por lo poco que estoy entendiendo puedo agregar que uno de los conceptos claves es el trabajo en equipo y el entendimiento de que se deben tener los objetivos claros.

Por el momento no quiero ahondar mas, pero Jorge Serrano escribió un articulo titulado "Explicando SCRUM a mi abuela", el cual, sin animo de buscar nietos, comenzaré a leer en unas horas, ni bien despierte.
Algo que tambien deberiamos leer para tener un concepto claro o al menos amigable de SCRUM es el siguiente enlace, que viene gracias a Diario de la Programación, blog que se ve muuy bueno.

Por cierto, hay un libro de SCRUM que puede conseguirse en el siguiente enlace.
Lo que puedo decir al respecto es que los primeros capitulos se ven muy buenos, mas aun si tratan de Gestión de Proyectos, respondiendo dudas cómo:
- Qué es un proyecto?
- Gestión de proyectos (es necesaria?)

En fin, espero leer un poco y comentarle mas al respecto.


BTW, No olvidar, esto es independiente de la tecnología, nunca habrá dependencia con el lenguaje, sino estariamos en un graaan problema.