Pull to refresh
1
0

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

Send message

Как НЕ надо строить надежные системы

Reading time12 min
Views20K


При проектировании системы знание анти-паттернов и подвохов зачастую оказывается более полезным, чем знание самих паттернов. Отталкиваясь от этой идеи, я решил написать данную статью, чтобы рассказать о факторах, которые, на мой взгляд, приведут к созданию ненадёжных систем. В её основе лежит мой собственный опыт проектирования преимущественно распределённых корпоративных приложений. Будет здорово, если ниже вы поделитесь собственным опытом и полезными идеями по теме.
Читать дальше →
Total votes 50: ↑45 and ↓5+59
Comments3

IT для неайтишников: Технический долг или почему теперь всё так долго?

Reading time15 min
Views24K

Срыв сроков и выход за оценки в IT — большая и многогранная тема. На что-то бизнес-заказчик может повлиять напрямую, на что-то лишь косвенно. При работе с IT очень желательно понимать и знать такие понятия, как технический долг и «технический дефолт» (имеет иное значение, нежели в экономике). Что это такое, какие последствия имеет и как с эти бороться сейчас разберём.

Читать далее
Total votes 28: ↑26 and ↓2+29
Comments10

Игровой real-time сервер простыми словами: теория, архитектура на Python, оптимизация, автомасштабирование в AWS

Reading time20 min
Views24K

Разработка сервера для real-time онлайн игры - дело неочевидное, но очень интересное. В данной статье я постараюсь провести вас от банальной теории и базовых вещей до динамического автомасштабирования игрового сервера в облаке.

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

Перейти к материалу
Total votes 19: ↑17 and ↓2+19
Comments33

Как упростить жизнь за 312 коротких шагов: проектируем GraphQL API в микросервисной архитектуре

Level of difficultyEasy
Reading time9 min
Views12K

Звук – HiFi-сервис с большой командой инженеров. Мы используем передовые технологии и современный стек, и экспериментируем, чтобы решать сложные, нестандартные задачи. Одна из технологий  – GraphQL.

Эта статья изначально создавалась как гайд по работе с GraphQL для инженеров Звука (системные аналитики, разработчики, QA). При этом статья может быть полезна всем, кто никогда не работал с GraphQL, но очень хочет понять, зачем он может быть нужен, и как поможет решить задачу вашего бизнеса.

Читать далее
Total votes 23: ↑22 and ↓1+27
Comments36

SRE: как его понимают бизнес и разработчики

Reading time6 min
Views2.7K

В сентябре Антон Скобин, коммерческий директор Слёрма, записал два выпуска подкаста «Манул Слёрма» с Олегом Блохиным, лидером инфраструктурной команды Dodo Engineering. Поговорили о том, как выстраивается работа SRE-команд, какие функции они выполняют и в чём профит от SRE для бизнеса. В этой статье поделимся главными мыслями этой беседы.

Читать далее
Total votes 14: ↑13 and ↓1+16
Comments1

Эволюция управления доступом объяснена с помощью Python

Reading time14 min
Views5.3K

ОС CTSS (Compatible Time-Sharing System) Массачусетского технологического института была разработана в 1961 году для обеспечения независимого доступа нескольких пользователей к большому компьютеру. Вскоре разработчики обнаружили, что существует огромная потребность в предоставлении друг другу общего доступа к программам и данным. Это способствовало возникновению первых разговоров о компьютерной безопасности и привело к тому, что защита стала основной целью разработки ОС Multics. Спустя годы после выпуска Multics, Зальтцер (Saltzer) и Шредер (Schroeder) опубликовали книгу "Защита информации в компьютерных системах", в которой были учтены уроки, полученные при ее разработке и реальном использовании. Их работа является одной из самых цитируемых в истории работ по безопасности и первой, где были использованы многие термины, которые мы употребляем сегодня, включая понятие "Наименьшая привилегия".

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments5

Система типов — лучший друг программиста

Reading time8 min
Views32K

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

Значение в string не лучший тип для записи адреса электронной почты или страны проживания пользователя. Эти значения заслуживают гораздо более богатых и специализированных типов. Мне нужно, чтобы существовал тип данных EmailAddress, который не может быть null. Мне нужна единая точка входа для создания нового объекта этого типа. Он должен валидироваться и нормализироваться перед возвратом нового значения. Мне нужно, чтобы этот тип данных имел полезные методы наподобие .Domain() или .NonAliasValue(), которые бы возвращали для введённого foo+bar@gmail.com значения gmail.com и foo@gmail.com. Эта полезная функциональность должна быть встроена в эти типы. Это обеспечивает безопасность, помогает предотвращать баги и существенно повышает удобство поддержки.
Читать дальше →
Total votes 102: ↑100 and ↓2+116
Comments90

