Продолжаю работу с ментатами 🤓
С начала занятия в Лаборатии я уже сразу заметил существенное снижение экранного времени, но все равно за последние 7 дней: 11 часов в ютубе, 8 часов в запретнограме, 7 часов в телеграме, 700 разброкировок телефона...
Само собой получилось в новом проекте вынести I/O на границы, хоть и использовал Entity Framework (больше для миграций и удобной инфраструктуры работы с БД). Не делал никаких абстракций репозиториев, просто отделил статические Persistence-классы с набором функций, с передачей контекста и нужных параметров внутри. Цикломатическая сложность как раз вышла 1-2. Все просто и понятно, не нужно бегать по boxed (матрёшке) зависимостям.
Мне никогда не нравилась Clean Architecture как раз из-за своей неоднозначности. Хотя бы теперь могу спокойно использовать I/O на границах / Порты/Адаптеры, хорошо понимая преимущества и недостатки...
От этого кстати стало понятно, зачем вообще алгосы на собесах спрашивают - если тип с мозгами и хорошо думает, то уж в спринге или асп нете разберётся :) А сидеть и "изучать" блэйзор, как вы в принципе и пишите, лажа! Лучше подумать о том, что вся программа на F# без io это одно большое выражение в смысле лямбда-исчисления. Все функции карированные, в качестве данных у нас константы, и вычисление программы это редукция этого выражения те последовательное применение бета-редукции...
Курс произвёл неизгладимое впечатление, особенно функциональные архитектуры. Ранее в основном работал с ООП и его подобием и насколько же после этого лаконичным и понятным выглядит функциональный стиль когда логика сосредоточена в наборе чистых функций, не хранящая никакого состояния, легко тестируемая и понятная.
Очень рад что удалось изучить и поупражняться с тем, о чём ранее читал, но никогда не использовал. Монады (узнал о монадах состояний) - показали как используя функциональный стиль можно собирать конвейер обработки данных. Event Sourcing (впервые узнал из книги Влада Хононова о DDD) - практика и эталонные примеры показали силу этого подхода если нужно моделировать фактор времени, восстанавливать состояние системы в определенный момент или текущее состояние по полному набору событий (или снапшоту если говорить об оптимизациях)...
(Тут речь про "Ясную архитектуру" - практика в архитектурных паттернах, там функциональщина слегка затрагивается по факту, а так по ней отдельный трек ФП)
Оказалось, что неделю назад они решили отказаться от синхронного вызова через RestTemplate и заменить его асинхронным через WebClient (непонятно, для чего им понадобился WebClient, если весь проект не реактивный и можно было обойтись CompletableFuture, но ладно). Вот тут мне и пригодились мои знания, полученные при выполнении задания по Дипломному проекту (реактивная вычислительная модель). Оказалось, что реактивную цепочку для запроса написали, а терминальную операцию (подписку на результат) забыли, поэтому запрос и не уходил...
Вы бы знали, какой у нас интересный расчет за использование LLM. Есть одно подразделение, которое монополизировало хостинг LLM. Аренда даже на 1 токен в месяц будет стоить 400 т.р. в месяц...
Post #2457
629
- ❤ 32
- ⚡ 4
- 👍 2
- 🤯 1