Топ 10 рекомендаций по работе с БД с Хайлоада
Но я не мог просто переписать пункты со слайда, вырванные из контекста, поэтому я решил подробнее пройтись по каждому пункту и расписал их у себя в блоге с примерами:
↘️ https://novikov-ai.github.io/ru/posts/database-tips/
Если нет времени читать блог или вчитываться в слайд и делать какие-то выводы, то вот самая суть — фактически готовый рецепт по работе с БД:
1. Ограничивайте пул коннектов, ставьте PgBouncer если нужно.
2. Транзакция = один коннект; держите транзакции короткими.
3. Не держите коннект в простое и не делайте внешние вызовы внутри транзакции.
4. Вынесите HTTP в outbox/после commit.
5. Аналитика и тяжёлые запросы — на реплику или в DWH.
6. Индексы — подумайте перед созданием; composite > набор отдельных.
7. Переписывайте OR/NOT/IS NULL в эквивалент, чтобы сохранить индекс.
8. Планируйте keyset pagination заранее.
9. JSON — удобно, но не для часто фильтруемых полей.
10. Профилируйте, измеряйте, затем применяйте «нетипичные» архитектурные приёмы.
Если знаете другие рецепты по работе с БД, проверенные временем и продом, пожалуйста, делитесь ⤵️
@time2code
Но я не мог просто переписать пункты со слайда, вырванные из контекста, поэтому я решил подробнее пройтись по каждому пункту и расписал их у себя в блоге с примерами:
↘️ https://novikov-ai.github.io/ru/posts/database-tips/
Если нет времени читать блог или вчитываться в слайд и делать какие-то выводы, то вот самая суть — фактически готовый рецепт по работе с БД:
1. Ограничивайте пул коннектов, ставьте PgBouncer если нужно.
2. Транзакция = один коннект; держите транзакции короткими.
3. Не держите коннект в простое и не делайте внешние вызовы внутри транзакции.
4. Вынесите HTTP в outbox/после commit.
5. Аналитика и тяжёлые запросы — на реплику или в DWH.
6. Индексы — подумайте перед созданием; composite > набор отдельных.
7. Переписывайте OR/NOT/IS NULL в эквивалент, чтобы сохранить индекс.
8. Планируйте keyset pagination заранее.
9. JSON — удобно, но не для часто фильтруемых полей.
10. Профилируйте, измеряйте, затем применяйте «нетипичные» архитектурные приёмы.
Если знаете другие рецепты по работе с БД, проверенные временем и продом, пожалуйста, делитесь ⤵️
@time2code
👍6
Почему я стал писать еще меньше кода?
И нет, AI меня пока не заменил.
2.5 года назад уже было мое ворчание по этому вопросу, и я решил его продолжить.
Не всем может быть очевидно (я из прошлого точно бы не поверил), но синьор-разработчики пишут в разы меньше года, чем мидлы.
Делаем ремарку, что это применимо не во всех областях. Есть скилловые ребята, которые занимаются системной, платформенной разработкой или поддержкой инфры, поэтому тут возможны отклонения.
Но я работаю в продукте и сейчас пишу про него.
Хлеб синьора
Десятки пул-реквестов и различных документов, дизайн-ревью новых архитектур и сотни комментариев к ним.
Бесконечные обсуждения работы нового домена и прочие коммуникации — хлеб старших инженеров в команде.
Про дофамин
С одной стороны, это закономерно, но с другой — легко заскучать по временам, когда есть код и ничего кроме кода.
Код написан, ревью пройдено, продакшн не упал — вы великолепны 🙂
Сейчас дофамин стал более сложным. Его нужно научиться добывать, когда твой результат недетерминирован.
Что делать?
Осознать, что с эволюцией в карьере меняются также и задачи.
Применять новые подходы и по-другому оценивать результат своей работы.
И, конечно, научиться получать удовольствие от нового, если это целиком не противоречит вашей конституции.
@time2code
И нет, AI меня пока не заменил.
2.5 года назад уже было мое ворчание по этому вопросу, и я решил его продолжить.
Не всем может быть очевидно (я из прошлого точно бы не поверил), но синьор-разработчики пишут в разы меньше года, чем мидлы.
Делаем ремарку, что это применимо не во всех областях. Есть скилловые ребята, которые занимаются системной, платформенной разработкой или поддержкой инфры, поэтому тут возможны отклонения.
Но я работаю в продукте и сейчас пишу про него.
Хлеб синьора
Десятки пул-реквестов и различных документов, дизайн-ревью новых архитектур и сотни комментариев к ним.
Бесконечные обсуждения работы нового домена и прочие коммуникации — хлеб старших инженеров в команде.
Про дофамин
С одной стороны, это закономерно, но с другой — легко заскучать по временам, когда есть код и ничего кроме кода.
Код написан, ревью пройдено, продакшн не упал — вы великолепны 🙂
Сейчас дофамин стал более сложным. Его нужно научиться добывать, когда твой результат недетерминирован.
Что делать?
Осознать, что с эволюцией в карьере меняются также и задачи.
Применять новые подходы и по-другому оценивать результат своей работы.
И, конечно, научиться получать удовольствие от нового, если это целиком не противоречит вашей конституции.
@time2code
Telegram
Новиков > путь в Big Tech
Почему я стал меньше писать кода?
Это размышление не про качество.
Хотя, очевидно, что опытный разработчик может написать в 5 раз меньше строк кода для достижения лучшего результата.
В лихие времена, когда я автоматизировал проектирование, поставляя специалистам…
Это размышление не про качество.
Хотя, очевидно, что опытный разработчик может написать в 5 раз меньше строк кода для достижения лучшего результата.
В лихие времена, когда я автоматизировал проектирование, поставляя специалистам…
💯4👍2
Ноябрь 2025:
ключевые события
✔️ Познакомился с базой по ассемблеру x86/x64, написал простенькую консольную игру (код).
✔️ Попрактиковался разделять ответственность широких интерфейсов на более узкие, чтобы реализация зависела от того, что действительно необходимо.
✔️ Продолжаю активную работу с менти. Двум человекам уже удалось закрыть запросы, которые были сформированы на менторство 3 и 6 месяцев назад, сейчас формируем следующую цели.
✔️ Провел десятки код-ревью пул-реквестов и написал комментариев больше, чем строк кода.
✔️ Написал серьезный архитектурный документ по миграции нашего сервиса из одной доменной модели в другую. Значительно улучшил свои знания о работе с системой, планирую поделиться с командой на воркшопе.
🪫 Случился классический перегруз под конец года: времени, энергии и мотивации перестало хватать, поэтому по курсу по SD просрочил все DL на сдачу проектов и договорился перенестись на следующий поток.
посты
⭐️ Хайлайты Highload -> читать
🔖 Топ 10 рекомендаций по работе с БД с Хайлоада -> читать
🔖 Почему я стал писать еще меньше кода? -> читать
#дайджест
@time2code
ключевые события
✔️ Познакомился с базой по ассемблеру x86/x64, написал простенькую консольную игру (код).
✔️ Попрактиковался разделять ответственность широких интерфейсов на более узкие, чтобы реализация зависела от того, что действительно необходимо.
✔️ Продолжаю активную работу с менти. Двум человекам уже удалось закрыть запросы, которые были сформированы на менторство 3 и 6 месяцев назад, сейчас формируем следующую цели.
✔️ Провел десятки код-ревью пул-реквестов и написал комментариев больше, чем строк кода.
✔️ Написал серьезный архитектурный документ по миграции нашего сервиса из одной доменной модели в другую. Значительно улучшил свои знания о работе с системой, планирую поделиться с командой на воркшопе.
🪫 Случился классический перегруз под конец года: времени, энергии и мотивации перестало хватать, поэтому по курсу по SD просрочил все DL на сдачу проектов и договорился перенестись на следующий поток.
посты
⭐️ Хайлайты Highload -> читать
🔖 Топ 10 рекомендаций по работе с БД с Хайлоада -> читать
🔖 Почему я стал писать еще меньше кода? -> читать
#дайджест
@time2code
🔥5
🗣️ Самое сложное в разработке
Неочевидно, но самое сложное в любой сфере (программная инженерия не исключение) — это коммуникации.
В разработке это ухудшается тем, что многие технически сильные специалисты имеют слабые навыки коммуникации.
И если разработчик, который работает только с кодом, особых проблем может не испытывать на своем уровне, то когда человек вырастает в руководящую роль, то отсутствие уверенных навыков может стать проблемой.
. . .
В октябре договорились с платформенной командой о разработке MVP, который должен закрыть нашу потребность в новой фиче.
Зафиксировали зону ответственности каждого и ожидания.
Спустя месяц получили новую архитектуру существующей системы, которая решала большой спектр задач, включая и нашу, но ресурсов на разработку требовала в разы больше.
Это был явно не MVP и совсем не то, о чем мы изначально договорились.
Причины могли быть разные: от обыкновенного недопонимания до политической игры, где под видом одной договоренности команда решила закрыть какие-то свои потребности.
В итоге пришлось эскалировать ситуацию на другой уровень, после чего, наконец, всем удалось выровняться и договориться о решении.
Потребовалось почти 2 месяца, чтобы найти понимание.
В итоге мы оказались в первоначальной точке с необходимостью в MVP, с потерей большого количества времени, но с твердым пониманием куда теперь точно идем.
Могло ли это произойти раньше?
— Со своей стороны мне сложно ответить, так как не обладаю всем контекстом и ответственный только за технику.
Пусть этот вопрос останется открытым.
Но ощущение, что регулярные хелс-чеки и инкрементальный подход помогли бы сгладить и эту ситуацию.
Как инженер на своем уровне, заметил, что все большее значение придаю качественной и прозрачной коммуникации и прививаю это менти, так как ее отсутствие влечет значительный урон для процессов команды и компании.
@time2code
Неочевидно, но самое сложное в любой сфере (программная инженерия не исключение) — это коммуникации.
В разработке это ухудшается тем, что многие технически сильные специалисты имеют слабые навыки коммуникации.
И если разработчик, который работает только с кодом, особых проблем может не испытывать на своем уровне, то когда человек вырастает в руководящую роль, то отсутствие уверенных навыков может стать проблемой.
. . .
В октябре договорились с платформенной командой о разработке MVP, который должен закрыть нашу потребность в новой фиче.
Зафиксировали зону ответственности каждого и ожидания.
Спустя месяц получили новую архитектуру существующей системы, которая решала большой спектр задач, включая и нашу, но ресурсов на разработку требовала в разы больше.
Это был явно не MVP и совсем не то, о чем мы изначально договорились.
Причины могли быть разные: от обыкновенного недопонимания до политической игры, где под видом одной договоренности команда решила закрыть какие-то свои потребности.
В итоге пришлось эскалировать ситуацию на другой уровень, после чего, наконец, всем удалось выровняться и договориться о решении.
Потребовалось почти 2 месяца, чтобы найти понимание.
В итоге мы оказались в первоначальной точке с необходимостью в MVP, с потерей большого количества времени, но с твердым пониманием куда теперь точно идем.
Могло ли это произойти раньше?
— Со своей стороны мне сложно ответить, так как не обладаю всем контекстом и ответственный только за технику.
Пусть этот вопрос останется открытым.
Но ощущение, что регулярные хелс-чеки и инкрементальный подход помогли бы сгладить и эту ситуацию.
Как инженер на своем уровне, заметил, что все большее значение придаю качественной и прозрачной коммуникации и прививаю это менти, так как ее отсутствие влечет значительный урон для процессов команды и компании.
@time2code
👍4🔥3❤1
⚡️ Сколько у вас энергии под конец года?
Final Results
37%
🪫 — Еле держусь.
42%
🏋️♂️ — Есть еще запас, чтобы эффективно работать.
13%
🔋 — Полон сил, сверну горы!
8%
😵 — Давайте после январских…
Новиков > путь в Big Tech
⚡️ Сколько у вас энергии под конец года?
Замедлиться
Приятно видеть, что более половины ответивших или полны энергии, или имеют неплохой запас для эффективной работы.
Восхищаюсь такими людьми. Как вам удается?
Признаться, у меня год был высоко интенсивным, поэтому сейчас чувствую истощение.
Возможно, стоило лучше планировать отпуск или «работать не усерднее, а умнее».
Так или иначе, несмотря на некоторые инициативы, которые я начинал в течение года и замораживал, чтобы совсем не упасть без сил, прошедшим годом я доволен.
Рефлексировать, как обычно, буду позже, но сейчас хочется явно замедлиться.
Это недостаток работы в IT.
Невозможно постоянно быть в ресурсе и мощно перформить. Это очень быстрый путь к выгоранию и отторжению того, что вы делаете.
Поэтому я плавно последние месяцы стараюсь переходить в энергосберегающий режим.
Пусть не все поставленные цели за год я выполню и не все запланированное успею завершить, но тот небольшой объем скопленной энергии под конец года поможет мне спокойно завершить год и подготовить себя к следующему.
@time2code
Приятно видеть, что более половины ответивших или полны энергии, или имеют неплохой запас для эффективной работы.
Восхищаюсь такими людьми. Как вам удается?
Признаться, у меня год был высоко интенсивным, поэтому сейчас чувствую истощение.
Возможно, стоило лучше планировать отпуск или «работать не усерднее, а умнее».
Так или иначе, несмотря на некоторые инициативы, которые я начинал в течение года и замораживал, чтобы совсем не упасть без сил, прошедшим годом я доволен.
Рефлексировать, как обычно, буду позже, но сейчас хочется явно замедлиться.
Это недостаток работы в IT.
Невозможно постоянно быть в ресурсе и мощно перформить. Это очень быстрый путь к выгоранию и отторжению того, что вы делаете.
Поэтому я плавно последние месяцы стараюсь переходить в энергосберегающий режим.
Пусть не все поставленные цели за год я выполню и не все запланированное успею завершить, но тот небольшой объем скопленной энергии под конец года поможет мне спокойно завершить год и подготовить себя к следующему.
@time2code
🔥4❤2👍1
🥶 Приходит фичафриз, но как продержаться до конца года?
У нас было 3 неоцененных, 2 недописанных TDR'а, 1 селф-ревью и 10 дней перед Новым Годом...
Для кого-то время фичафриза очень благоприятное: если что-то нужно было успеть, вы или успели, или нет — в любом случае уже можно расслабиться; кто-то считает раз новые выкатки фичей заморожены, то ничего плохого не должно случиться и тоже начинает потихоньку отдыхать; а кто-то продолжает работать.
Работаем
У меня 2025-ый прошел под флагом архитектурных документов.
Их было немало написано, а еще больше — прочитано.
Забавно, но это первый фичафриз, от которого я никак не зависшу в плане своей работы.
Документ должен быть написан и заревьюен в не зависимости от того можно ли что-то катить на прод или нет.
Поэтому предвкушаю интересные полторы рабочие недели, в которые нужно будет еще как-то уместить предновогоднюю суету...
По-доброму завидую тем, кто взял отпуск на последнюю неделю и уже отдыхает.
Я же вчера принял очередное решение по дисциплинированию себя, иначе ничего не успею.
Приятное
Но есть и приятное: ребята, менторством которых занимаюсь, достигают своих целей на менторинг и дают хороший фидбек, а это всегда отрадно.
А еще среди коллег в среду организуем турнир по шахматам Фишера, если ни разу не играли, то порекомендую ;)
Все это ^ заряжает энергией и помогает достигать своих целей, переключая контекст с рабочих задач.
Совет
Поэтому, если вдруг сильно устали, то попробуйте переключиться на другую деятельность.
Пусть приятные моменты дадут сил продолжать.
Или уже отложите в корзину "после январских".
@time2code
У нас было 3 неоцененных, 2 недописанных TDR'а, 1 селф-ревью и 10 дней перед Новым Годом...
Для кого-то время фичафриза очень благоприятное: если что-то нужно было успеть, вы или успели, или нет — в любом случае уже можно расслабиться; кто-то считает раз новые выкатки фичей заморожены, то ничего плохого не должно случиться и тоже начинает потихоньку отдыхать; а кто-то продолжает работать.
Работаем
У меня 2025-ый прошел под флагом архитектурных документов.
Их было немало написано, а еще больше — прочитано.
Забавно, но это первый фичафриз, от которого я никак не зависшу в плане своей работы.
Документ должен быть написан и заревьюен в не зависимости от того можно ли что-то катить на прод или нет.
Поэтому предвкушаю интересные полторы рабочие недели, в которые нужно будет еще как-то уместить предновогоднюю суету...
По-доброму завидую тем, кто взял отпуск на последнюю неделю и уже отдыхает.
Я же вчера принял очередное решение по дисциплинированию себя, иначе ничего не успею.
Приятное
Но есть и приятное: ребята, менторством которых занимаюсь, достигают своих целей на менторинг и дают хороший фидбек, а это всегда отрадно.
А еще среди коллег в среду организуем турнир по шахматам Фишера, если ни разу не играли, то порекомендую ;)
Все это ^ заряжает энергией и помогает достигать своих целей, переключая контекст с рабочих задач.
Совет
Поэтому, если вдруг сильно устали, то попробуйте переключиться на другую деятельность.
Пусть приятные моменты дадут сил продолжать.
Или уже отложите в корзину "после январских".
@time2code
Telegram
Новиков > путь в Big Tech
Секрет хорошего дизайна, о котором знают все гиганты в IT [2/2]
Итак, Tech Design Review. Что за ним скрывается?
Процесс будет описан так, как это принято в Авито. В других компаниях он может отличаться, так как компании выстраивают внутренние процессы…
Итак, Tech Design Review. Что за ним скрывается?
Процесс будет описан так, как это принято в Авито. В других компаниях он может отличаться, так как компании выстраивают внутренние процессы…
🔥3
Декабрь 2025:
🍾 Всех с Наступающим Новым Годом! Пусть год будет спокойным, счастливым и плодородным.
ключевые события
✔️ 31 декабря — «отличное» время для донаписания селф-ревью. Но, наконец, оно готово и можно расслабиться.
✔️ Толк подвел статистику и выяснилось, что у меня количество встреч за год выросло в x1.2 по сравнению с прошлым (23 506 минут за год)
✔️ Написал архитектурный документ по незнакомому домену(финтех).
✔️ Отревьюил много TDR'ов.
✔️ Изучал разное с точки зрения ФП: OCP, LSP, ISP
✔️ Устал.
посты
⭐️ Самое сложное в разработке -> читать
🔖 Замедлиться -> читать
🔖 Приходит фичафриз, но как продержаться до конца года? -> читать
#дайджест
@time2code
🍾 Всех с Наступающим Новым Годом! Пусть год будет спокойным, счастливым и плодородным.
ключевые события
✔️ 31 декабря — «отличное» время для до
✔️ Толк подвел статистику и выяснилось, что у меня количество встреч за год выросло в x1.2 по сравнению с прошлым (23 506 минут за год)
✔️ Написал архитектурный документ по незнакомому домену(финтех).
✔️ Отревьюил много TDR'ов.
✔️ Изучал разное с точки зрения ФП: OCP, LSP, ISP
✔️ Устал.
посты
⭐️ Самое сложное в разработке -> читать
🔖 Замедлиться -> читать
🔖 Приходит фичафриз, но как продержаться до конца года? -> читать
#дайджест
@time2code
❤2
Итоги 2025 🎆
Второй год подряд я ставлю годовые цели, используя OKR.
У меня было 4 амбициозных цели. Каждая со своим приоритетом.
Жесткая приоритизация целей — это то, что решил попробовать в 2025. И это хорошо сработало: я фокусировался на достижении максимального приоритета, оставляя в тени все остальное.
Итак посмотрим, что получилось.
Здесь я предлагаю перейти в удобный Web View и прочитать в моем блоге подробности:
↘️ https://novikov-ai.github.io/ru/posts/year-highlights-2025/
TLDR
Основной приоритет на год был закрыт, но оказался настолько большим и ресурсозатратным, что выбил все остальное.
Да, не все получилось, но ретроспективно могу сказать, что годом и своим перформансом доволен.
Анализируем, делаем выводы, двигаемся дальше.
#итоги
@time2code
Второй год подряд я ставлю годовые цели, используя OKR.
У меня было 4 амбициозных цели. Каждая со своим приоритетом.
Жесткая приоритизация целей — это то, что решил попробовать в 2025. И это хорошо сработало: я фокусировался на достижении максимального приоритета, оставляя в тени все остальное.
Итак посмотрим, что получилось.
Здесь я предлагаю перейти в удобный Web View и прочитать в моем блоге подробности:
↘️ https://novikov-ai.github.io/ru/posts/year-highlights-2025/
TLDR
Основной приоритет на год был закрыт, но оказался настолько большим и ресурсозатратным, что выбил все остальное.
Да, не все получилось, но ретроспективно могу сказать, что годом и своим перформансом доволен.
Анализируем, делаем выводы, двигаемся дальше.
#итоги
@time2code
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥1
Экранное время — убийца твоего времени
Пока многие ставят цели на 2026, дают обещания, а кто-то (по статистике) уже их нарушил, я намечаю абстрактные вектора моего движения на текущий год.
Одним из векторов станет радикальное уменьшение экранного времени использования телефоном.
В среднем за неделю (по статистике айфона) мое экранное время в день составляет 3-4 часа, а это 15% времени от всего дня.
Конечно, есть фоновые приложения, которые также идут в зачет: навигатор, музыка и другие, но есть классические соц. сети, которые с легкостью уничтожают по одному-двум часам в день, давая взамен дешевый дофамин.
Маленькие шаги
Что делать? — Есть 2 лагеря мысли (наверняка, есть больше, но в моей голове их два).
1 🏕 — Тотальное ограничение
Мы сразу отказываемся от потенциальной проблемы.
Есть зависимость на соц.сети? — Перестаем заходить во все, что скроллится. Много ешь? — Перестань и так далее.
Раньше было модно даже удалять аккаунты. Помню много ситуаций в ВК: "Удалил свою страницу со словами:"... Особенно было комично это наблюдать по несколько раз у одного и того же человека.
2 🏕 — Постепенное уменьшение
Так как я продуктовый разработчик, то я за инкрементальный подход: сделали что-то на 5% — наблюдаем за ощущениями, если все хорошо, то продолжаем.
Верю, что такой метод в среднем более устойчивый и жизнеспособный.
Вектор атаки
Поэтому с экранным временем буду бороться маленькими шагами, постепенно уменьшая "вредителей".
Сейчас я выделил основных консьюмеров времени, по которым собираюсь ударить, а это все, что скроллится, то есть имеет рекомендации или feed в каком-то виде.
Метрика
В январе планирую каждый день (перед сном) анализировать экранное время моего айфона, чтобы понимать, на что оно было потрачено и что можно улучшить завтра.
Посмотрим как изменится среднее время.
Если всегда хотели тоже привести свое экранное время в порядок, то предлагаю челлендж (в треде подробности).
@time2code
Пока многие ставят цели на 2026, дают обещания, а кто-то (по статистике) уже их нарушил, я намечаю абстрактные вектора моего движения на текущий год.
Одним из векторов станет радикальное уменьшение экранного времени использования телефоном.
В среднем за неделю (по статистике айфона) мое экранное время в день составляет 3-4 часа, а это 15% времени от всего дня.
Конечно, есть фоновые приложения, которые также идут в зачет: навигатор, музыка и другие, но есть классические соц. сети, которые с легкостью уничтожают по одному-двум часам в день, давая взамен дешевый дофамин.
Маленькие шаги
Что делать? — Есть 2 лагеря мысли (наверняка, есть больше, но в моей голове их два).
1 🏕 — Тотальное ограничение
Мы сразу отказываемся от потенциальной проблемы.
Есть зависимость на соц.сети? — Перестаем заходить во все, что скроллится. Много ешь? — Перестань и так далее.
Раньше было модно даже удалять аккаунты. Помню много ситуаций в ВК: "Удалил свою страницу со словами:"... Особенно было комично это наблюдать по несколько раз у одного и того же человека.
2 🏕 — Постепенное уменьшение
Так как я продуктовый разработчик, то я за инкрементальный подход: сделали что-то на 5% — наблюдаем за ощущениями, если все хорошо, то продолжаем.
Верю, что такой метод в среднем более устойчивый и жизнеспособный.
Вектор атаки
Поэтому с экранным временем буду бороться маленькими шагами, постепенно уменьшая "вредителей".
Сейчас я выделил основных консьюмеров времени, по которым собираюсь ударить, а это все, что скроллится, то есть имеет рекомендации или feed в каком-то виде.
Метрика
В январе планирую каждый день (перед сном) анализировать экранное время моего айфона, чтобы понимать, на что оно было потрачено и что можно улучшить завтра.
Посмотрим как изменится среднее время.
Если всегда хотели тоже привести свое экранное время в порядок, то предлагаю челлендж (в треде подробности).
@time2code
❤4🔥4