Найти в Дзене
Компромиссы в программировании: красота, скорость и здравый смысл Иногда кажется, что тормоза из-за архитектуры приложения. Что DDD — это про красивые диаграммы, а не про реальные задачи. Что вся эта модульность, слои, интерфейсы и DI только замедляют работу. Я частенько встречал подобное отношение у программистов. Но правда состоит в том, что в каждом конкретно случае надо разбираться, что именно тормозит. Был проект, где требовалось быстро и стабильно обработать большой поток данных. Всё вроде делали правильно: 🟠 чистая архитектура 🟠 разнесённые слои: контроллер, сервис, домен, репозиторий 🟠 маппинги, DTO, интерфейсы — полный фарш Код получался аккуратный, читаемый, поддерживаемый. Но после релиза бизнес пишет: — «Что-то тормозит. Секунды 2 отклика на конкретный запрос. Почему?» Естественная реакция: «Наверное, архитектура перегружена. Надо упростить!» Но я решил не спешить, а сначала прогнал всё это через профайлер. Результаты: ✅ основное время уходит в запрос к БД ✅ ORM вёл к ленивым выборкам, вызывающим проблему N+1 (все в курсе что это?) ✅ сериализация — тащим лишние поля ✅ сам проход по всем слоям занимает всего лишь миллисекунды То есть, архитектура не была причиной тормозов. Просто система была неоптимальна в других местах. Но при этом был и другой проект, где из-за чрезмерного количества обёрток и абстракций 🟠 каждое изменение в бизнес-логике требовало править 6–8 файлов 🟠 а простой CRUD завязывался на 5 слоёв, хотя этого никто не просил И вот там уже было не торможение, а "архитектурная перегрузка", которая била по velocity команды. 💡 Компромисс здесь не между «хорошей архитектурой» и «быстрой работой». Реальный компромисс — между: ✅ чистотой и здравым смыслом ✅ инженерной красотой и разумной простотой ✅ будущим развитием и задачей «сделать на этой неделе» Если ты автоматически винишь архитектуру в медленной работе — остановись. Если ты слепо лепишь 8 слоёв, даже когда можно обойтись одним — тоже остановись. Инженер — это не тот, кто делает "по канону", а тот, кто умеет соотнести абстракцию с реальностью. #инженерия #архитектура #разработка #программирование #инженерныекомпромиссы
4 месяца назад
Машина Цетлина и ее предшественник «Кора-3» Бонгарда
Автор статьи - Шеля Айзекович Губерман. Аннотация В 2018 году была представлена новая обучающаяся машина — машина Цетлина. Она обладает рядом особенностей. Во-первых, задачи формулируются на языке пропозициональной логики. Во-вторых, операции выполняются в низкоразмерных подпространствах входного пространства. Машина Цетлина лишена значительного недостатка современных нейросетей: сложности в интерпретации решений и при этом демонстрирует высокие достижения. Цель данной работы — напомнить о том, что...
11 месяцев назад
Искусственный интеллект. Искусственный? — Да. Интеллект? — Нет.
автор оригинальной научной статьи: Шелия Айзекович Губерман Сколько бы вы ни повторяли "халва, халва", вы не почувствуете сладость во рту. Ходжа Насреддин В последние 10 лет популярность искусственного интеллекта растет чрезвычайно быстро благодаря разработке новых версий нейронных сетей — распознавателей образов и больших языковых моделей. Достижения реальны и охватывают многие области бизнеса, повседневной жизни и человеческой деятельности. Автор является активным пользователем ChatGPT. Цель данной...
1549 читали · 1 год назад
Так ли важна математика для программистов?
Автор оригинального текста: Steve Yegge Последние 15 месяцев после прочтения биографии Джонни фон Неймана, я работал над восстановлением своих заржавевших математических навыков. Я прочитал огромную стопку книг по математике, и у меня осталась еще целая куча непрочитанных. И наконец-то начинает что-то получаться. Давайте я расскажу вам об этом. Общепринятое мнение ни о чем не говорит Во-первых, программисты не считают, что математика им нужна. Я слышу это очень часто, и я почти не знаю никого, кто бы был с этим не согласен...
868 читали · 1 год назад
Надо ли учить шаблоны проектирования? Они же GoF паттерны.
Бинарный салют, друзья! На связи снова EngineerSpock. Мы уже как-то раз вскользь касались темы паттернов проектирования и стоит ли их учить. То был разбор ролика Лёши Корепанова, где он рассуждал на эту тему и в целом приходил к выводу, что учить паттерны не обязательно. Посмотрите тот разбор по ссылке, весьма познавательно. В этой статье я хочу несколько более подробно поговорить об этой теме, постараться всех успокоить и дать рекомендации по изучению паттернов. GoF-паттерны и преимущества их применения В первую очередь, в этой статье мы будем говорить о так называемых GoF-паттернах...
241 читали · 1 год назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала