lunes, julio 12, 2004

Un poco de C

Concepto:
La separación entre la interfaz de usuario (IU) y la logica del protocolo radica en que dentro de la implementación de esta ultima no debe existir interacción con el usuario , burdamente, no debe haber un "printf". solo debe recibir y entregar parametros para que luego sean procesados. esto con la unica finalidad de hacer un codigo mucho más flexible y reutilizable.
Mala Implementación:

void
do_mail_from (int sock) {
char from[4096];
char sendline[4096];
char recvline[4096];
int code;

/* Esto pertenece a UI */
printf ("Ingrese usuario: ");
scanf ("%s", from);

/* Esto pertenece al protocolo */
sprintf (sendline, "MAIL FROM: <%s>\n", from);

write (sock, sendline, strlen (sendline));
read (sock, recvline, 4096);
...

/* Esto pertenece a UI */
if (code == 500) {
printf ("Ocurrio un error en MAIL FROM:\n");
}
}

Buena implementación

nt
main (...) {
...

scanf ("%s", from);

if (do_mail_from (sock, from) != 250) {
printf ("Error ...\n");
}
...
}

donde "do_mail_from (sock, from)" es la función para enviár correo, que obiamente hay que implementarla :P.

No hay comentarios.: