2010-05-02 9 views

Respuesta

9

¿Cómo estructurar una aplicación escrita en un lenguaje funcional?

n diferente que en cualquier otro tipo de aplicación:

  • Cada módulo se esconde un secreto.

  • Una decisión de diseño que probablemente cambie debe encapsularse en un módulo.

  • Un módulo puede exportar un solo tipo principal, un par de tipos auxiliares y un montón de operaciones relacionadas.

  • La cohesión y el acoplamiento del módulo siguen siendo tan importantes como Yourdon y Constantine dijeron que estaban en la década de 1970 — aunque en un lenguaje funcional, rara vez tiene que preocuparse por formas "secuenciales" de cohesión y acoplamiento.

  • Muchos lenguajes funcionales requieren un módulo por archivo, pero los dialectos ML ofrecen una mayor flexibilidad. Sin embargo, la práctica abrumadora es poner un módulo y su interfaz en archivos separados. Objetivo Caml consagra esta convención en su compilador.

En resumen, sigue siendo cierto que representación es la esencia de la programación (Fred Brooks), y como en cualquier otra aplicación grande, los módulos deben organizarse para evitar la exposición de la representación a título gratuito.

Lo único que es un poco diferente en un lenguaje funcional es que puede proporcionar un módulo que encapsula un patrón de ejecución como incorporado en una función de orden superior. Por ejemplo, escribí un módulo basado en Bubble Search; mi código toma cualquier algoritmo codicioso y lo convierte automáticamente en un algoritmo de búsqueda de burbujas. Pero un módulo como este, que es completamente sobre código y no tiene una estructura de datos real, es bastante raro.

+0

La reutilización en contraste con OOP sucede en el nivel de cálculo (función), no en el nivel de componente (objeto). –

Cuestiones relacionadas