2009-09-16 24 views
9

Secondo this post, la richiesta di rubini è un antipattern.Perché è "sbagliato richiedere rubygems"?

require 'rubygems' 

L'argomento sembra ridursi a questo:

Quando uso la libreria, distribuire l' app, o eseguire i test io non voglio usare RubyGems. Quando si richiedono "rubygems" nel codice, si rimuove la mia capacità per prendere questa decisione. I non può non richiedere i rubygems, ma è possibile non richiedere in primo luogo.

Ma non si potrebbe fare lo stesso argomento su qualsiasi libreria Ruby che si richiede quando si crea e si condivide una libreria di codice con altre persone?

risposta

9

Il problema principale con rubygems richiedono è che causerà un errore su sistemi che non hanno rubygems installati anche se hanno la libreria che in realtà si desidera richiedere.

Alcune persone aggirano questo problema salvando LoadError quando richiedono rubini, ma questo è un po 'brutto.

9

Se si guardano le osservazioni, si vedrà l'autore dice questo

Il punto non stavo cercando di fare è che rubygems è male o che la gente non dovrebbero usarlo. Io uso RubyGems e pensare che sia un pezzo critico di successo di Ruby - io non ho la linea “require 'rubygems'” in qualsiasi parte del codice sorgente di mia biblioteca perché non è necessario o conveniente e lo rende duro/impossibile per altri ambienti (come bundler, rip, GAE, debian, laminati a mano, ecc.) per utilizzare la libreria senza rubygems, che è spesso importante.

Io in realtà non ho davvero d'accordo con lui prima che ho letto, ora faccio

0

Rubygems non è essenziale per l'applicazione, è solo un modo conveniente di fornire una libreria. Al contrario, le altre librerie utilizzate sono essenziali per l'applicazione.

Problemi correlati