Самый полный стартовый гайд по ботам Telegram (python)

Reading time5 min
Views271K

QQ Хабр! В этом гайде мы пройдемся по каждому шагу создания ботов в Telegram - от регистрации бота до публикации репозитория на GitHub. Некоторым может показаться, что все разжевано и слишком много элементарной информации, но этот гайд создан для новичков, хотя будет интересен и для тех, кто уже занимался разработкой в Telegram. Сегодня мы будем делать бота, который отвечает на заданные вопросы.

Читать далее
Total votes 29: ↑16 and ↓13+8
Comments23

Что такое клиринг, как он работает и реализован на примере платёжной системы «Мир»

Reading time9 min
Views25K

Покупки с помощью карты стали неотъемлемым атрибутом современной жизни. В прошлом году жители нашей страны совершили более 21 миллиарда операций банковскими картами. На примере работы клиринговой системы ПС «Мир» рассмотрим, что делается, чтобы справляться с регулярно возрастающей нагрузкой. В частности, разберём, какие используются технологии и архитектурные решения.

Меня зовут Наталья Азисова, я product owner клиринговой системы в ПС «Мир». Каждое утро вторника я думаю о том, какой суперсрочной задачей нагрузить разработку, а к вечеру — как отложить её на пару месяцев. Спасает меня от праведного гнева разработки только то, что делаю я это со стилем.

Итак, что такое клиринг, как он работает и реализован на примере платежной системы «Мир» - читайте под катом.

Читать далее
Total votes 26: ↑24 and ↓2+27
Comments35

Как построить большое мобильное приложение в проекте… который был уже несколько раз потрачен до тебя

Reading time7 min
Views4.9K

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

Что тут интересного, скажите вы? Любой IT manager, будь то Team Lead, или CTO, в течении своей карьеры встречался с подобного рода задачами и создавал продукт и команду с нуля. 

Но это был отнюдь не ноль. В момент моего прихода уже была устоявшаяся Enterprise архитектура, какая-никакая инфра, “почти” готовые мобильные приложения под Android и iOS, остатки былой команды и сорванные сроки. Оказалось, что “Next Gen” приложение уже разрабатывается не в первый раз, были попытки и до этого, и они все провалились. Многие инженеры и менеджеры, которые с самого начала участвовали в проекте, уже давно покинули его. 

И тогда пришло осознание, что это будет одним из самых сложных и захватывающих проектов за мою (на тот момент 7-летнюю) карьеру работы лидом мобильной разработки…

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

История российского айтишника: от работы в региональной компании до создания метавселенной в международном стартапе

Reading time6 min
Views4.6K

Почему у одних получается, а у других нет? — вопрос, который волнует многих. Мы решили пообщаться с инвесторами и предпринимателями из сферы IT, чтобы разобраться, как одним стартапам удаётся выйти к «единице» и создать успешный проект, а результаты работы других равны «нулю».

В нашей сегодняшней статье Илья Струков — DevOps-инженер, Development & System architect и технический директор (CTO) в Arhead/US, поделится своим опытом работы в ИТ, расскажет о проблемах начинающих айтишников и о том, как боролся со своим главным недостатком.

Читать далее
Total votes 9: ↑5 and ↓4+5
Comments3

WebSocket ориентированое Api на Nest.js

Reading time3 min
Views12K

В этой статье я расскажу как создал модуль под Nest.js позволяющий писать классическое RESTFull API со swagger'ом но клиент будет полностью на WebSocket'ах, звучит странно не так ли? Но зато очень быстро и удобно по итогу)

Идея состоит в том, что вы пишите классическое документированное апи, со всеми типами и плюшками.

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments11

Что делать, если твой временной ряд растёт вширь

Reading time10 min
Views7.5K

Привет, Хабр! Есть мнение, что прогнозирование временных рядов - сложная задача. Но не будем расстраиваться, ведь есть и плюсы - существует ещё большое количество задач, когда рядов сразу несколько, и такие задачи ещё сложнее! Когда начинаем сравнивать, понимаем, что прогнозировать одномерные временные ряды не так уж и сложно. А вот что делать с ситуацией, когда временной ряд обрастает параллельно идущими с ним последовательностями других параметров (многомерный ряд), какие методы и алгоритмы использовать, и что делать, если задача прогнозировать такие ряды есть, а опыта не очень много (спойлер - используйте AutoML, а пока он работает восполните пробел прочитав пару статей по теме), разбираем под катом.

Что такое временной ряд 

