Pull to refresh
175
0.1
Денис @ur001

Пользователь

Send message

Ускорение роутера в Django в 51 раз

Level of difficultyMedium
Reading time6 min
Views13K

История началась с разбора использования ресурсов приложением, которое занимается проксированием. Обнаружили, что довольно много времени оно тратит на выбор маршрута (роута), и решили ускорить этот процесс. Описанная в статье оптимизация не требует каких-то особых вложений, усилий или условий, поэтому приведенный код можно забрать к себе и использовать без каких-либо чрезмерных вмешательств.

Читать далее
Total votes 52: ↑51 and ↓1+58
Comments17

Пайплайны в GitLab для микросервисов

Reading time10 min
Views15K

Какие два самых любимых дела у программистов? Автоматизировать и переписывать на микросервисы. Так сложилось, что в нашу команду выделенных серверов тоже постучались микросервисы. Но в этой статье не будет плюсов и минусов архитектурных подходов. Вместо этого я расскажу про организацию CI для автоматизации сборки, тестирования и деплоя приложений.

Начнем с основ на примере монолитного приложения, а потом усложним их микросервисами и постараемся избавиться от однотипного кода. А еще…
Читать дальше →
Total votes 57: ↑57 and ↓0+74
Comments4

Борьба с нагрузкой в PostgreSQL, помогает ли репликация в этом. Андрей Сальников (Data Egret)

Reading time22 min
Views9.2K


Что делать, когда мастер сервер PostgreSQL погибает под нагрузкой?


Довольно часто встречается ситуация, когда база данных не тянет существующую нагрузку и вертикальное масштабирование железа не помогает. Менять PostgreSQL на другую базу данных или переделывать архитектуру приложения и отказываться от СУБД?

Читать дальше →
Total votes 12: ↑11 and ↓1+11
Comments8

Что нужно знать, чтобы успешно пройти System Design Interview

Reading time16 min
Views37K

Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.

С учетом стремительного прогресса в области технологий и возрастающей сложности программных приложений, овладение принципами системного проектирования становится критически важным для разработчиков, стремящихся создавать эффективные системы. Не имеет значения новичок вы или опытный специалист: освоение этих принципов позволит вам разрабатывать надежные и масштабируемые программные системы, отвечающие требованиям современных приложений.

Далее мы рассмотрим каждый из принципов более детально, чтобы понять их суть и способы применения в разработке приложений.

Читать далее
Total votes 49: ↑47 and ↓2+56
Comments26

Мониторинг Celery

Level of difficultyMedium
Reading time27 min
Views4.8K

Существует популярный подход к покрытию метриками Celery: он заключается в запуске некоторого процесса, который слушает события из специальной очереди, на основе этих событий обновляются объекты метрик, а фоновый поток сервера отдаёт собранные метрики скраперу. В этой статье подробно разберём события, их жизненный цикл, откуда и как их принимать. Также поговорим про механизм удалённого управления (remote control), какие у него есть возможности и как им пользоваться. Обсудим существующие решения, чем они отличаются, и почему вам, возможно, будет выгодно сделать своё.

Читать далее
Total votes 35: ↑35 and ↓0+39
Comments1

Мы пилили монолит — много нас, а он один. Полезные советы от команды Яндекс Еды

Level of difficultyEasy
Reading time14 min
Views18K

Про микросервисную архитектуру и переход на неё написаны сотни статей, однако почти все они больше теоретические и описывают ситуацию лишь верхнеуровнево. Редко где прочтёшь про то, как люди бесшовно вынесли высоконагруженный кусок монолита в отдельный сервис без даунтайма и факапов или даже с ними. Интересно узнать, какими же инструментами они пользовались, как подготавливались, каких подходов придерживались и какие выводы на будущее сделали. Всё это — полезный опыт, который может помочь избежать проблем. Вот я и подумал, что стоит им поделиться. 

Распилить
Total votes 31: ↑28 and ↓3+36
Comments36

Почему OKR — это отстой

Level of difficultyEasy
Reading time7 min
Views23K

Наверно, многие из моих читателей как раз закончили квартальный (и/или годовой) цикл планирования, так что сейчас будет подходящее время напомнить, что процесс, которым мы пользуемся как стандартом в технологической отрасли, на самом деле — полная чушь. Разумеется, я имею в виду методологию Objectives and Key Results. Давайте же поговорим об OKR, что это такое и откуда они взялись, а ещё о том, почему это ужасная идея.

Читать далее
Total votes 45: ↑39 and ↓6+47
Comments26

Причины говнокода во фронтенде. Мнение мимокрокодила

Level of difficultyEasy
Reading time10 min
Views36K

Мне не раз попадались такие проекты, от кода которых берет оторопь. Такое чувство, что сами авторы не смогут объяснить - почему у них все выглядит именно так. В этот момент у меня возникает вопрос: как так получилось? Если вас он тоже волнует, то могу пожелать лишь приятного чтения.

Читать
Total votes 68: ↑56 and ↓12+53
Comments118

Как отключить цензуру в ChatGPT?

Level of difficultyEasy
Reading time3 min
Views37K

Это настолько просто сделать, что я даже не понимаю как вообще об этом можно написать полноценную статью. Весь туториал можно уместить буквально в один комментарий под постом, т. к. тут нет чего-то сверхтяжёлого.

Читать далее
Total votes 45: ↑41 and ↓4+46
Comments43

OpenID Connect 1.0 На Пальцах

Reading time7 min
Views68K

У OpenID Connect есть спецификация, есть туториалы, статьи на хабре и не на хабре. Довольно бессмысленно лепить очередную пошаговую инструкцию, ведущую от глубокого недоумения к работающей сквозной авторизации и аутентификации. Задача текста ниже иная, описать лежащие в основе спецификаций идеи (их больше одной).


Я не буду напрыгивать на тему статьи сразу, а начну с вещей простых и многим очевидных. Продолжу тем как они развивались и что на них наворачивалось по требованиям заказчиков. Подойду к нему исторически, то есть тем самым путем, каким он и появлялся на свет.


Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments13

Scrum ужасен

Level of difficultyEasy
Reading time8 min
Views45K

Если вы читаете этот пост, то, вероятно, работали по какой-то разновидности Scrum, но если нет, присаживайтесь и будьте моим гостем.

Давайте начнём с самого начала.

Что такое Scrum?


Scrum — это Agile-система управления проектами, «помогающая людям и командам инкрементно и совместно приносить пользу» — цитата со Scrum.org.

Что касается Agile, то если вы никогда не читали его манифеста (2001 год), то определю его как компактный список рекомендаций, которым нужно следовать при разработке ПО.

Agile не является: Библией разработки ПО, догматическим набором строгих правил, тикетами Jira или коучами Agile, суетящимися в вашей компании.

Дополнение: определения несовершенны по определению (а теперь прочитайте это ещё раз).

Я с открытой душой приму любую критику о своих определениях Scrum, Agile и любых других терминов, и лишь попрошу прочитать пост целиком, прежде чем писать разгневанные комментарии!
Читать дальше →
Total votes 63: ↑53 and ↓10+59
Comments135

Как я простые циклы искал

Reading time13 min
Views16K

иконка библиотеки Проснулся я как-то ближе к вечеру и решил — всё пора, пора уже сделать новую фичу в моей библиотеке. А за одно и проверку графа на циклы починить и ускорить. К утреннему обеду сделал новую фичу, улучшил код, сделал представление графа в удобном виде, и дошёл до задачи нахождения всех простых циклов в графе. Потягивая чашку холодной воды, открыл гугл, набрал "поиск всех простых циклов в графе" и увидел...

Найти простые циклы
Total votes 10: ↑10 and ↓0+10
Comments17

Хороший ретрай, плохой ретрай, или История одного падения

Level of difficultyMedium
Reading time17 min
Views41K

Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

Этот пост — продолжение вымышленных историй о разработчике Васе, который несколько лет назад разбирался с идемпотентностью в распределённых системах. Теперь перед ним новые задачи — получится ли справиться с ними в этот раз? Давайте узнаем.

Читать далее
Total votes 152: ↑152 and ↓0+152
Comments32

Релиз Bun 1.0 (новый runtime для JavaScript )

Level of difficultyEasy
Reading time12 min
Views36K

Представляем Bun версии 1.0.

Bun — это быстрый и универсальный набор инструментов для запуска, сборки, тестирования и отладки JavaScript и TypeScript кода (от одного файла до fullstack-приложения). Сегодня Bun стабилен и готов к продакшену.

Читать далее
Total votes 74: ↑71 and ↓3+83
Comments118

Профилирование Python — почему и где тормозит ваш код

Level of difficultyMedium
Reading time10 min
Views20K

Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.

Почему скрипт работает так медленно? Какая его часть тормозит? Дело в чтении данных, их обработке или сохранении? Как ускорить исполнение? Действительно ли скрипт вообще медленный?

Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).
Читать дальше →
Total votes 48: ↑47 and ↓1+66
Comments10

Python декораторы на максималках. Универсальный рецепт по написанию и аннотированию от мала до велика

