2009-09-16 13 views
9

De acuerdo con this post, que requieren rubygems es un antipatrón.¿Por qué es "incorrecto requerir rubygems"?

require 'rubygems' 

El argumento parece reducirse a esto:

Cuando uso la biblioteca, desplegar su aplicación , o ejecutar las pruebas puede que no desee utilizar rubygems. Cuando requiera 'rubygems' en su código, elimine mi capacidad de tomar esa decisión. I no puede volver a solicitar rubygems, pero puede no requerirlo en primer lugar.

¿Pero no se podría hacer el mismo argumento sobre cualquier biblioteca de Ruby que 'requiera' cuando cree y comparta una biblioteca de código con otras personas?

Respuesta

9

El principal problema con rubygems que requieren es que se producirá un error en sistemas que no tienen instalados incluso si rubygems ellos sí tienen la biblioteca que realmente deseas requerir.

Algunas personas lo solucionan rescatando LoadError al requerir rubygems, pero eso es feo.

9

Si nos fijamos en los comentarios, verá el autor dice esto

El punto que no estaba tratando de hacer es que rubygems es mala o que la gente no deben usarlo. Puedo utilizar rubygems y pensar que es una parte crítica de éxito de Ruby - Es que no tengo la línea “require 'rubygems'” en cualquier parte del código fuente de mi de la biblioteca porque no es necesario o conveniente y hace que sea dura/imposible para otros entornos (como bundler, rip, GAE, debian, laminados a mano, etc.) para usar la biblioteca sin rubygems, que es a menudo importante.

realidad, yo no estoy de acuerdo con él antes de leerlo, ahora sí

0

Rubygems no es esencial para la aplicación, es solo una forma conveniente de suministrar una biblioteca. Por el contrario, las otras bibliotecas utilizadas son esenciales para la aplicación.

Cuestiones relacionadas