Warum ist es „falsch rubygems zu verlangen?“
-
07-07-2019 - |
Frage
Nach diesem Beitrag , erfordert rubygems ist ein Antipattern.
require 'rubygems'
Das Argument scheint dies zu einkochen:
Wenn ich die Bibliothek verwenden, implementieren Ihre App oder Ihre Tests ausführen Ich will nicht verwenden rubygems. Wenn Sie benötigen ‚Rubygems‘ in Ihrem Code, entfernen Sie meine Fähigkeit, diese Entscheidung zu treffen. ich kann nicht rubygems unrequire, aber man kann es nicht in erster Linie erforderlich ist.
Aber könnte nicht das gleiche Argument über jede Ruby-Bibliothek gemacht werden, den Sie benötigen ", wenn Sie eine Bibliothek von Code mit anderen Menschen schaffen und teilen?
Lösung
Das Hauptproblem bei erfordert rubygems ist, dass es einen Fehler auf Systemen verursachen, die rubygems noch nicht installiert haben, wenn sie die Bibliothek zu tun haben, die Sie tatsächlich benötigen soll.
Manche Menschen arbeiten rund um die von Loaderror Rettung, wenn rubygems erfordern, aber das ist irgendwie hässlich.
Andere Tipps
Wenn man sich die Kommentare anschauen, werden Sie der Autor sehen dies sagen
Der Punkt, den ich nicht zu machen versuchte, ist dass rubygems schlecht ist oder dass die Menschen sollte es nicht verwenden. Ich benutze rubygems und denke, es ist ein kritisches Stück Rubys ist Erfolg - ich habe einfach nicht die Linie „Require 'rubygems'“ überall in meinem Bibliothek Quellcode, weil es nicht ist notwendig oder bequem und macht es hart / unmöglich für andere Umgebungen (wie Bündler, rippen, GAE, debian, von Hand gerollt, usw.) zu verwenden, die Bibliothek ohne rubygems, das ist oft wichtig.
Ich habe eigentlich nicht wirklich mit ihm zustimmen, bevor ich es gelesen, jetzt ich
Rubygems ist die Anwendung nicht wesentlich, es ist nur eine bequeme Möglichkeit, eine Bibliothek zu versorgen. Im Gegensatz dazu sind die anderen Bibliotheken wesentlich für die Anwendung.