jun 14

Consejos para mejorar el desarrollo en la nube

Posted in programacion, tutores

Antes de iniciar este artículo, quiero agradecer enormemente a Filipe sus aportaciones al foro, que sin duda, nunca pasan desapercibidas, como la de este hilo del foro:

http://velneo.es/foros/topic/lentitud-en-aplicaciones-cloud/

Asi pues, como se indica en el propio hilo, he pensado que hacer un recopilatorio de todas las buenas ideas que mejoran la experiencia de programación en la nube.

Y porque en la nube y no en local, si para Velneo V7, es igual, puede trabajar exactamente igual en local que en la nube.

Pero en realidad, ¡NO!, no es lo mismo:

  • Si la aplicacion la desarrollamos en local, y funciona bien. Es posible que cuando la instalemos en la nube, sea un petardo y vaya como el culo. Lo siento por la expresión “vaya como el culo” pero debes reconocer que es descriptiva del sentimiento que pretendo transmitir.
  • Sin embargo, si la aplicación la desarrollamos en la nube y funciona bien. Entonces, no de bemos preocuparnos, porque cuando la ejecutemos en local, funcionara “que te cagas” :) . Tambien siento esta expresión, pero a que también te has emocionado.

Partiendo de este, como primer consejo para empezar a desarrollar con Velneo V7 y conseguir un resultado decente, aqui dejo algunos consejos:

  1. Evita las funciones, si puedes usar un proceso lanzado desde un manejador de objetos, usa el manejador (También te permite enviar parámetros).
  2. Las tablas en memória son lentas comparadas con v6 (evitar siempre que se pueda). Como ejemplo te digo que en una de las pruebas que hice, en el on-init de un formulario llamava a una función, entre devolver un contenido estático y devolver un dato de una tabla en memória la diferencia es abismal.
  3. En la mayoria de los casos ganamos velocidad si las búsquedas y/o cargar listas las lanzamos con el manejador de objetos en el servidor (Hay que tener cuidado, para no saturar el servidor con demasiadas tareas, si es solo consulta en principio no hay problema).
  4. Evitar al máximo poner en las condiciones de activo y visibilidad de objectos, funciones. Estas condiciones se evaluan varias veces al iniciar el formulario, y siempre que se ejecuta un evento del formulario o que este se refresca.
  5. Evitar siempre que posible el uso de variables globales. Con la funcionalidad del manejador de objectos para pasar parametros a búsquedas, procesos, etc, ganamos mucha velocidad y no necesitamos para nada de las variables globales. Normalmente solo necesito de dos o tres variables globales por aplicación (EJ: Id de usuario logeado, etc.)
  6. En las rejillas por defecto no listar datos, solo cuando se pincha en buscar (personalmente a mi no me gusta demasiado, parece que no hay datos, pero siempre podremos cortar la lista para que solo nos devuelve un numero x de resultados, así no quedamos con la sensación de que no existen datos). Esto incrementa mucho la velocidad de la aplicación. Ten en cuenta que si abres un formularios con sub-formularios y cada sub-formulario tiene su rejilla, al abrir el formulario hay que cargar todos las listas de todos los subformularios. (Si no está visible la rejilla, los datos los siguen cargando)
  7. Limitar el uso de CSS. El uso excesivo de CSS en las aplicaciones, hacen que estas sean más lentas, principalmente si estos datos los recoje de una tabla o usa información de una tabla, dá igual que sea en memória o en disco.
  8. Evitar guardar en las tablas imagenes. Yo opté por guardar las imagenes externamente, y genero de forma automática una miniatura de la imagen de muy reducida dimensión solo para poder presentarlas en las rejillas, en los formularios las visualizo usando html.
  9. Cuidado con el tamaño de las imagenes que creamos de manera estática en el vdeveloper, intentar al maximo optimizar su tamaño.

Ahora que ya hemos descrito cada uno de ellos, y tenemos la teoría, nos queda la sensación de que nos falta algo. ¿Cómo poner en práctica estos consejos?

  • Para el punto nº 6, tenemos otro ejemplo perfecto y origen de una buena técnica de progamación en el blog de nuestro amigo Nacho: Optimizando rejillas

Ademas de todos estos consejos de Filipe, voy a recordar algunos consejos que muchos conocemos pero que son importantes para todos los que llegan a V7 .

  1. Si puedes hacerlo en el proyecto de datos, y concretamente en la estructura de tablas, hazlo. Asi es, cualquier cosa que puedas hacer en la estructura de la base de datos, siempre mejora el rendimiento y ahorra muchas horas de programación, por ejemplo: contenidos iniciales en los campos, actualizaciones, eventos de tabla.
  2. Parece muy obvio, pero a veces olvidamos que los “Filtros” están para no usarlos. Evitalos siempre que puedas, y cuando no tengas mas remedio que usarlos, evitalos también.
  3. Usa siempre el “Alternador de listas” siempre que sea posible, ya que tiene muchas ventajas y pocos inconvenientes, que también los tiene. Aqui tienes más información sobre el Alternador.
  4. Ahora tenemos “Constantes”, usalas porque permiten una programación limpia y abstracta. Aqui explico algunas de mis razones: ¡Ser constante es bueno!
  5. vDiseño es una buena base para adoptar en las aplicaciones, principalmente por una razón: es mas fácil de entender el código cuando trabajas con aplicaciones de otros desarrolladores.
  6. Siguiendo un consejo de un amigo, “la simplicidad, es la complejidad absoluta“. Hazle caso, la vida ya es bastante complicada, no la compliques más todavia. Las cosas sencillas funcionan mejor, y es cierto, son mas dificiles de programar, pero el resultado es optimo para el usuario.
  7. Un consejo mio: “pierde unas horas o dias en analizar la aplicación y ahorrarás dias o meses en soporte y correción de errores”. Un buen análisis es tan importante o más, que la estética de la interfaz. La interfaz vende, pero es el chasis de nuestra aplicación quien soportará todos los golpes.
  8. No tengas miedo al fracaso. Para estar seguro de habler logrado un éxito, debes haber fracasado en varias ocasiones. Imagina que en tu primer intento, logras que todo funcione correctamente, si te das por satisfecho, nunca podrás estar seguro de haber conseguido el resultado ideal. Seguramente ese resultado podría mejorarse.
  9. QML y vJavaScript son la caña, pero no son la solución a todos los problemas. No abuses de estas herramientas, porque son para lo que son, para sacarnos de los apuros, no para convertirlas en el pan nuestro de cada dia.
  10. Si no tienes experiencia con una herramienta de desarrollo, la solución no esta en correr para adquirirla. Tomalo con calma, y externaliza tus proyectos mientras adquieres dicha experiencia. Despues de haber colaborado con muchos desarrolladores que usan Velneo para sus desarrollos, sólo espero que hayan quedado satisfechos con el trabajo realizado.

Y desde aqui, tambien quiero decir que estoy totalmente de acuerdo con Filipe, Roberto Blasco, Adelo Herrero y otros en algunas cuestiones. Por mas que nos empeñemos, Velneo V7 no es la solución para todo, y si probamos a unir V7 con otras herramientas, la potencia que adquirimos en los resultados es inmejorable.

  • Para la web, nada como Velneo V7 + vModApache + PHP
  • Para mobilidad, Velneo V7 + Android / iOS

Aunque algunas veces, también hay que reinventar la rueda 😉

P.D. Se agradece cualquier aportación que pueda ayudarnos a mejorar, estas invitado a compartir tus experiencias.

Create PDF    Enviar artculo en formato PDF   
comments: 3 »