2009-08-13 11 views
5

Esta pregunta surgió de una aplicación web, aunque también debería ser válida para otros tipos de aplicaciones. Estoy usando MVC.¿Diferencia entre la biblioteca y el código de la aplicación?

Tengo el código de la aplicación (modelos, vistas, controladores, formularios, ayudantes, etc.) y el código de la biblioteca (bibliotecas externas y una biblioteca interna con mapeadores de bases de datos autogenerados, convertidores json, etc.).

Me pregunto dónde suele trazar la línea entre la aplicación y el código de la biblioteca (cuando ambos están escritos internamente)?

Parte del código de la biblioteca se vuelve bastante específico del proyecto, pero todavía es un poco abstraído.

Respuesta

5

El código de la biblioteca está destinado a ser reutilizable, el código de la aplicación por lo general no. Mantenga el código en una biblioteca cuando no esté vinculado específicamente a la aplicación.

En caso de duda tratar de responder a esta pregunta: ¿

Si escribo otra aplicación, se mantendrá este código?

4

Mi regla general es: cualquier cosa que alguna vez se pueda usar en otro proyecto, y se puede hacer para que no dependa fácilmente de ningún código específico de la aplicación (y hay todo tipo de técnicas para hacerlo) debería incluirse en una biblioteca. Entonces, si es potencialmente reutilizable, va a una biblioteca.

1

Cuando me enfrento a este tipo de preguntas de categorización, quiero saber una cosa: las consecuencias de la categorización errónea.

Este código es "biblioteca", ese código es "aplicación" ... ¿para quién se hace esta distinción? ¿Qué pasaría si ponemos algún código en la categoría incorrecta?

Una posible respuesta:

Afecta a la reutilización del código. Supongamos que tenemos una política: el código de la biblioteca está disponible en una DLL con los encabezados necesarios, etc. El código de la aplicación se acaba de implementar en .EXE.

Ponga una buena rutina para hacer un cálculo difícil en la aplicación, no en la biblioteca, luego no se puede reutilizar fácilmente.

Quizás surjan más cosas de esa línea de pensamiento ... se aplican preguntas de control de versiones. ¿Necesitamos producir mejor documentación? [Incluso con un único desarrollador, ¿podríamos tener más cuidado?] ¿Necesitamos externalizar la información de configuración, pero estamos seguros de no codificar nada?

Cuestiones relacionadas