domingo, marzo 18, 2007

Desafío Semana 4: "Modularizar el sistema" (actualizado 23/3/2007)

Nuevamente el Gerente de Proyectos, receptivo a los trabajos entregados y a todos los comentarios de sus subordinados, comprende que aún le falta hacer cambios en el diseño del sistema base entregado, por lo tanto decide solicitar un informe explicando las siguientes mejoras:
  • Sistema modular: centralizar las invocaciones que puedan venir únicamente a través del index.php y no del resto del sistema. Solo se ingresa por index.php y luego a los módulos correspondientes. Evitar el acceso por cualquier ruta distinta a index (concepto "web modular").
  • Eliminar los módulos por invocaciones a clases: eliminar los archivos que hoy día representan a los módulos de nuestro sistema (por ej. listado_usuarios.php) y desde el punto de entrada único (index.php) hacer invocaciones a las clases correspondientes que ofrecen esos servicios (por ej. ListadoUsuarios). Las clases no pueden estar definidas dentro de index.php y deberán crearse archivos para cada clase respetando la nomenclatura aprendida hasta el momento. Se solicita actualizar el diagrama de paquetes que represente todos estos cambios.
  • Clases Abstractas: hacer una lista de todas las clases que no son necesarias instanciarlas en el sistema y que deban ser "abstractas". Explicar la implementación, justificar la selección y la razón de esta decisión.
  • Mejorar la búsqueda: corregir la búsqueda por nombre y descripción para que pueda obtener más de una coincidencia (actualmente solo trae una).
  • Seguridad: el sistema actual confía de los datos que recibe, lo cual puede convertirse en un problema de seguridad a través de un ataque del tipo "sql injection". Proponer una solución a este problema.
Versión del Sistema Base

Deberán esperar a que se actualice la última versión del sistema, que estará disponible en las próximas horas y tendrá todos los cambios realizados para la entrega "Semana 3".

Forma y límite de la entrega

  • Seguiremos manejando un período de 1 semana, la entrega se hará el lunes 26/3/07.
  • Documento "compartido" (que permita modificarlo) con el siguiente nombre "semana4-[idDeUsuario]".
  • Quién no cumpla con los requerimientos es automáticamente pasado al estado "deshabilitado" dentro del taller, lo cual queda fuera de las evaluaciones de los trabajos y de una futura asignación a un equipo de desarrollo en SurForce.
  • Se penalizarán todos los errores: cualquier detalle mencionado en esta entrada, más las faltas de ortografía, no uso de las herramientas oficiales, faltantes en las entregas, etc.
PD: dudas sobre los requerimientos, en los comentarios de esta entrada.

Actualizaciones
  • 23/03/2007 - se corrige redacción punto 2.

20 comentarios:

Federico dijo...

Se complica se complica jeje.

Pero bueno, Manos a la obra!

lisandro dijo...

Enrique tengo una duda. De que sistema base tendriamos que partir?, veo que el repositorio no se ha actualizado y en la semana 3 hicimos cambios los cuales no sabemos si son correctos (el mio tiene alguna diferencia mayor con los demas.

enrique_place dijo...

Estimado Lisandro:

Gracias, se me había pasado ese detalle... ya lo actualicé en la entrada original. ;-)

paopao1983 dijo...

Hola enrique... me gusta como suena este nuevo reto, ya que aquí es donde mas desconocido es el trabajo para mi, ya que mi experiencia con php o mejor mi experiencia en desarrollo Web es poca y pues los conceptos o formas de trabajar y comunicar cada cosa no los manejo...

Partiendo de esto, quisiera que me aclararas algo si estoy viéndolo por donde es o no... cuando dices:

"centralizar las invocaciones que puedan venir únicamente a través del index.php y no del resto del sistema. Solo se ingresa por index.php y luego a los módulos correspondientes."

Aquí entiendo por módulos lo que son listado_usuarios.php, mostrar_usuario.php y consultar_usuario.php... sip?? o lo estoy viendo mal, la verdad me gustaría alguna información o aclaración tuya al respecto, pues para varios resultará algo familiar pero para mi no, hasta allá no he llegado en mi practica de desarrollo web... Gracias...

P.D. Se que a lo mejor me vas a contestar que esto hace parte del reto y lo comparto, por eso ya he dejado de andar preguntando el las semanas pasadas, pero en vista de que esto ya es mas práctico que teórico, me gustaría algo de aclaración, pues en el medio se que pueden existir muchas formas de trabajar estas cosas... Bueno ahora si listo!!!..

P.D.D. ah se me pasaba te felicito por tu nena muy linda… un concejo no seas tan testarudo deja que te ayude en el trabajo no ves que puede darte ideas mas frescas jajaja ;-), ella te hace esas preguntas para ver si sabes o no jajaja…. besos a la nena bye…

enrique_place dijo...

Estimada Paopao:

> "centralizar las invocaciones que
> puedan venir únicamente a través del
> index.php y no del resto del sistema.
> Solo se ingresa por index.php y luego
> a los módulos correspondientes."

Por ejemplo:

http://sitio.com/index.php?m=listado_usuarios

index.php debería funcionar con por defecto "index.php?m=inicio" o algo similar, pero de ahora en más listado_usuarios.php no debe funcionar solo.

> P.D.D. ah se me pasaba te felicito
> por tu nena muy linda… un concejo no
> seas tan testarudo deja que te ayude
> en el trabajo no ves que puede darte
> ideas mas frescas jajaja ;-), ella te
> hace esas preguntas para ver si sabes
> o no jajaja…. besos a la nena bye…

Gracias ;-)

Aunque pueda parecer algo "egocéntrico" las fotos que saca mi hija me gustan, y por eso las uso, más que porque me retraten (si fueran solo por eso no las subiría ;-)).

Para la edad que tiene domina muy bien el celular y la cámara digital (hay fotos en mi flickr.com que son de ella).

jose luis dijo...

Hola Enrique, he actualizado el repositorio y todo sigue igual que en la semana 3, supongo que avisaras cuando este actualizado

Saludos

enrique_place dijo...

Estimado jose luis:

> Hola Enrique, he actualizado el
> repositorio y todo sigue igual que en la
> semana 3, supongo que avisaras cuando
> este actualizado

Sí, hoy de noche, como corresponde a todo vampiro ;-)

PD: me tienen cortito ;-)

Berenice dijo...

Hola enrique,

Tengo una pregunta,cuando se actualizará el repositorio del cual tenemos que partir ??

Gracias y saludos a tu familia

Berenice

jelarrosa dijo...

Hola Enrique: la entrega continúa siendo para el lunes próximo? el repositorio con los nuevos cambios cuando puede bajarse para tomarlo como punto de partida?
saludos y muchas gracias
enrique

enrique_place dijo...

Estimados todos:

Por favor, es fundamental en nuestra profesión hacer buen uso de la comprensión lectora.

En la entrada dice claramente:

"Deberán esperar a que se actualice la última versión del sistema, que estará disponible en las próximas horas y tendrá todos los cambios realizados para la entrega "Semana 3"".

Esto lo escribí el mismo 19/3, y la actualización ya se hizo ese mismo día a las 19hs.

Si hacen un "update" en el svn ya verían todos los cambios.

David dijo...

Hola de nuevo Enrique.

Le he dado muchas vueltas a esto antes de 'tirarme a la piscina'. Teniendo presente todos tus consejos a lo largo de este taller (sobre todo el especial énfasis, justificado, en lo que a la compresión lectora se refiere) he de decir... que no he entendido muy bien lo que hay que hacer. El primer punto me quedó más claro con la explicación a PaoPao, pero el segundo.. sigo si comprenderlo. Estoy 'atascado'.

Saludos.

jose luis dijo...

Hola Enrique, pues me pasa lo mismo que a David, estoy atascado en el punto 2 teniendo en cuenta de que en la semana anterior yo no creé ninguna clase en los módulos, entonces sólo tendría que dejar todo tal cual lo hice la semana 3 pero tengo la duda de que sea la forma correcta de hacerlo.

Gracias y saludos

enrique_place dijo...

Estimado David y José Luis:
Estuve releyendo el punto dos y no quedó para nada bien redactado.

El error fue enteramente mío y ya lo corregí en la entrada principal.

PD: no sé que estaba pensando cuando lo escribí ;-)

paopao1983 dijo...

Hola como estan.... Alguno me puede decir si ha podido descargar las actualizaciones del proyecto?.. la verdad no se que pasa, yo he intentado muchas veces y no me deja, me sale error... estos:

Error: PROPFIND request failed on '/svn/trunk/surforce-proyectobase'


Error: PROPFIND of '/svn/trunk/surforce-proyectobase': could not connect to server (http://surforce-proyectobase.googlecode.com)

Bueno cualquier ayuda Gracias... Como que me ha quedado grante el SVN.. BYE

enrique_place dijo...

Estimada Pao:

Sé metódica, analiza el problema, no puedes decir que te "queda grande el SVN" cuando el mensaje de error evidencia un problema en la conexión hacia el servidor.

Ese puede ser un problema local, no necesariamente de Code Google. Estuve probando recién y todo anda bien.

Puedes navegar tu misma el repositorio con el navegador:

http://surforce-proyectobase.googlecode.com/svn/trunk/surforce-proyectobase/

jelarrosa dijo...

hola Paopao: yo en otras versiones tuve varios problemas similares y era la conexión a través de proxy, firewall, etc., probé conectarme eliminando estos pasos y pude bajar sin problemas. Prueba con nslookup para ver si resuelve el nombre y que no sea problema de DNS. espero sirva de algo mi aporte.
saludos
jose (jelarrosa)

paopao1983 dijo...

muchas gracias jelarrosa, exactamente eran problemas en la configuracion del tortoise.. no se como apareció activado el proxi y para mas con contraseña incluida.. la verdad no habia utilizado esto antes y pues lo estoy conociendo... una circunstancia retardadora menos!!, en todo este aprendizaje ;-)... Muchas gracias.. ahora a ver si alcanzo a terminar... bye

lisandro dijo...

Anoche termine con el tiempo justo y la verdad que este fue el mas difícil, estoy ansioso por ver los trabajos de los demás y por ver cual era la forma correcta de hacerlo, me refiero especialmente a lo de las clases abstractas y a la solución del problema de seguridad.

Saludos !

lisandro dijo...

Alguno tiene alguna noticia de Enrique ?. Han podido contactarse por mail ?

enrique_place dijo...

Estimado Lisandro:

Coff!, Coff!

Ya respondí a todos en una nueva entrada en el blog

Coff!, Coff!