Пришел через нарушить следущий из принципов #solid - буковку I - Interface segregation - принцип разделения интерфейсов, который я иллюстрировал вышел.
Рассмотрим ситуацию: мы - банк. У нас много денег и высока цена ошибки. Айти огромное, а системы крайне сложны.
Мы можем принять волевое решение: любое действие оборачиваем в абстракцию "операция", OperationBase, для упрощения разработки которых платформенными командами пишется внутренний фреймворк.
Итого на выходе мы имеем шаблон, в котором предусмотрено единообразным способом:
1. Логирование ошибок и основных этапов, система метрик, трассировка используемых запросов.
2. Простой механизм использования кэша, скрывающий особенности реализации: методы Put и Get
3. Механизм для проведения и отката распределенной транзакции.
4. Механизм увязывания операций в цепочки.
5. Механизм авторизации и аутентификации.
При разработке метода, для получения какой-то максимально банальной информации, типа числа баллов бонусной программы, начисленных в прошлом месяце, нам нужно уделить внимание не-реализации распределенных транзакций, осознать место нашей операции в общем ландшафте, поотключать ненужные метрики.
Ценой ощутимой избыточности, мы получаем полностью прозрачную систему, относительно простую в поддержке. При переходе разработчика между направлениями осознание происходящего происходит намного быстрее.
Открываем код операции и сразу видим: кэш используется с такими-то политиками, распределенных транзакций не предусмотрено, логи искать по такому-то ключу, бизнес логика лежит в заранее отведённом месте, начинаем изучать.
#собес
Рассмотрим ситуацию: мы - банк. У нас много денег и высока цена ошибки. Айти огромное, а системы крайне сложны.
Мы можем принять волевое решение: любое действие оборачиваем в абстракцию "операция", OperationBase, для упрощения разработки которых платформенными командами пишется внутренний фреймворк.
Итого на выходе мы имеем шаблон, в котором предусмотрено единообразным способом:
1. Логирование ошибок и основных этапов, система метрик, трассировка используемых запросов.
2. Простой механизм использования кэша, скрывающий особенности реализации: методы Put и Get
3. Механизм для проведения и отката распределенной транзакции.
4. Механизм увязывания операций в цепочки.
5. Механизм авторизации и аутентификации.
При разработке метода, для получения какой-то максимально банальной информации, типа числа баллов бонусной программы, начисленных в прошлом месяце, нам нужно уделить внимание не-реализации распределенных транзакций, осознать место нашей операции в общем ландшафте, поотключать ненужные метрики.
Ценой ощутимой избыточности, мы получаем полностью прозрачную систему, относительно простую в поддержке. При переходе разработчика между направлениями осознание происходящего происходит намного быстрее.
Открываем код операции и сразу видим: кэш используется с такими-то политиками, распределенных транзакций не предусмотрено, логи искать по такому-то ключу, бизнес логика лежит в заранее отведённом месте, начинаем изучать.
#собес
Сегодня совершили переезд из Петрозаводска за полярный круг, в окрестности Кандалакши.
По пути посетили занятный арт-объект в Петрозаводске - памятник карельскому комару, сделанный из трактора.
Следом заехали к водопаду Кивач, где посмотрели вблизи на гнезда ласточек (дети в восторге), полазили по скалам у водопада и попробовали необычное мороженое. Оказалось, что мороженное с рыбьей икрой - это реально вкусно. Остальные вкусы (икра морского ежа и морские водоросли) так себе.
А потом был долгий преезд мимо скал, болот, озер и небольших бурных речек. Во время одной из остановок был найден первый в этом сезоне гриб: подосиновик.
Заночевали в придорожном мотеле чуть недоезжая Кандалакши. При заселении меня попросили расписаться за пожарную безопасность (!) и стребовали согласия на обработку персональных данных от всех членов экипажа.
По пути посетили занятный арт-объект в Петрозаводске - памятник карельскому комару, сделанный из трактора.
Следом заехали к водопаду Кивач, где посмотрели вблизи на гнезда ласточек (дети в восторге), полазили по скалам у водопада и попробовали необычное мороженое. Оказалось, что мороженное с рыбьей икрой - это реально вкусно. Остальные вкусы (икра морского ежа и морские водоросли) так себе.
А потом был долгий преезд мимо скал, болот, озер и небольших бурных речек. Во время одной из остановок был найден первый в этом сезоне гриб: подосиновик.
Заночевали в придорожном мотеле чуть недоезжая Кандалакши. При заселении меня попросили расписаться за пожарную безопасность (!) и стребовали согласия на обработку персональных данных от всех членов экипажа.