25 julio 2005
Más sobre letrasenlared.com
No estoy trabajando en letrasenlared.com tanto como quisiera. En principio pq los fines de semana los estoy dejando para el supremo descanso, en las mañanas de entre semana estoy trabajando (ésta es mi última semana currando), y por las tardes, el gimnasio se me hace muy largo y entre unas cosas y otras sólo estoy centrado en el tema un par de horas dos o tres días.
Sin embargo, me quedo muy a gusto cuando compruebo cuantísimas cosas se pueden hacer 6 horas a la semana, y no dejo de pensar qué seré capaz de hacer con 40 horas y más conocimientos.
Ahora estoy haciendo el trabajo sucio de letrasenlared, y mucho del trabajo que estoy haciendo ahora me servirá para otras muchas cosas dentro de esta web y también para otras. Lo estoy dejando todo muy bien organizadito por clases, centralizando todo el trabajo en el mismo punto con arquitectura de triple capa:
- User Interface: lo que ve el usuario. No tiene ninguna referencia a la base de datos, simplemente se enlaza con la siguiente capa. Cualquier cosa que cambie de la base de datos no obligará a cambio alguno en esta capa. Si se hace bien, ni tal siquiera importa el nombre de las columnas.
- Business Logic Layer: es la capa que comprueba los datos, les da el formato que queramos, los organiza y los obtiene fuertemente tipados de la siguiente capa (aún no enlazamos con la base de datos). Tenerlo fuertemente tipado es la leche, ya que con un mínimo esfuerzo inicial luego las cosas son mucho más sencillas.
Tener los datos fuertemente tipados no consiste en otra cosa más que crear una clase con ls campos que vamos a manejar. Por ejemplo, si trabajamos con un foro crearemos una clase con campos como "titulo", "autor", "comentario", "fecha_publicacion", etc.
- Data Access Layer: simplemente enlaza con la base de datos y ejecuta los procedimientos almacenados correspondientes. Es la parte en la que más se ha de cuidar la eficiencia de nuestra aplicación: hacer la conexión con la BBDD lo más rápida y segura posible. Esto se consigue con datareaders y con usage (que es la leche) .
Todo esto está explicado de forma muy vulgar, rápida y nada formal, pero sirve para hacerse a una idea. Por ejemplo, en la tercera capa (DAL) he creado una clase madre que se encarga de realizar las operaciones de insert, delete y update. Por ejemplo, una vez creado el UI, habilitar la inserción, borrado o modificación de los registros que se devuelven en ese select no requiere más de 8 minutos, bastante menos de lo que hacía falta anteriormente con ASP o PHP y mucho más rápido, seguro y por tanto eficiente.
Además, la separación en capas permite separar totalmente la fuente de los datos de la interfaz de usuario. Por ejemplo las obras de los usuarios se guardarán en un fichero XML, pues supone mayor velocidad y menor carga para la base de datos, y de esto no se enterará jamás la interfaz de usuario.
Próximamente más.
Sin embargo, me quedo muy a gusto cuando compruebo cuantísimas cosas se pueden hacer 6 horas a la semana, y no dejo de pensar qué seré capaz de hacer con 40 horas y más conocimientos.
Ahora estoy haciendo el trabajo sucio de letrasenlared, y mucho del trabajo que estoy haciendo ahora me servirá para otras muchas cosas dentro de esta web y también para otras. Lo estoy dejando todo muy bien organizadito por clases, centralizando todo el trabajo en el mismo punto con arquitectura de triple capa:
- User Interface: lo que ve el usuario. No tiene ninguna referencia a la base de datos, simplemente se enlaza con la siguiente capa. Cualquier cosa que cambie de la base de datos no obligará a cambio alguno en esta capa. Si se hace bien, ni tal siquiera importa el nombre de las columnas.
- Business Logic Layer: es la capa que comprueba los datos, les da el formato que queramos, los organiza y los obtiene fuertemente tipados de la siguiente capa (aún no enlazamos con la base de datos). Tenerlo fuertemente tipado es la leche, ya que con un mínimo esfuerzo inicial luego las cosas son mucho más sencillas.
Tener los datos fuertemente tipados no consiste en otra cosa más que crear una clase con ls campos que vamos a manejar. Por ejemplo, si trabajamos con un foro crearemos una clase con campos como "titulo", "autor", "comentario", "fecha_publicacion", etc.
- Data Access Layer: simplemente enlaza con la base de datos y ejecuta los procedimientos almacenados correspondientes. Es la parte en la que más se ha de cuidar la eficiencia de nuestra aplicación: hacer la conexión con la BBDD lo más rápida y segura posible. Esto se consigue con datareaders y con usage (que es la leche) .
Todo esto está explicado de forma muy vulgar, rápida y nada formal, pero sirve para hacerse a una idea. Por ejemplo, en la tercera capa (DAL) he creado una clase madre que se encarga de realizar las operaciones de insert, delete y update. Por ejemplo, una vez creado el UI, habilitar la inserción, borrado o modificación de los registros que se devuelven en ese select no requiere más de 8 minutos, bastante menos de lo que hacía falta anteriormente con ASP o PHP y mucho más rápido, seguro y por tanto eficiente.
Además, la separación en capas permite separar totalmente la fuente de los datos de la interfaz de usuario. Por ejemplo las obras de los usuarios se guardarán en un fichero XML, pues supone mayor velocidad y menor carga para la base de datos, y de esto no se enterará jamás la interfaz de usuario.
Próximamente más.