¿Debería mi pequeña biblioteca de software evitar el uso de otras bibliotecas?

13

Acabo de lanzar una pequeña biblioteca de Java que ofrece solo algunas clases y métodos. Desde que construí el proyecto con Maven, inmediatamente utilicé varias bibliotecas de terceros para lograr mis objetivos, específicamente:

  • commons-lang3 (para algunas cosas generales de Java)
  • slf4j-api (para el registro)
  • commons-io (por un poquito de material de archivo, creo que literalmente leer un archivo una vez, creo)

No quiero que mi biblioteca aparezca hinchada ante los ojos de otros. ¿Debería intentar eliminar mi dependencia de estas bibliotecas para minimizar mi huella? ¿Algún consejo sobre qué tipos de bibliotecas sería mejor evitar al considerar el uso de más en el futuro?

    
pregunta Duncan Jones 31.01.2013 - 18:47

2 respuestas

8

Estoy respondiendo esto considerando tu situación específica. Yo diría que está bien usar esas bibliotecas. Simplemente asegúrese de que su slf4j-api no lleve consigo la implementación. Con eso, me refiero a marcar la dependencia de implementación como "prueba". EG:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.2</version>
    <scope>test</scope>
</dependency>

Esto se describe en detalle en las Preguntas frecuentes de SLF4j.

En cuanto a los otros dos, IME, siempre son compatibles con versiones anteriores. Por lo tanto, si dentro de 5 años necesito usar su biblioteca pero está usando una versión anterior de esas, puedo excluir sus dependencias y nuestro código seguirá funcionando. En otras palabras, al usar estas bibliotecas específicas no introducirás jar-hell para otros.

Si utilizo su biblioteca a través de maven, no me daré cuenta si su biblioteca está hinchada o no. Solo dependeré de la tuya y la usaré. Creo que es más importante que su código funcione correctamente que su huella más pequeña. Prefiero que uses commons-io en lugar de reinventar la rueda con un error en ella.

    
respondido por el Daniel Kaplan 31.01.2013 - 18:52
1

No.

"Inflar" es un mito. No importa cuánto código haya en su biblioteca, si parte de ese código nunca se usa, no se paginará, no tendrá ningún impacto en absoluto ni en el rendimiento ni en la memoria.

Por otro lado, si necesita esa pieza adicional de funcionalidad, tiene dos opciones. Puede escribirlo usted mismo y dedicar mucho tiempo y esfuerzo a resolver los problemas que otros ya han resuelto anteriormente, o puede optar por utilizar la solución que ya existe (y se ha probado / depurado / etc).

Eso nos deja con el tamaño de la descarga y la huella de espacio en el disco, y, a menos que esté hablando de números tontos, en 2013 son dos factores que deberían estar cerca del final de la lista de cosas de las que debe preocuparse.

    
respondido por el Maximus Minimus 02.02.2013 - 02:53

Lea otras preguntas en las etiquetas