Как стать автором
Обновить
38
0.5

Senior Back-End Developer .NET Core C#

Отправить сообщение

Сколько нужно ядер cpu, чтобы выдержать 30k+ rps?

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров9.1K

Меня зовут Вадим Ивахин, я техлид в Vi.Tech — это IT-дочка ВсеИнструменты.ру.

Я и мои коллеги трудимся над большим количеством проектов и используем в своей работе различные инструменты, в том числе MongoDB. В этой статье я не стану рассказывать о том, что такое MongoDB. Хочу рассказать о её интересной и удобной особенности — механизме Watch, и о том, как с его помощью спроектировать приложение, способное выдержать десятки тысяч rps.

Читать далее
Всего голосов 23: ↑19 и ↓4+17
Комментарии34

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

Уровень сложностиПростой
Время на прочтение26 мин
Количество просмотров36K

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

Читать далее
Всего голосов 128: ↑128 и ↓0+128
Комментарии96

Что такое гексагональная архитектура. Разделение бизнес-логики и инфраструктуры с помощью портов и адаптеров

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров31K
image

Гексагональная архитектура — это архитектурный паттерн, представленный Алистером Кокберном и описанный у него в блоге в 2005 году. Основная идея заключается в том, чтобы структурировать приложение таким образом, чтобы это приложение можно было разрабатывать и тестировать в изоляции, не завися от внешних инструментов и технологий.

Вот как сам Кокберн описывает эту архитектуру одним тезисом:

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

В этой статье мы рассмотрим некоторые задачи, как правило, решаемые в типичных программных проектах. Затем мы поговорим о гексагональной архитектуре и о том, как она призвана решить эти задачи. Мы также рассмотрим некоторые детали реализации такой архитектуры и варианты тестирования.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+37
Комментарии45

Как эффективно добавлять документацию при разработке продукта?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

Как технический писатель я встречала различные подходы команд и целых компаний к добавлению документации в процесс разработки продукта. В одних ситуациях они используются намеренно, а в других по воле случая, и ниже мы разберём достоинства и недостатки нескольких таких подходов, которые позволят делать выбор в пользу того или другого более обдуманно.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+38
Комментарии6

Sovietwave и Sovietpunk: как романтика несбывшегося переплавила ностальгию по СССР в новый жанр? Часть 1

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров29K

Выход «Atomic Heart» не просто стал громким событием в истории российского геймдева — он наиболее отчётливо отразил любопытную культурную тенденцию последней дюжины лет. С начала 2010-х футуристические образы и сюжеты в подчёркнуто советском стиле стали всё чаще встречаться в Рунете в самых разных формах. Особенно ярко это стало проявляться ближе к концу десятилетия с массовым распространением музыки в стиле ретровейва — российским ответвлением которого стал стилизованный под мелодии и ритмы советской эстрады Sovietwave. Ну а сейчас советский ретрофутуризм уже можно назвать мейнстримом, даже не особенно прибегая к совам и глобусам. Он выражает ностальгию по положительным чертам и характерным деталям советской эпохи, но с начала 90-х годов эта ностальгия успела сильно измениться. Что же с ней случилось?
Читать дальше →
Всего голосов 128: ↑119 и ↓9+150
Комментарии223

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

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров42K

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

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

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

Читать далее
Всего голосов 152: ↑152 и ↓0+152
Комментарии32

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров104K

Гуд ньюз эвриван! Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.

Читать далее
Всего голосов 131: ↑130 и ↓1+158
Комментарии162

Проектирование отказоустойчивости IT-систем

Время на прочтение11 мин
Количество просмотров20K

❓Как проектировать системы, которые будут толерантными для различного вида отказов и ошибок?

Что такое отказоустойчивость и стабильность?

Под отказоустойчивостью будем понимать свойство системы, которое позволяет максимально сохранять работоспособность при отказе отдельных конкретных компонентов системы либо связанных систем и восстанавливать работоспособность системы при восстановлении отказавших компонентов или связанных систем. Давайте рассмотрим подробнее эти 2 момента:

1. Деградация работоспособности системы должна быть прямо пропорциональна "величине" отказа. То есть, если упал сервис, отвечающий за некую некритичную функциональность — вся система не должна при этом падать. Да, небольшой кусочек не работает, но это не влияет на стабильность остальной части функционала.

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

Читать далее
Всего голосов 17: ↑16 и ↓1+21
Комментарии16

Подборка выдающихся статей по тестированию

Время на прочтение8 мин
Количество просмотров7.2K

Будучи консультантом по тестированию, я за годы работы прочитал массу статей по QA. Большинство из них — это в какой-то степени полезные, но часто случайные материалы, которые не всегда стоят времени. Но иногда я натыкался на удивительно хорошие статьи, которые действительно могут помочь улучшить навыки написания тестов. Я отобрал эти статьи и написал к ним аннотации. Половина из них относится непосредственно к JavaScript / Node.js, вторая половина охватывает общие концепции тестирования, которые применимы в любом языке.

Читать далее
Всего голосов 13: ↑12 и ↓1+14
Комментарии2

Снятие с воинского учета. Дистанционно. Пакет документов

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров48K

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

Если вкратце, то рабочий кейс, это когда: (А) имеется основание для снятия: уже живете зарубежом полгода, либо имеется иностранный ВНЖ, (B) грамотно составлено заявление на снятие с учета и подписано вашей подписью, (C) в военкомат идет ваш представитель по доверенности, которая оформлена у российского нотариуса или в зарубежном консульстве РФ.

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

Читать далее
Всего голосов 71: ↑61 и ↓10+71
Комментарии83

Последствия кризиса депопуляции в России и мире

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров38K

Признается не ожидал такой реакции сообщества на мою первую статью о кризисе депопуляции. Считал бы успехом просто её выход из песочницы. А тут я получил большую обратную связь, огромное спасибо тем, кто оставлял комментарии. Я веду статистику по реакции людей на проблемы которые озвучиваются в моих статьях. Это позволяет отслеживать как меняется оценка актуальности проблемы людьми с течением времени. А некоторые комментарии с критикой, идеями или предложениями копирую в отдельный файл, чтобы впоследствии подумать над ними и осмыслить. Ещё раз всем спасибо, конструктивная критика очень ценна для меня.

В прошлой статье я обозначил такую проблему как кризис депопуляции и причины почему люди не хотят рожать. А сейчас остановимся на последствиях снижения рождаемости. И попутно разберу самые популярные возражения.

Кризис депопуляции миф, население планеты растёт. В демографии имеет значение не столько рост или убывание на данный момент времени, сколько долгосрочный тренд. Так как у демографических процессов большая инерционность. На данный момент население планеты растёт, но, по различным прогнозам, через 50-80 лет начнётся сокращение. Государства в мире находятся на разном уровне общественного развития, в каких-то странах демографический переход уже завершился, в каких-то ещё не начался. Но общее направление уже видно. Все страны не зависимо от культурных особенностей приходят к низкой рождаемости и соответственно к сокращению населения (Израиль исключение, подробности будут ниже).

Читать далее
Всего голосов 107: ↑86 и ↓21+87
Комментарии410

Архетипы программных архитекторов. Часть 1

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров10K

Что такое архетип? Это — образец набора вариантов поведения или поведенческих сценариев, типичных для определённой роли. Уилл Ларсон, который сейчас занимает должность главного технического директора в Carta, определил четыре архетипа для должности «ведущий инженер‑программист» (Staff Engineer). Это — «техлид» (Tech Lead), «архитектор» (Architect), «решатель задач» (Solver) и «незаменимый помощник» (Right Hand).

Я работаю над новой книгой, которую планируется опубликовать этой осенью. Она называется «The Software Engineerʼs Guidebook». Когда я писал в ней об архитектуре ПО, меня зацепила идея существования «архетипов» программных архитекторов, которые могут сочетаться друг с другом либо хорошо, либо плохо. Речь идёт о людях, работающих бок о бок друг с другом, вклад каждого из которых в общее дело отличается чем-то особенным. Разбираться с тем, какие архетипы лучше всего описывают коллег — это интересное занятие, которое может привести к ценным открытиям. И вполне возможно, что вы, задумываясь об этом, поймёте, какой из архетипов лучше всего описывает вас самих.

Читать далее
Всего голосов 13: ↑11 и ↓2+16
Комментарии8

Виды баз данных. Большой обзор типов СУБД

Время на прочтение21 мин
Количество просмотров91K

Часто, в обзорах видов баз данных упоминают реляционные и “другие”, “NoSQL” и т.д., либо приводят самые основные типы СУБД (базы данных), забывая о редких. В данной статье я постараюсь описать максимально полно виды баз данных и привести примеры конкретных реализаций. Разумеется, статья не претендует на всеохватность и классифицировать базы данных можно по разному, в том числе по типам оптимальной нагрузки и т.д., но надеюсь, она даст базовое представление о видах СУБД и принципах их работы.

В статье мы рассмотрим следующие типы баз данных:

Читать далее
Всего голосов 38: ↑36 и ↓2+38
Комментарии16

Уведомление о получении ВНЖ иностранного государства: нужно ли релокантам его подавать?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5.9K

Привет! Меня зовут Катя Сергеева, head of legal в компании Bimeister. В работе я много сталкиваюсь с правовым регулированием ИТ-отрасли, изменениями в законодательстве, и в этой статье хочу рассказать про правило уведомления о получении внж, которое есть в нашем законе.

Часто ли вы размышляете о том, как изменилась жизнь за последнее время? ? И кажется ли вам, что скорость жизни и изменений, так же, как и объем пропускаемой информации растут сумасшедшими темпами? Если да – выдыхайте, вы не единственные, кому так кажется. За последние два года жизнь подкинула нам немало сюрпризов: мобилизация, новый порядок вручения повесток, оформление отсрочек для работников ИТ-компаний, работа на удаленке за рубежом, статус резидента/нерезидента, варианты легализации и получение ВНЖ… В любом случае, приняли ли вы решение остаться работать в России или уехали несколько месяцев назад, скорее всего вам приходилось разбираться в юридических вопросах, о которых ранее можно было и не задумываться.

