Resumen del Domingo 23 de Abril - Tarde
PorAmby
La siguiente sesión, consistió en un panel sobre las Mejores técnicas
en Depuración (Best practices for Debugging). La charla estuvo
dirigida por Nancy Folsom. Como dije ayer, Nancy escribió un libro "Debugging
Visual FoxPro Applications", es una reconocida autoridad en el tema
y es la persona más indicada para aconsejarnos algunas técnicas a tener en
cuenta. La primera sugerencia, lógicamente, fue comprar y leer
cuidadosamente el libro :-) Yo también lo recomiendo, es un libro no muy
difícil de manipular; pero su contenido no tiene desperdicio. Lo compré
hace dos años y lo he revisado muchas veces.
Como algunas de las mejores prácticas se mencionaron:
- El uso de DEBUGOUT en lugar de Wait window (recordar que no lo
recomiendan)
- Tener una función APPLOG que se encargue de preparar el log
- Emplear LINENO() y _CLIPTEXT en la ventana Examinar del depurador
Whil Hentzen comentó que el tiene preparado una especie de andamio de
pruebas a base de instrucciones tipo: DEBUGOUT "Expresión", resultado.
Tamar comentó algunas opciones del menú, a veces es curioso como algo
que para unos es obvio y trillado para otros es la novedad del día. El uso
de Reparar es muy discutido, a algunas personas le va bien, a otras mal, es
complicado definirlo como buena práctica; pero es una posibilidad.
Por su parte Marcia Akins, recomienda ver el problema a depurar, si se
trata de trabajo con sentencias SQL pues no será el depurador, sino el
Analizador de Consultas (ya sea del Panel de Datos en VFP o del SQL
Server).
Tamar Grannor tiene un artículo sobre este tema, lo voy a buscar a ver
si está disponible en la web. Tamar comenta que su recomendación
fundamental es que recorramos cada una de las opciones del menú del
depurador y cada uno de los posibles parámetros que hay en la ventana
Opciones - Depurador, para encontrar de esta forma todo lo que se puede
aprovechar del depurador que es una gran herramienta dentro de otra
herramienta.
Y hubo más ... que les contaré con más calma.
La última sesión de la tarde corresponde a Doug Hennig quien se
refirió a las Mejores prácticas para el desarrollo vertical de
aplicaciones (Best practices for Vertical Aplication Development).
Las primeras palabras de Doug han sido de agradecimiento a Rick Shummer,
quien ha cedido su PC, ya que la de Doug ha fallado en el último momento.
!! Gracias Rick Shummer !!
Esta sesión de Doug Hennig trata de comentar sus experiencias como autor
y dueño de una aplicación
http://www.stonefield.com que puede ser el caso de otras aplicaciones
como las de Rick Stralh que se encuentran en
http://www.west-wind.com/webconnection o Visual MaxFrame Professional (http://www.visionpace.com/VMPSite/default.asp).
Es decir no se trata de aplicaciones dedicadas a usuarios finales, se trata
de aplicaciones dedicadas a creadores de aplicaciones. Aunque este
procedimiento se puede aplicar a otro tipo de aplicaciones, si consideramos
que los desarrolladores pueden ser los usuarios finales del Stonefield
Database Toolkit.
En fin, que existen ventajas y desventajas en el desarrollo de estas
aplicaciones: no tiene barreras geográficas, su éxito no está vinculado en
alguna medida con el éxito de un sector particular de una ciudad, región o
país particular, entre otras.
Las desventajas pueden ser: al haber solicitud ni contrato previo, el
dinero se recibe sólo al final, en caso de que tenga éxito la aplicación,
el riesgo es grande, es imprescindible dedicar tiempo y esfuerzos a la
divulgación y comercialización del producto. Hay menos interacción con el
cliente, por lo que si se produce un error, puede que no te llegues a
enterar a cuántas personas les puede estar ocurriendo,. Hay que ser
especialmente cuidadoso en la terminología a emplear, preparar la
aplicación con multilenguaje sin asumir que un idioma es el único e
imprescindible.
Se realizó un interesante debate sobre temas de instalación y acceso de
usuarios a estas aplicaciones, ya que ele tema de seguridad es muy
importante y el peligro de piratería es elevado. Se trata de que por una
parte cualquier persona, en cualquier lugar del mundo tenga acceso a
comprar una o n licencias del productos; pero a la vez protegerse de varias
formas contra la piratería. Para esto pueden haber mecanismos de control
durante la instalación que dejen grabados datos en el registro de Windows,
o que tomen datos del registro y lo guarden en otro sitio, que creen
determinados ficheros contra los que se validará luego, en fin, muchas
variantes. luego en el momento del acceso, también se realizan un grupo de
validaciones relativas al ID de usuario actual, número del PC, cantidad de
licencias, en fin, un grupo de factores. Se puso en evidencia que en la
variedad está el gusto, porque muchos de los presentes que trabajan ese
tipo de aplicaciones contó sus experiencias y resultaron útiles para cada
uno; pero difícilmente se repetían.
Doug Hennig mostró parte del código donde realiza estos procesos, todo
en Visual FoxPro. El truco está en el diseño de los procesos, el código es
sólo la implementación de la idea.
Aconsejó un artículo de Bárbara Peisch: Are You Registered?.
Este artículo se puede encontrar en FoxTalk (http://www.pinpub.com/ME2/Audiences/Default.asp)
en Enero 2006. Ese artículo define algunos de los elementos a tener en
cuenta y algunos de los posibles mecanismos a aplicar.
Tuvimos un pequeño receso, el horario se ha cambiado y andamos un pocos
despistados, así que hubo una pausa para explicar el plan para el resto del
día, en ese momento y para complacer una petición que le hice a Whil
Hentzen, los ponentes se hicieron la foto de familia del evento. ¡ gracias
chicos !
Descansamos sólo un poquito, ... sin café ... sólo lo mínimo para
estirar un poco las piernas y de nuevo al trabajo !!
Seguimos con Doug Hennig que se dedica un poco a hablar del tratamiento
de errores en este tipo de aplicaciones. En realidad no difiere mucho de lo
que hacemos en las aplicaciones para usuarios específicos. Mostró su
herramienta para el control de errores, insistiendo no sólo en el tema de
la información que se debe recibir sobre el error y en la posibilidad de
recuperarse de un error. Doug Hennig tiene un tratamiento parecido al de
Rick Shummer que vimos hace dos días, sólo que intenta ofrecer siempre que
se pueda la opción Continuar, para que la aplicación intente recuperarse de
un error, reintentar y seguir. Pero ... hay un problema porque hay algunos
momentos de la aplicación donde no se puede hacer esto, ejemplo, dentro de
un TRY / CATCH. Entonces, si el usuario selecciona Continuar, no funciona
dentro del TRY/CATCH y en realidad abandona, no continúa.
Dos posibles soluciones para este caso:
- Una variable o propiedad que defina que estoy dentro de un TRY/CATCH,
en cuyo caso se inhabilita el comando Continuar.
- Como tengo todas las condiciones del entorno en el momento justo
antes de que se produjera el error, reproducirlo y volver a llamar la
aplicación hasta llegar a ese punto. Más complicado, más riesgoso.
Doug Hennig ha escrito mucho sobre este tema, con más tiempo prepararé
una lista con artículos relacionados. Lo más reciente ha sido su entrada de
blog "Error Handler Gets Harder"
http://doughennig.blogspot.com/2006/04/error-handler-gets-harder.html.
Nos fuimos a cenar a un restaurante no muy lejos del hotel, donde tienen
el segundo bar más largo de EEUU WOW !!! Ya les mostraré las fotos. La cena
en compañía de Hugo, su jefe y el señor William Patrick, fue muy agradable,
teníamos una mesa internacional. Hugo es argentino, su jefe es inglés,
William es estadounidense y yo cubana. Muy agradable. Muchas gracias a
todos.
De regreso al hotel, a ver si alguien adivina... eso !!!! El bar, el
sitio de reunión después de las sesiones, donde, por cierto la bebida es lo
de menos no sean mal pensados :-) la compañía, la charla... muchas veces de
Fox, claro ... y otras muchas veces de las personas y las vidas que hay
detrás de cada foxero allí presente.
Luego de compartir un rato, me retiré para venir a contarles un poco de
mi día de hoy. Temo dejarme ideas importante y por eso he preferido
descansar menos y priorizar la inmediatez. De regreso a casa redondearé
estas ideas, revisaré con más calma el material y les comentaré todo lo
amplio que el tiempo me lo permita.
Un gran día, como siempre sucede en este tipo de eventos, la cantidad de
información recibida desborda la capacidad de retención. Nos quedamos con
la idea y se asume que regresaremos a este material una y otra vez para
llegar a aprovecharlo al máximo.
Saludos,
Ana |