Чем include, extend и prepend отличается от наследованием и когда что выбирать?

Ruby / RailsMiddleRuby OOP и Object ModelСравнениеruby oop и object model|include|ruby|rails|includeextend и prepend

Что хотят услышать интервьюеры:

Сравнение: «include, extend и prepend» обычно оценивают в паре с наследованием. Выбор зависит от читаемости, Rails conventions, стоимости поддержки, безопасности, нагрузки и тестируемости.

Ответ:

Когда выбирать include, extend и prepend: когда его свойства прямо решают задачу, а не просто выглядят привычно.

Плохой ответ: «так принято в Rails» без объяснения последствий.

module Auditable end class User include Auditable end

Источники

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