В этой статье речь пойдет как раз об одном из них, который касается специалистов, уехавших за рубеж и получивших там вид на жительство. Да, да. Казалось бы – ну что еще нужно? Заветный ВНЖ в кармане, можно обживаться на новом месте. Как же, а уведомить Родину о том, что вы его получили! Забыли? Давайте разбираться.

Согласно ст. 6 закона «О гражданстве Российской Федерации» при получении второго гражданства или вида на жительство или иного документа, подтверждающего право на его постоянное проживание в иностранном государстве, гражданин обязан уведомить об этом родную страну. Сразу оговорюсь, что закон не расшифровывает, что понимать под «постоянным проживанием в иностранном государстве» — это к вопросу, а нужно ли подавать уведомление, если у меня ВНЖ на год/на пять лет/продлеваю ВНЖ ежегодно… Ответ – да, лучше уведомить. Почему? Из-за предусмотренной законом ответственности:

Читать далее
Всего голосов 11: ↑8 и ↓3+7
Комментарии9

System Design для самых маленьких. Reference к интервью

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров20K

Эта статья-инструкция по построению высоконагруженных распределенных систем. Описанный подход может быть полезен как reference при подготовке к интервью по system design в FAANG и не только.

Читать далее
Всего голосов 15: ↑13 и ↓2+15
Комментарии3

Фортран как культурное явление

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров13K

В фильме «Скрытые фигуры» есть прекрасная сцена: на дворе 1961-62, афроамериканка из лабораторий НАСА едет в библиотеку для белых и тихонько без разрешения увозит оттуда книжку по Фортрану. На автобусе увозит. Сопровождая это комментарием своему сыну: «А что? Я плачу налоги».

Фортран перестал быть просто языком программирования, это давно культурный феномен. Настолько, что стал иллюстрацией в борьбе чернокожих женщин за свои права (попробуйте, навскидку, придумать ещё хоть одно понятие из ИТ, которое можно было бы положить в эту категорию).

Масштаб явления очень легко недооценить: на современный избалованный взгляд ничего такого волшебного в Фортане нет. Зато если немного разобраться в контексте, становится понятно, что Фортран для своего времени – просто квантовый скачок, уделавший все альтернативные разработки минимум на 10 лет.

Читать далее
Всего голосов 47: ↑46 и ↓1+64
Комментарии59

Самый быстрый форматер кода

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров6.3K

Самый быстрый форматер кода

В статье подробно поговорим о самом быстром форматере кода. Подробно покажем, как интегрировать форматер в любой проект, настроим форматирование по сохранению в редакторах кода и посоревнуемся в скорости форматирования.

Читать далее
Всего голосов 12: ↑9 и ↓3+11
Комментарии12

Ультимативный гайд по HTTP. HTTP/1.1 vs HTTP/2

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров28K

Продолжаем цикл статей о протоколе HTTP: расскажем, что нового привнесла версия HTTP/1.1 и какие у нее принципиальные отличия с версией HTTP/2.

Читать далее
Всего голосов 9: ↑7 и ↓2+7
Комментарии10

Под капотом: как работает мгновенный поиск перелетов

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.8K

Всем привет, я работаю в группе компаний Dyninno. Это большой международный холдинг, который предоставляет услуги и продукты в сфере туризма, финансов, развлечений и технологий в 50 странах. Основа и самая весомая часть нашего бизнеса - продажа авиабилетов. Поэтому скорость и максимальное количество наиболее релевантных результатов поиска для клиентов - наша основа основ. И сегодня предлагаю посмотреть на то, как работает наш поиск изнутри. 

Этот материал будет интересен тем, кто имеет дело с масштабируемыми сервисами, написанными на Go и развернутыми в Kubernetes, и тем, кто так или иначе связан с поисковыми системами. Я расскажу об интеграции наших собственных сервисов с Amazon SQS и базами данных - как внутренними, так и сторонними.  

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии6

Scrum не нужен. Нужно лишь правильно использовать Kanban

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров8.4K

Почему вы выбрали фреймворк Scrum, а не метод управления проектами Kanban? Не можете ответить? Значит — лично вы Scrum и не выбирали. Кто-то сделал это за вас.

Даже в тех редких случаях, когда люди способны ответить на вышеприведённый вопрос, их мотивы раскрывают глубокие заблуждения относительно Kanban. Выражаются эти заблуждения в упоминании следующих причин выбора Scrum:

Читать далее
Всего голосов 19: ↑15 и ↓4+22
Комментарии14

Информация

В рейтинге
1 809-й
Откуда
Россия
Зарегистрирован
Активность

Специализация

Backend Developer
Senior
C#
.NET Core
SQL