Содержание
- 2. Постановка задачи Состояние системы Модель А + Модель B + Модель C Требуется просматривать состояние "до"
- 3. Варианты решения Inline code Callback before_save, after_save Observer paper_trail, act_as_versioned Decorator method_decorators Aspect aspectr, aquarium
- 4. Inline code save_before( a, b, c ); change( a, b, c ); save_after( a, b, c
- 5. Callback before_save :save_state_before after_save :save_state_after Сохранение состояния 1 модели (не группы) Дополнительный код в моделях
- 6. AR::Observer: обычная реализация class UserObserver def after_save(user) … end end Сохранение состояния 1 модели (не группы)
- 7. AR::Observer: реализация через gem class User # команда подключения функционала гема has_paper_trail # acts_as_versioned end Сохранение
- 8. Decorator class UserService +Log_user_state def approve(user_id) User.find(user_id).approve() Billing.add_user(user_id) Complaint.scope_user(user_id).each(&:close) save! end end Нужно много различных декораторов
- 9. Aspect Кто знает, что такое АОП?
- 10. Aspect AOP Aspect Advice Join Point Программа … … user.set_role("admin") … … Aspect class UserAspect advice
- 11. Aspect class Changelog watch UserService, [:approve, :disapprove], { state_before: lambda{ |user_id| … }, state_after: lambda{ …
- 12. Выбор AspectR (2002) Aquarium - gem install aquarium
- 13. Практика Aquarium мощный слишком Упрощение интерфейса более жёсткие требования обработка ошибок спокойный сон после release
- 14. Откат в жизни модератора Детальная трассировка изменений У меня все ходы записаны (с) 12ст Легко откатить
- 15. Ссылки http://bit.ly/cR400e - AOP @ wikipedia http://bit.ly/15q8bT - Decorator @ wikipedia http://bit.ly/It8d7l - method_decorators http://bit.ly/KXu9ZA -
- 17. Скачать презентацию









![Aspect class Changelog watch UserService, [:approve, :disapprove], { state_before: lambda{ |user_id| …](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/420239/slide-10.jpg)




Технология школы социализации. «Диалог культур».
4aca6da26f15a5dda9c19e69ebf02841
Когнитивные функции
Федеральный бюджет: от казначейского исполнения к финансовому менеджменту
Блок Александр Александрович
День учителя (1)
МОДЕЛИРОВАНИЕ ВЗАИМОДЕЙСТВИЯ БЕЛКОВ С МАЛЫМИ МОЛЕКУЛАМИ – РАЗРАБОТКА ЭФФЕКТИВНОГО ИЕТОДА СЛЕПОГО ДОКИНГА Ю.Н. ВОРОБЬЕВ Institute Chemic
Игра Зарница
ОПТИМИЗАЦИЯ ЭТАПА КОДИРОВАНИЯ СТАНДАРТА JPEG НА ОСНОВЕ НЕЭТАЛОННОГО КРИТЕРИЯ КАЧЕСТВА
Театральная студия Лики
Во главе российского образования
Хиромантия. Нижние смычки на пальцах - симметрия жизненных процессов их хронология. Определение реперных точек
Денежные выплаты гражданам, пребывающим в мобилизационном людском резерве
Исследование влияния наружной рекламы на водителей
КОНДИЦИОНЕРЫ АВТОНОМНЫЕ ДЛЯ АТОМНЫХ ЭЛЕКТРОСТАНЦИЙ КСА – 6,5/25 1КСА – 6,5/25
Самооценка ученика как фактор достижения планируемых результатов
Предложение партнерства с Теле2
Географическая долгота. Географические координаты
Антимонопольная политика в России и предпринимательство
Экономика в краткосрочном периоде. Модель кейнсианского креста
Добро пожаловать в Carcade!
2f4ed696e0fc8983d6d334c7d189bf4785fad4c5-1664616051123
Что делать, если наткнулся на мину
Презентация на тему «Самбо» - вид спортивного единоборства
Дослідження взаємодії каната з футеровкою приводного шківа підйомної машини
Political committee
Наука и образование в 19 веке
Mass media