Пустой дистрибутив. Абсолютно любое действие в нём начинается с tar zxf, configure, make install. Разговоры о его надежности заканчивается через полчаса после необходимости поставить какой-нибудь htop или monit. Ещё через час после разломанного в крошево дистрибутива заканчиваются рассказы о том, что существуют какие-то внешние репозитории, в которых что-то есть.
Архив за год: 2017
Рыбалка
Неожиданно для себя увлекся рыбалкой. Приобрел удочку 6-ти метровую, лески, крючки и прочее. Из имеющегося удилища собрал фидер.
Успел уже сделать три вылазки. Первая — Клязьма, поплавок. Итог — две плотвички с палец +) Вторая — Клязьма, фидер и поплавок. Итог — два подлещика и парочка плотвичек.
Третий — платный пруд в Аксенках, фидер. Итог — 2 карпа 1.7 и 0.6 кг.
Планирую продолжать и совершенстововаться +)
Про фичи, контексты и boundary context
Фичи формируют контексты (boundary context). Контексты пересекаются но в целом весьма изолированы. Их нутро не зависит друг от друга.
Возьмем к примеру каталог товаров и прикинем какие у нас тут есть контексты:
- пользователи — авторизация, восстановление доступа, управление профилем
- ордеры — весь цикл жизни ордера в системе
- каталог товаров — управление каталогом, просмотр деталей о продукте
- поиск — весь поиск.
В этом примере наиболее интересный «модуль» — это поиск. Он может искать для нас продукты в каталоге и ордеры. Но они ничего не знает о ордерах или продуктах. Скажем когда мы ищем ордеры — мы просим модуль поиска найти для нас «ордеры» и он всего-лишь вернет нам айдишки и информацию которая важна нам для поиска. Далее для этих айдишек мы можем уже запросить детали у модуля каталога.
Синхронизация этих модулей — ивенты. Кто-то обновил продукт — кидаем ивент — синхронизируем данные в других контекстах.
Профит тут в том что мы можем отдельно посадить чувака заниматься поиском, и отдельно чувака заниматься ордерами. Можем перевести поиск на свою СУБД которая хорошо умеет полнотекстовый поиск (например эластика). И при этом если у нас добавляются фичи в каталог — это не сильно влияет на поиск.
https://habrahabr.ru/company/englishdom/blog/328550/
Про гибкость
Гибкость — это когда нет зависимости между моделей данных, бизнес логикой, поведением и местом хранения данных.
https://habrahabr.ru/post/327746/
Про дублирование кода в контроллерах
Перестаньте выносить повторяющийся код. Дублирование кода — это нормально. Особенно в контроллерах. Когда мы говорим про DRY многие забывают про Try. Далеко не все дублирование нужно устранять. В целом мотивация этого действа весьма простая — если в коде будут баги и этот код дублируется — то надо править в нескольких местах. Однако с другой стороны, когда речь идет про такие вещи как контроллеры, которые декларируют последовательность действий, очень удобно когда весь флоу прописан последовательно и прочитать его можно без прыжков между файлами. А еще веселее становится после того, как через месяц после устранения дублирования вдруг оказывается что «некоторые штуки то оказывается были просто похожи но не являлись дублированием». И разворачивать всю эту штуку уже не так приятно. Та же история и с «поведениями» для Yii. Они конечно здорово и весело, но при определенном масштабе создают сложности для понимания кода.
Так что перед тем как устранять дублирование такими примитивными механизмами как трейты, следует задуматься:
- А не вытекла ли у меня логика случайно из какого-то объекта? Может она должна быть где-то инкапсулирована?
- А не проще ли мне вынести эту логику в какой-то отдельный объект, который будет медиатором между той и этой штукой (например между контроллером и моделью данных, или мидлвари, или еще чего).
- А как много дублирования? одно и то же в двух местах? не, пока рано что-то с этим делать. Добавлю пометку на будущее а если надо будет править буду уже думать.
https://habrahabr.ru/post/326960/#comment_10200012