Действительно ли это допустимо для создания Драгоценных камней Ruby аналогией с БАНКАМИ Java?

Хорошо, это все еще не имеет смысла. Если я создаю две совершенно новые таблицы со следующим:

table1 ID первичного ключа int не обнуляемое значение varchar table2FK

table2 ID первичного ключа int без обнуляемого значения varchar

и в table1 Я устанавливаю связь между table2FK и Table2.ID, она отлично работает без данных, сохраненных в таблицах. Если я использую точно такой же процесс в моих таблицах AllPeople и RefEthnicicties, я получаю ошибку. Это не имеет никакого смысла. Что мне не хватает? адам

16
задан Bill the Lizard 19 September 2012 в 01:53
поделиться

3 ответа

В качестве короткого ответа я бы сказал: Да, он действителен.

В качестве длинного ответа я бы сказал: Да, он действителен, но есть некоторые важные различия, которые вы, возможно, захотите описать также.

У банки есть некоторые качества, которые сильно отличают ее от драгоценного камня. JAR - это упакованные исполняемые библиотеки, от которых обычно требуется явное объявление зависимости при выполнении программы Java во время вызова (путем объявления jar как зависимости при вызове интерпретатора java). В jar-структуре реализована небольшая структура, кроме нескольких четко определенных мест для файлов (например, структура каталогов должна отражать путь пакета).

Gem - это дескриптор для постоянной установки библиотеки в систему, а также пакет функций. сделано доступным для объявления зависимости во время выполнения. Gem имеет строгий синтаксис управления версиями как часть своего определения, и гемы, как правило, распространяются из нескольких централизованных репозиториев, которые тратят приличное количество усилий для обеспечения уникальности в именах гемов. Драгоценные камни могут явно объявить свои зависимости от других драгоценных камней. (Сравните с JAR-файлами, где вы должны убедиться, что у вас есть все зависимости для jar-файла, удовлетворенного во время вызова, а jar-файлы не принимают на себя ответственность за объявление зависимости ИЛИ разрешение). Кроме того, в инструмент gem встроены некоторые дополнительные функции, которые могут быть очень удобными, например, вы можете объявить исполняемый файл по умолчанию для вызова gem, если пользователь хочет «запустить gem», и вы можете объявить набор для модульного тестирования. для драгоценного камня, так что пользователь, который устанавливает драгоценный камень, может обеспечить его функциональность.

27
ответ дан 30 November 2019 в 17:28
поделиться

Простое объяснение, сравнивающее их с JAR, достаточно для базового класса Ruby. Для более подробного объяснения см. Ответ holychao. Мне приходит в голову тот факт, что Gem для Ruby - это то же, что CPAN для Perl.

2
ответ дан 30 November 2019 в 17:28
поделиться

Я не уверен, что это так просто ...

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

Механизм Jar был создан для упаковки и только для упаковки. Самым важным, ИМХО, в Gem является проект RubyGems Набор функций RubyGems немного больше, чем просто упаковка, включает в себя распространение и установку пакетов.

Я думаю, что механизм распространения и установки Apache Maven - самое близкое, что есть у сообщества Java от Ruby Gems.

3
ответ дан 30 November 2019 в 17:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: