khan entre divisiones dividir dividido decimales con como academy version-control lisp common-lisp system

version control - entre - ¿Cómo hago para dividir el código Lisp en múltiples archivos de origen?



divisiones con decimales khan academy (3)

En este momento, todo lo que hago logra caber en un solo archivo fuente, y uno sorprendentemente pequeño en eso. ¿Cómo decides cuánto y qué dividir en archivos separados?

Con Java, es fácil decidir qué pasa en un archivo (la decisión ya está hecha para usted), pero en Lisp encuentro que escribo muchas funciones pequeñas que se construyen unas sobre otras y es difícil decidir qué, si hay algo que deba dividirse afuera. Cuando abordo proyectos más grandes en Lisp, sería bueno no tener que reinventar la rueda, pero no puedo encontrar mucha información concreta en la web sobre esto.

¿Puede compartir algunas estrategias para lidiar con proyectos más grandes en Lisp, o señalarme algunos recursos que se ocupen de esto?



Cuando empiece a escribir un programa Lisp, puede ser útil comenzar con un solo archivo. Una vez que el código sea demasiado grande (sea lo que sea), puede dividirlo. Cuando te estás acercando a algo que necesita organización, entonces debes invertir algo de trabajo en ello.

Algunos consejos:

  • Existen algunas herramientas para administrar las dependencias de los archivos de origen y proporcionar acciones como compilar, cargar, compilar y cargar y otras. ASDF es uno, pero también hay otros.

  • Necesita un archivo para describir las dependencias . Nómbrelo para que pueda ser reconocido.

  • Es posible que necesite un archivo para definir uno o más paquetes .

  • Es posible que necesite poner funcionalidades específicas de implementación en sus propios archivos.

  • Mueve grandes cantidades de datos de configuración a sus propios archivos.

  • Las utilidades generales deben estar en otro archivo.

  • Las macros deben definirse antes de usarse. Otros archivos dependen de este archivo y deberían volver a compilarse automáticamente si se cambia la definición de la macro.

  • Agrupe la funcionalidad en un archivo si está conectado lógicamente. En un programa de dibujo: todas las funciones de dibujo, todos los comandos de la interfaz de usuario, guardar datos en archivos, imprimir, ...

  • No importa mucho el tamaño del archivo. Los archivos fuente de Lisp pueden ser grandes. A veces 100k.

  • El entorno de desarrollo admite el movimiento en los archivos. METRO-. En un símbolo encuentra su fuente.

  • asegúrese de que puede volver a cargar un archivo, sin la necesidad de reiniciar todo el Lisp.

  • Common Lisp proporciona LOAD y COMPILE-FILE como funciones. Puedes usar estas funciones en tus propios archivos.


Si está utilizando Common Lisp, ASDF es una forma popular de especificar sistemas. Maneja las dependencias de orden de carga entre sus archivos de origen (y mucho más).