Journal design pattern - ищу информацию или пример

design-patterns
Теги: #<Tag:0x00007fedc46c62b8>

#1

Коллеги, меня недавно спросили что я знаю о паттерне Journal. Я не нашел что ответить, не вспомнил ничего похожего. Пытаюсь нагуглить и не нахожу информации. То-ли я не тем гуглом пользуюсь, то-ли не там ищу. Если вы слышали о Journal, прошу подкинуть пример или ссылку на информацию. Заранее благодарю.


(Yaroslav Pernerovskyy) #2

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


#3

Стремный паттерн – хороший вопрос для интервью :smile:


(Михаил Братухин) #4

Мне яндекс про него только такую штуку предложил:
NAV Design Pattern – Journal Template-Batch-Line
Но чутка попинав гугл сразу же пришел к другому наименованию - transaction design pattern:

  1. https://www.slideshare.net/helmiJ2ee/transaction-design-patterns
  2. пример кода
    Но может вас о другом чем-то спрашивали.

Листал по диагонали, ничего не понял :grinning:
В контексте автотестирования сходу не могу придумать проблематику, которую можно было бы решить данным шаблоном. Скорее проблемы возникнут, если начинаешь бездумно пихать всё подряд в проект.


#5

Да, мне тоже не ясно какую проблему можно решить используя этот паттерн в контексте авоматизации тестирования


(Alexandr Navara) #6

Думаю, можно решать те же что и возникают в процессе разработки) Фактически, обеспечить атомарность бизнес-операций. У Фаулера этот паттерн называется unit of work Мне кажется, это название наиболее точно отображает суть.
Пример применения в тестировании такой вот придумался: есть степ на уровне бизнес-логики, используемый в setup-методах (пусть это будет создание пользователя), и есть его реализация для тестирования - быстрая, в обход валидаций, короче, прямо в базу. Выполнение этого степа проходит в несколько этапов (запросы в базу на создание записи о юзере, релейшенов между ним и таблицей пермишенов, что-то еще…). Упасть может любой из запросов. База обеспечит откат к предыдущему состоянию в таком случае, однако предшествующие шаги уже будут закоммичены. Таким образом, неплохо было бы сделать так чтобы вся эта группа запросов соответствующая созданию пользователя считалась одним действием. То есть, при падении любого из шагов база откатывалась бы в состояние предшествующее первому запросу.


#7

Получил информацию от авторов вопроса. Вобщем, никакой это не Journal. Название паттерна journey. Как говорится, lost in translate. Что касается самого паттерна, то описание по ссылке ниже


(vmaximv) #8

Когда уже начнут отличать архитектуру от паттерна т_т


#9

O tempora, o mores