Странно ли развиваться в ruby ​​на рельсах без использования каких-либо дополнительных драгоценных камней? - PullRequest
2 голосов
/ 20 мая 2011

Я всегда обнаруживал, что многие разработчики рельсов обычно откладывают множество задач на гемы, а не пишут код сами, и иногда я обнаруживаю, что вообще их не использую, из-за того, что гемы ведут себя не совсем таккак я хотел в некотором роде, это странно для кого-то из вас?

Кстати, я использую гемы, которые выполняют криптографические задачи, такие как bcrypt и mysql2, для соединений с базой данных, но я никогда не нахожу себя использующим гемы, такие как Devise /Authlogic для аутентификации.

Ответы [ 4 ]

4 голосов
/ 20 мая 2011

Вы можете забыть о Rails и спросить себя: «Нужны ли мне стандартные библиотеки или мне нужно создавать свои собственные?»

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

2 голосов
/ 20 мая 2011

В философии Rails принято использовать драгоценные камни, чтобы не изобретать велосипед, и, прежде всего, делать больше с меньшими затратами.

Хорошие драгоценные камни должны быть конфигурируемыми, поскольку вы можете использовать их для своих нужд.

1 голос
/ 20 мая 2011

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

Мне кажется, что некоторые драгоценные камни или плагины могут вести себя странно, когда они связаны с другими драгоценными камнями или плагинами. Я думаю о act_as_ *, системы аутентификации ..

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

1 голос
/ 20 мая 2011

Вы спросили, странно ли это?

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

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

Примеры драгоценных камней, которые выuse (bcrypt и mysql2) являются хорошими примерами некоторых очень общих задач, которые не нуждаются в каких-либо модификациях во время жизни вашего приложения.Вам не нужно будет менять крипто-протоколы, также как и соединения с базой данных не требуют изменений для конкретного приложения.

Но система аутентификации может потребовать адаптации, поэтому лучше полагаться на собственное независимое решение.Однако вы можете скопировать «их» решения, не ставя ваш проект в зависимость от «чужого» кода.Проект gnulib использует аналогичный подход.

ОБНОВЛЕНИЕ:

См. Статью http://www.aidanf.net/rails_user_authentication_tutorial. Там вы найдете несколько причин для написания собственной системы аутентификации.объяснил гораздо лучше чем я пытался;)

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