Level of difficultyMedium
Reading time13 min
Views35K

Декорирование функций - это, наверное, самая сложная среди базовых и самая простая среди продвинутых фич языка Python. С декораторами, наверное, знакомы все джуны (хотя бы в рамках подготовки к собеседованиям). Однако, крайне мало разработчиков пишут их правильно. Особенно принимая во внимания тенденции последних нескольких лет к аннотированию всего и вся. Даже популярные open-source проекты (если основная часть их кода была написана до 2018 года) вряд ли дадут вам примеры декораторов, отвечающих всем современным требованиям к коду.

Так давайте разбираться!

Материал полностью написан на основе моего опыта по работе над OSS проектами, поэтому в нем вы найдете примеры достаточно сложных кейсов, которые никогда не рассматриваются в других подобных гайдах. В то же время я постарался подвести к ним максимально "мягко", чтобы было понятно даже начинающим питонистам.

В рамках статьи мы разберемся с декорированием функций в Python от простого к самому сложному. Рассмотрим, как их правильно писать и аннотировать, чтобы другие потребители вашего кода не страдали от близкого знакомства с ним. Уверен, что даже если вы чрезвычайно опытный разработчик, вы найдете для себя полезные советы (хотя и можете пропустить солидную часть материала).

Давайте разбираться
Total votes 43: ↑43 and ↓0+43
Comments9

10 шаблонов запросов для ChatGPT, которые выдадут качественные ответы в помощь продакт-менеджеру

Reading time24 min
Views24K

Привет! Я Аля — продакт-менеджер выделенных серверов Selectel. Люблю быстрое тестирование гипотез (и да, верю, что в B2B это возможно), общаться с целевой аудиторией и чистить бэклог.

Хочу поделиться, как продакт-менеджеры могут превратить ChatGPT из магии и забавной болталки, вокруг которой уже существует целая куча мемов, в полезный инструмент для решения повседневных задач. В этом тексте дам шаблоны запросов для разных целей — от составления структуры презентаций до валидации идей. Задачу ChatGPT не облегчала и проверяла его на боевых задачах, связанных с развитием моего непростого продукта.

Дисклеймер: Сразу отмечу, что рассматриваю AI-инструменты в качестве мощного ускорителя работы и источника вдохновения, а не как полную замену продакт-менеджера. Да, с помощью ChatGPT или Notion AI можно генерировать идеи и вопросы для интервью, но принятие решения о дальнейших шагах и выбор путей реализации все равно остаются в компетенции специалиста.

Читать дальше →
Total votes 43: ↑38 and ↓5+43
Comments18

Разбираемся с Redis

Reading time19 min
Views260K

Этот материал представляет собой глубокое исследование всего, что связано с Redis. В частности — речь пойдёт о различных способах организации хранилищ Redis, о постоянном хранении данных, о форках процессов.

Читать далее
Total votes 46: ↑45 and ↓1+62
Comments7

Отказоустойчивая работа с Redis

Reading time9 min
Views15K

Эта статья — переработанная версия доклада Отказоустойчивая работа с Redis с прошедшего 17 октября 2020 митапа PHP-разработчиков Йошкар-Олы.

Мы поговорим о подводных камнях использования Redis в системе, где важна отказоустойчивость — на примере хранения сессий в условном веб-сервисе, написанном на PHP, но многие замечания будут справедливы и для других платформ — например для микросервисов на Go. Статья будет полезна, если вы проектируете микросервисы или монолитные приложения с достаточно большой нагрузкой и интенсивно работаете с Redis либо столкнулись с потребностью в перепроектировании механизмов аутентификации и сессий.

Читать далее
Total votes 13: ↑10 and ↓3+14
Comments6

Google: «У нас нет преимущества перед открытым кодом, и у OpenAI тоже нет»

Level of difficultyMedium
Reading time12 min
Views27K

Утекший внутренний документ Google утверждает, что открытый исходный код AI обойдет Google и OpenAI.

В Google много обсуждали OpenAI. Кто первым преодолеет следующий рубеж? Каким будет следующий шаг? Но неприятная правда заключается в том, что мы не готовы выиграть эту гонку вооружений, и OpenAI тоже. Пока мы ссорились, третья сторона тихо забирала наш обед. Я, конечно, говорю об открытом исходном коде. Проще говоря, они опережают нас. То, что мы считаем "основными открытыми проблемами", уже решено и находится в руках людей. Достаточно назвать лишь несколько примеров...

Читать далее
Total votes 41: ↑36 and ↓5+44
Comments38
1
23 ...

Information

Rating
3,518-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity