Last.fm

Shoutbox

Llámame

  • *porque el derecho de autor y la cultura son asuntos de todos, no de algunos
  • Visita El Show de Juanelo

Crónicas de un informático

Clásico proyecto de sistemasLlevo un buen tiempo sin actualizar el Blog, y no ha sido porque lo quiera dejar botado, sino porque actualmente me cuesta bastante hacerme el tiempo para pensar en algo que sea novedoso y ustedes quieran leer. Sé que tengo todo tipo de público, y a veces la cantidad de intereses que uno pueda abarcar en un tema es un factor determinante al momento de decidirme sobre qué publicar. Les dejaré con un análisis sobre las buenas prácticas informáticas que se deben llevar a cabo en los proyectos de desarrollo de plataformas, prácticas que no dejan de ser un punto muy importante a tener en cuenta en todo proyecto de este tipo, pero que generalmente no se les da la importancia que merecen, conllevando a desastres o resultados inesperados.

Uno de los motivos por los que estoy desarrollando totalmente por mi cuenta el software que maneja este Blog es justamente para poder mantenerme en constante práctica en temas relacionados con la simplificación y seguridad en los sistemas de información. A estas alturas he participado en equipos de desarrollo para varias plataformas Web, y si bien es cierto que cada nuevo trabajo forma en sí mismo parte de un desafío y es una instancia para madurar los conocimientos que tengo sobre las tecnologías que manejo, hay veces que se trabaja en contra del tiempo, lo cual dificulta la posibilidad de experimentar o practicar nuevos métodos para resolver los problemas. Y ahí es donde el hecho de contar con un proyecto anexo, sin fines de lucro, y totalmente bajo mi control y responsabilidad como éste, me da las libertades necesarias para profundizar, poner a prueba e ir mejorando día a día mi base de conocimientos.

Actualmente me encuentro participando con un viejo amigo en el equipo de desarrollo para un par de proyectos que no son nada de pequeños (los detalles pertinentes los contaré una vez que hayan frutos visibles, por ahora sólo quédense con esto). Detrás de las tareas de ejecución tenemos todo un tema de ingeniería muy bien estructurado, que de hecho debo reconocer que está resultando ser uno de los proyectos mejor planificados entre varios de los que me ha tocado formar parte últimamente. Son temas que implican ingeniería comercial, estudios de mercado, formas de atraer la atención de los visitantes o clientes según el caso, y por último y no menos importante que el resto, un tema de informática que hemos sabido llevar hasta ahora con mucho profesionalismo y una excelente capacidad para adecuar las demás áreas a las exigencias que nos competen vigilar. Todo para trazar el camino al equilibrio exacto entre una plataforma con cimientos sólidos y el cubrimiento de necesidades de captación de público y usabilidad.

Desde el punto de vista informático, nuestro trabajo es desarrollar el soporte lógico necesario para permitir el manejo de los datos que requiere el sistema, así como también procurar que el intercambio de información se haga de forma segura con el fin de evitar intrusiones, suplantación de credenciales o accesos no autorizados a contenidos restringidos. Y es aquí donde muchos proyectos de envergadura similar o quizá superior al cual estoy actualmente involucrado tienen defectos de planificación horribles, y es por ello que me permitiré dar una lista de consejos para todos quienes se encuentran relacionados con esta área con el fin de que a la hora de realizar sus proyectos tomen en cuenta algunos puntos que son esenciales para garantizar la implementación exitosa de cualquier aplicación:

  • La simplicidad ante todo: intentar modularizar todo lo que sea necesario. Si nuestra aplicación utiliza acceso a, por ejemplo, bases de datos, y el lenguaje de programación que utilizamos no provee facilidades para hacer los procedimientos de forma corta, lo mejor es que creemos una clase o conjunto de rutinas para utilizarlas en cada instancia, sobretodo si se trata de funciones que manejan información que proviene de fuentes externas o entradas del usuario. Con ello, además de ahorrar código, abstraeremos la aplicación para que la corrección de fallos sólo se haga una vez y no para cada uso práctico.
  • Desconfiar totalmente de cualquier información externa o proveniente del usuario. Cuando recibimos datos por GET o POST así como también mediante cookies, debemos asegurarnos que los datos recibidos corresponden a los que realmente esperamos, y que de no ser así se tomen las medidas de control necesarias. Por ejemplo, si contamos con un campo de fomulario que sólo acepta valores numéricos, lo correcto sería impedir que un tipo de dato distinto sea ingresado; o bien si tenemos una entrada de texto regular, lo correcto sería filtrar, ignorar o adecuar la interpretación de caracteres especiales o de control, tales como marcas de escape, caracteres de fin de cadena, saltos de línea, elementos de navegación del sistema de archivos u otros, con lo cual nos evitaremos comportamientos indeseados como lectura de archivos de contraseñas mediante inclusión o alteración de funciones mediante inyecciones de código, entre otros.
  • Diseñar las aplicaciones para funcionar bajo los escenarios más extremos. Es un error muy común y que se paga muy caro diseñar las aplicaciones teniendo en cuenta requerimientos a plazos muy cortos sin prever situaciones futuras. Por ejemplo, si pensamos en una aplicación que a corto plazo servirá a cien usuarios, debemos diseñarla de forma que funcione perfectamente para un millón, y que en caso de requerirse mayor cantidad de servicio, pueda ser escalable sin dificultades. Obviamente no sólo hablo de condiciones extremas en cuanto a cantidad de usuarios, sino que también puede ser aplicable a la cantidad de información a manejar, enlaces de datos, y también diseño de interfaces de usuario.
  • Por ningún motivo sacrificar la funcionalidad informática y usabilidad a cambio de mantener implementaciones estéticas. Puede que más de alguna vez se planifique algún detalle para la apariencia de un portal Web, pero que el hecho de llevarlo a cabo implique recortar funcionalidad y usabilidad. Si esto es así, lo mejor es rechazar tal detalle y buscar otra alternativa que sea viable desde la perspectiva que la parte informática se haga como debe hacerse.

Últimamente quedé en tratar algunos temas de contingencia por este medio, pero no me he dado la inspiración suficiente como para escribir sobre ello. Además, debo seguir desarrollando el Blog, es decir, implementar la galería de fotos, archivo, subscripción, corregir algunos problemas de presentación y hartas cosas más, pero el proyecto en el que estoy trabajando junto con los ramos de la universidad consumen casi todo mi tiempo.

Y esto ha sido el reportaje de hoy. Adelante estudios xD

Martes 16 de Octubre de 2007, 05:11:46
Categorías: Meta, Tecnología
Comentar...

Aún no hay comentarios en este artículo. ¡Sé el primero en comentar!

Deja tu comentario

Puedes utilizar emotíconos y bbCode; también si posees un avatar en Gravatar.com podrás utilizarlo en tus comentarios. Haz clic aquí para más ayuda.

(*): Campos obligatorios