Если начинать совсем издалека, то это последовательность значений, упорядоченная по времени. Во временных рядах есть закономерность: текущие значения ряда связаны с предыдущими. Если такого свойства у ряда нет, то поздравляем (или не поздравляем), вы имеете дело с процессом, который прогнозировать классическими (и не очень) моделями не выйдет, в таком случае стоит смотреть в сторону Марковских процессов.

Простенькая картинка ниже иллюстрирует описанное выше свойство, - этого бэкграунда для продолжения чтения поста достаточно (Рисунок 1).

Ну и что же делать
Total votes 5: ↑5 and ↓0+5
Comments7

О чём расскажут на HolyJS 2022 Autumn

Reading time9 min
Views2.4K

Как получить от ESLint максимум пользы? Что можно впихнуть в библиотеку на два килобайта? Как выжать больше производительности, когда очевидные оптимизации уже сделаны? Почему слоны умные и параноидальные? Всё это будет в программе HolyJS (да-да, про слонов тоже). Собрали описания всех докладов в этом хабрапосте и разделили на тематические блоки.

Конференция в этот раз пройдёт в два этапа: сначала два дня будут полностью онлайновыми, а вот в третий день можно будет хоть прийти на офлайн-мероприятие в Москве, хоть подключиться удалённо. Другие подробности (вроде точного расписания) и билеты — на сайте.

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

Как мы в Fix Price внедряли систему Keycloak

Reading time16 min
Views13K

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

Начнем с общих моментов, а если хотите сразу перейти к коду, примеры вы найдете ниже. Их у нас целых 4, и все расписаны очень подробно. Поехали!

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

Kafka как интеграционная платформа: от источников данных к потребителям и в хранилище (часть 2)

Reading time9 min
Views6.5K

Привет! Продолжаю рассказ про интеграционную платформу на базе Apache Kafka и про то, как мы постарались гармонично вписать ее в непростую ИТ инфраструктуру группы НЛМК.

Напомню, что в первой части статьи были описаны соглашения об именовании топиков, подход к реализации ролевой модели и соглашение по базовой схеме данных. Здесь расскажу, как сделали универсальное охлаждение для всех данных из Kafka в корпоративное хранилище на базе Hadoop, про сервис доставки сообщений в ИС и про разработанные сервисы, доступные на нашем Self-Service портале.

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

PostgreSQL Antipatterns: куда крутить NULLS

Reading time2 min
Views6.6K

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

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

Гексагональная архитектура и DDD на опыте интернет-магазина Спортмастер. Часть 1

Reading time9 min
Views16K

Всем привет! Меня зовут Денис Ежов, я тимлид команды интернет-магазина Спортмастер (далее ИМСМ) и по совместительству бэкенд-разработчик. Так сложилось (и так говорят), что гексагональная структура и DDD — это дорого и сложно. Но так ли это на самом деле? Мы в ИМСМ внедрили гексагональную архитектуру и DDD именно в том количестве, в котором эти подходы решали наши проблемы. Про то, какие у нас были проблемы и как мы их решали, я расскажу в этом посте. Под катом — про назначение бэкенда ИМСМ, история развития бэкенда ИМСМ и его проблемы. А ещё посмотрим, как мы в новой архитектуре постарались решить проблемы бэкенда, покажем примеры кода, а также то, как код ложится на архитектуру. 

Читать далее
Total votes 19: ↑16 and ↓3+15
Comments3

Что можно будет узнать о тестировании на Heisenbug 2022 Autumn

Reading time12 min
Views1.5K

Конференция Heisenbug («по тестированию, но не только для тестировщиков») близится: программа уже готова, и пришло время поделиться с Хабром всеми подробностями. 

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

Во-вторых, публикуем полную программу. В ней не только доклады-монологи: будут и воркшопы с мастер-классами, где можно научиться чему-то на практике, и круглые столы с тематическими обсуждениями. Среди прочего будут звучать слова «SRE», «Kaspresso», «бенчмаркинг», «TestOps» и не только. Но обо всём по порядку.

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

Ускорение обновления информации на сайте в 100 раз за счет рефакторинга системы хранения и передачи данных

Reading time4 min
Views1.6K

Меня зовут Максим, я руководитель проектов в ИНТЕРВОЛГЕ. 

Мы с командой уже несколько лет развиваем сеть B2B/B2C интернет-магазинов нашего клиента. Хочу сегодня рассказать про рефакторинг. И кода, и потоков данных.

Не всегда легко объяснить бизнесу зачем нужно чинить то, что казалось бы, и так работает – но в нашем случае руководители проекта сами ждали этой реформы.

Читать подробнее
Total votes 5: ↑4 and ↓1+6
Comments0

Information

Rating
Does not participate
Location
Израиль
Date of birth
Registered
Activity