Pull to refresh
2
0
Роман @Gobl1n

User

Send message

Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)

Reading time7 min
Views37K

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

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

Читать далее
Total votes 173: ↑169 and ↓4+165
Comments174

О причинах технического долга, том, как с ним бороться и убедить бизнес, что это проблема

Reading time3 min
Views1.4K

Привет, Хабр! Технический долг есть в любом крупном проекте. Он возникает, когда копятся компромиссные решения, проблемы в коде или архитектуре. Важно, что эти решения и проблемы усложняют и удорожают поддержку и обновление кода в будущем. Это своеобразные «проценты». Чем больше долг, тем больше «процентов» приходится платить.

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

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

Легенда о слоне: как IT-компания Steepler создала Dendy и основала российский консольный рынок

Level of difficultyEasy
Reading time49 min
Views33K
image
Dendy Junior II Автор: Ravy

Рисковый проект, который осчастливил миллионы детей.

17-го декабря 2022-го года исполнилось 30 лет с момента выхода Dendy на российский рынок. Кажется, что за последние десять лет о консоли сказали уже всё: популярные ютуберы регулярно делятся историями об играх своего детства, а блогеры и коллекционеры давно разобрали все виды картриджей и особенности клонов Nintendo Famicom.

Но эти материалы зачастую поданы через призму ностальгии и детских воспоминаний. Для полноты картины не хватало только всеобъемлющей бизнес-истории бренда, которая охватила бы весь период от запуска Dendy на российский рынок до закрытия компании Steepler.

Изначально этот текст я написал эксклюзивно для российского издания третьего тома серии «История Nintendo» от Флорана Горжа. С разрешения издательства «Белое Яблоко» я адаптировал материал и сильно дополнил его.
Читать дальше →
Total votes 176: ↑175 and ↓1+174
Comments74

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

Level of difficultyEasy
Reading time9 min
Views11K

Полтора года в нашей компании длился эксперимент, в котором участвовали 150 сотрудников. Он показал, что при разнице уровней оклада в 10-14% по сравнению с рынком разумеется не в нашу сторону специалисты от среднего до высокого уровня готовы продолжать работу при условии наличия программы заботы об их здоровье.
Иными словами, если вы не можете или не хотите платить своим сотрудникам столько, сколько платит рынок, и это "нежелание" не превышает 14%, то вы можете выдавать витамин D, что сокращает выгорание, и как следствие — текучесть кадров.

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

Может ли DDoS-атака быть форс-мажором для хостинг-провайдера?

Level of difficultyEasy
Reading time4 min
Views3.8K

Многие считают, что DDoS-атаки могут являться форс-мажором. Учитывая это мнение, нерадивые компании IT-сферы готовы оправдывать ими свои огрехи и недоработки, иногда даже включая упоминание о них в пункты своих договоров. И правда, очень удобно в случае любого ЧП сказать своему недовольному клиенту: «Извини, дорогой, DDoS-атаки все сломали, мы здесь ни причем». В этой статье мы расскажем почему DDoS-атака не может считаться форс-мажорным обстоятельством и на конкретном кейсе разберем как его применяют хостинг-провайдеры, включая пункты о нем в свои договоры.

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

Чем заняться тимлиду, если не кодить? Рассказываю о своих задачах

Level of difficultyEasy
Reading time10 min
Views11K

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

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

Я составил список своих задач и разбил их на категории. Кстати говоря, добрую половину этих задач я повесил на себя сам.

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

Как написать первую статью на Хабр: полный чек-лист

Level of difficultyEasy
Reading time14 min
Views11K

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

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

Как мы распиливаем монолит без даунтайма

Level of difficultyMedium
Reading time7 min
Views2.9K
image

Всем привет!

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

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

Наши причины перехода были следующими:

  1. В монолите концентрировалось большое количество бизнес-процессов, которые охватывали сразу несколько потребителей: пользователей облачной платформы, сейлз-менеджеров (через CRM-систему), администраторов, обработчиков метрик. Получилась такая одна большая точка отказа сразу для 4 групп бизнес-процессов.
  2. Каждый бизнес-процесс потребляет свой объем ресурсов. Например, для обработки метрик нужно 5 подов (чтобы запараллелить и ускорить обработку), для администрирования хватит и одного. Так как у нас все в одном сервисе, при масштабировании монолита мы будем ориентироваться на самый «прожорливый» бизнес-процесс. Часть ресурсов будет просто простаивать.
  3. Хотелось добиться гранулярности, чтобы независимо писать и деплоить код для каждого бизнес-процесса. И не переживать, что какие-то изменения в одном бизнес-процессе неожиданно отрикошетят в соседний.

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

5 вещей, которые предприниматели, инвесторы и рекрутеры должны знать о CTO

Level of difficultyEasy
Reading time6 min
Views4.2K

Я занимаю должность СТО уже около десяти лет.

К настоящему времени у меня сложилась довольно четкое понимание того, кто такой CTO, что делает CTO успешным, а что - нет.

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

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments10

Как быстрее узнать, что сервису плохо, или Realtime-детекция разладок с помощью CatBoost

Level of difficultyMedium
Reading time8 min
Views4.3K

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

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

Меня зовут Владимир Точилин, я работаю в группе развития рекламных продуктов и стабильности. Вместе со своим коллегой, Александром Самусенко, я расскажу, как мы создали новый инструмент realtime-детекции разладок в проде рекламных технологий. Мы работаем с системой, где на отдельные кластеры нагрузка превышает 1000000 RPS. 

