Boson vs Thor для консольных приложений

Кто-нибудь использовал как Boson, так и Тор?

Thor очень популярен и имеет больше последователей и участников, чем Boson, но Boson выглядит намного мощнее, чем Thor, а архитектура очень хорошо продумана.

В Бозоне вы:

  • можно добавлять методы, которые используются как в консоли, так и в среде ruby. Таким образом, вам не нужно одновременно иметь Thorfiles для консоли и драгоценные камни для рубина.
  • могут иметь псевдонимы.
  • вам не нужно устанавливать файлы сценариев, вы просто помещаете их в ~/.boson/commands. Мне всегда приходится бороться с удалением и установкой Thorfiles после каждого обновления (что может быть каждую минуту при редактировании исходного кода, что очень расстраивает).
  • имеют гораздо более приятный вывод команд, чем thor.
  • не нужно писать описания аргументов вручную, как в Торе.
  • работать с модулями, которые лучше, чем с классами, потому что вы можете включать модули в другие модули.
  • автоматически оборачивать фрагменты с открытым исходным кодом (например, из Gist) внутри модуля, и он сразу же работает с Boson.
  • имеют разные представления для результатов вашего метода.
  • вам не нужно ничего перекодировать в своих фрагментах, чтобы они соответствовали Тору, поскольку он использует только собственный рубиновый код (модули). Это означает, что если вы однажды не захотите использовать Boson, вам не нужно будет все перекодировать, что необходимо, если вы используете Thor.
  • API лучше задокументирован — например, учебные пособия внутри каждого класса.
  • Вы можете просто включить модули "boson" в свой ruby-скрипт и использовать их напрямую, чего я не могу сделать с Thor, потому что это только для Thor. Вы не можете использовать методы Thor совместно с другими классами Thor (не в качестве примесей).

Я заметил все эти преимущества, просто прочитав документацию и поигравшись с Boson пару минут.

Должен ли я использовать Thor только потому, что он более популярен (потому что я не могу найти ничего другого, где он сиял бы над бозоном), или я должен рискнуть тем, что Boson может быть прекращен через некоторое время, поскольку автор является единственным участником?

Хотя это всего лишь один парень, вы видите, как ему удалось кодировать с высокой скоростью и с выдающимся качеством. Было бы здорово, если бы больше таких участников, как он, внесли свой вклад в эту библиотеку. Я действительно надеюсь, что все больше рубистов будут использовать его, потому что у него есть большой потенциал для того, чтобы стать скриптовым фреймворком для автоматизации всей системы. Как Rails для бэкенда. И автор действительно очень быстро выручает вас, когда вы регистрируете проблему.

Thor работает только для оболочки (что, я думаю, и является его целью), в то время как у бозона, как я вижу, есть 3 основные функции. Это позволяет вам иметь код, работающий в оболочке, в ruby ​​(irb и скрипты), и вы можете иметь хорошие коллекции всех ваших кодов Ruby без модификаций.

Я всегда хотел, чтобы фреймворк был моим бэкенд-фреймворком для сценариев, и теперь мне не нужно изобретать велосипед. Кажется, это мог быть бозон.

Кто-нибудь использовал обе эти библиотеки и может поделиться некоторыми мыслями?


person never_had_a_name    schedule 13.09.2010    source источник


Ответы (1)


Отказ от ответственности: я автор бозона.

Я использовал и то, и другое, и именно Тор вдохновил меня написать бозон. Несмотря на то, что они имеют частично совпадающую функциональность, я вижу, что они преследуют разные цели.

Thor — это среда сценариев, которая быстро и красиво предоставляет приложениям интерфейс командной строки. 116 драгоценных камней (включая рельсы), которые зависят от него, являются хорошим доказательством этого. Сначала я пытался использовать thor для управления и использования фрагментов, но через некоторое время принудительное пространство имен, отсутствие псевдонимов, написание избыточных строк использования и плохой поиск заставили меня понять, что thor не оптимизирован для управления фрагментами.

Поэтому я написал boson для управления бесконечным количеством рубиновых фрагментов, которые я обычно помещал в ~/bin с учетом этой философии. Свыше 400 команд позволяют мгновенно найти и использовать любой фрагмент кода ruby ​​в качестве полноценного исполняемого файла. . Здесь слишком много функций, чтобы их перечислять, хотя вы, кажется, знаете некоторые сильные стороны бозона. Что касается того, чтобы быть единственным участником, я приветствую любого, кто вносит свои идеи.

Если бы можно было провести одно простое сравнение между ними, я бы сказал, что thor сосредоточен на создании исполняемых файлов для проектов и приложений, а boson сосредоточен на их создании для пользователей.

person cldwalker    schedule 14.09.2010
comment
Хорошее сравнение. Я с нетерпением жду возможности внести свой вклад в этот проект на постоянной основе, поскольку он сосредоточен на пользователе. У меня есть много фрагментов, которые я хочу использовать непосредственно в оболочке/консоли вместо копирования и вставки. - person never_had_a_name; 14.09.2010
comment
удивительно отсутствие конфликта интересов ответ от автора. - person New Alexandria; 02.06.2012
comment
Обновление: boson ›= 1.0 также имеет подобную Тору поддержку исполняемых файлов приложений. Пример в файле readme. Сравнение функций с thor также в файле readme - person cldwalker; 21.09.2012
comment
отлично, этот последний комментарий заставил меня взглянуть глубже. Первые 4 страницы, которые я нашел, похоже, не упоминают об этом. Спасибо. - person inger; 23.07.2013