Почему «неправильно требовать рубинов»? - PullRequest
9 голосов
/ 16 сентября 2009

Согласно этому посту , требующий рубинов является антипаттерном.

require 'rubygems'

Кажется, аргумент сводится к следующему:

Когда я использую вашу библиотеку, разверните приложение или запустить ваши тесты, я могу не хотеть использовать рубины. Когда вам требуется «rubygems» в вашем коде, вы удалите мой способность принять это решение. я не может требовать rubygems, но вы можете не требует этого в первую очередь.

Но нельзя ли привести такой же аргумент в отношении какой-либо библиотеки Ruby, которая вам «требуется», когда вы создаете и делитесь библиотекой кода с другими людьми?

Ответы [ 3 ]

10 голосов
/ 16 сентября 2009

Если вы посмотрите на комментарии, вы увидите, что автор сказал это

Смысл, который я не пытался что rubygems это плохо или что люди не должен использовать это. Я использую рубины и думаю, что это критическая часть Ruby успех - у меня просто нет линии «Требовать« rubygems »где-нибудь в моем Исходный код библиотеки, потому что это не необходимо или удобно и делает это трудно / невозможно для других окружение (например, bundler, rip, GAE, Debian, Hand Roll и т. д.), чтобы использовать библиотека без рубинов, которая часто важно.

Я на самом деле не был согласен с ним, прежде чем я прочитал это, теперь я делаю

9 голосов
/ 16 сентября 2009

Основная проблема с требованием rubygems состоит в том, что это вызовет ошибку в системах, в которых не установлены rubygems, даже если у них есть библиотека, которая вам действительно требуется.

Некоторые люди обходят это, спасая LoadError, когда требуются рубины, но это уродливо.

0 голосов
/ 09 ноября 2011

Rubygems не является обязательным для приложения, это просто удобный способ предоставления библиотеки. Напротив, другие используемые библиотеки имеют важное значение для приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...