Историю будет интересно прочитать аналитикам, разработчикам и менеджерам любого уровня.

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

Не куб, а кубик: kubernetes для не-highload

Level of difficultyEasy
Reading time11 min
Views18K

Может ли kubernetes сделать жизнь админов небольших и средних компаний проще или же это шайтан-машина для кровавого enterprise и оголтелых стартапов?

Хочется кубер, но колется...
Total votes 48: ↑47 and ↓1+46
Comments32

Детальная настройка браузера Firefox

Reading time15 min
Views119K

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

Надеюсь она немножко поможет в популяризации этого чудесного браузера.

Читать далее
Total votes 53: ↑50 and ↓3+47
Comments96

Зачем нужна выделенная Frontend Core команда и как мы внедряли дизайн систему

Reading time9 min
Views9.8K


Всем привет, меня зовут Ростислав, я занимаю должность Front Lead в компании ДомКлик. Хочу поделиться с вами опытом создания Web Core команды и сразу ответить на следующие вопросы:


  • Необходима ли такая команда в компании?

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


  • Выгодно ли внедрять такую команду?

Безусловно. Изначально было сложно измерить и спрогнозировать выгоду от её создания, все расчеты, P&L были на словах, в цифрах — только примерные предположения. Спустя год мы можем посчитать сэкономленное время, профиты, и все расчеты говорят о том, что это было не зря.


  • На долгую перспективу ли эта команда?

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


  • Чем эта команда занимается?

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

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

Оптимизация mysql комплексная

Reading time5 min
Views50K
Доброго времени суток, уважаемые хабровчане.

Сегодня речь пойдет опять и снова про mySQL. Разберемся в оптимизации и поговорим про множество параметров сервера.
Давайте приступать.

Начало


Сервер у нас пусть будет на ​ CentOS​. Оптимизировать будем методом правки конфига ​my.cnf​ .

Настройка некоторых параметров может повысить
производительность БД сервера в несколько раз!

Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments18

Как собрать радио для коллег без единого разрыва

Reading time5 min
Views10K

Привет, Хабр! Вот уже почти 5 из 10 лет я совмещаю работу сетевиком с любимым хобби — подкастом про IT. За это время наш сервер для аудиотрансляций развивался, менялся и оказался полезен не только нам, но и коллегам. Недавно я правильно клонировал нашу сборку на базе Linux для радио ЦОД.fm в DataLine и решил поделиться своими наработками со всем сообществом.

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

Читать далее
Total votes 22: ↑21 and ↓1+20
Comments17

Интеграция PHP проекта на GitHub и Scrutinizer

Reading time7 min
Views3.3K

Есть такой продвинутый инструмент Scrutinizer CI.

Для OpenSource он абсолютно бесплатный и платный для приватных репозиториев.

Вы о нем слышали, наверное, а если нет, то лично я использую его для анализа кода на различного рода уязвимости, а также в качестве замены статическому анализатору типа Psalm, ну и для покрытия конечно же, т.к. при довольно простой сквозной интеграции с GitHub оно внедряется в ваши PR и можно ревьюить код, наблюдая покрытие по аналогии с Cubertura в GitLab.

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

Поэтому я решил поделиться с вами своим опытом интеграции со Scrutinizer CI, рассказать о нюансах и тд...

Поехали
Total votes 16: ↑16 and ↓0+16
Comments7

Искусство компонентов. Пишем карточку контакта Facebook Messenger

Reading time12 min
Views8.7K
Вполне возможно оценить компонент и сказать, что он легко пишется на HTML и CSS. Соглашусь, это легко, когда вы работаете, только чтобы практиковаться, но в реальном проекте всё по-другому. Идеальный адаптивный компонент, который вы только что создали, быстро перестаёт работать, когда сталкивается с реальным контентом настоящего проекта. Почему? Потому, что, пока вы рассуждаете о разработке компонента, вы можете упустить крайние случаи. Сегодня, специально к старту нового потока нашего курса по веб-разработке, поделюсь переводом статьи, в которой показан простой на первый взгляд компонент, за которым стоит огромная работа. Ради реалистичности это будет пример прямо из Facebook Messenger.


Приятного чтения!
Total votes 25: ↑23 and ↓2+21
Comments7

Taiga UI — библиотека компонентов под Angular, которую вам стоит попробовать

Reading time5 min
Views22K

Привет!

Саша Инкин и я регулярно пишем на Хабр статьи по Angular. Почти все они основаны на нашем опыте разработки большой библиотеки компонентов.

Эту библиотеку мы развиваем, перерабатываем и дополняем уже несколько лет, а свои идеи проверяем на нескольких десятках проектов Тинькофф Бизнеса и внутренних систем компании. Мы рады сообщить: выложили нашу библиотеку в открытый доступ!

В этой статье хочу описать основные концепции и практики, на которых строится библиотека, а также рассказать, почему ее стоит внедрить как в новые проекты, так и в уже готовые — с иными компонентами или UI Kit’ами.

Что там за Taiga UI?
Total votes 43: ↑43 and ↓0+43
Comments29

Как вернуться в прошлое и прожить заново? Как изменить событие в прошлом? Что такое время?

Reading time16 min
Views277K

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

Читать далее
Total votes 30: ↑16 and ↓14+2
Comments35

Information

Rating
3,844-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity