Я думаю, что здесь есть больший «мета-вопрос», на который можно было бы ответить, а именно: «когда можно положиться на внешние библиотеки, чтобы ускорить время разработки?»
Сторонние библиотеки часто хороши и могут значительно сократить время разработки, однако есть серьезная проблема, Джоэл Спольски называет это «законом утечек абстракций». Если вы посмотрите на Google, его пост появится первым. По сути, это означает, что компромисс во времени разработки означает, что вы понятия не имеете, что происходит под покровом. Поэтому, когда что-то ломается, вы полностью застряли и имеете очень ограниченные методы отладки. Это также означает, что если вы нажмете на одну из функций, которые просто не поддерживаются в RAILS, которая вам действительно нужна, у вас не будет другого шага, кроме как написать эту функцию самостоятельно, если вам повезет. Многие библиотеки могут затруднить это.
Эта проблема сильно обгорела в моем магазине разработчиков. Наши решения работали нормально при нормальной нагрузке, но мы обнаружили, что сторонние библиотеки подписок, которые мы использовали, просто не выдерживали нагрузки, с которой мы столкнулись, когда наш сайт начал получать большое количество одновременных пользователей. Это ставит нас в очень трудное место; по сути, мы должны сами переписать весь сервис подписки, учитывая производительность. Это означает, что мы потратили впустую все время, потраченное на использование библиотеки.
Сторонние библиотеки могут быть полезны для небольших и средних приложений; они могут значительно сократить время разработки и скрыть сложности, с которыми нет необходимости сталкиваться на ранних стадиях разработки. Однако, в конце концов, они догонят вас, и вам, вероятно, придется переписать или переработать свое решение, чтобы преодолеть «закон об утечках»