Как стать автором
Обновить
2
0
Роман @Gobl1n

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

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

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

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

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

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

Читать далее
Всего голосов 173: ↑169 и ↓4+165
Комментарии174

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

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

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

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

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

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

Уровень сложностиПростой
Время на прочтение49 мин
Количество просмотров33K
image
Dendy Junior II Автор: Ravy

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

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

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

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

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

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

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

Читать далее
Всего голосов 14: ↑9 и ↓5+4
Комментарии38

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Всем привет!

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

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

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

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

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Хочется кубер, но колется...
Всего голосов 48: ↑47 и ↓1+46
Комментарии32

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

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

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

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

Читать далее
Всего голосов 53: ↑50 и ↓3+47
Комментарии96

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

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


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


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

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


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

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


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

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


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

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

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

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

Время на прочтение5 мин
Количество просмотров50K
Доброго времени суток, уважаемые хабровчане.

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

Начало


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

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

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

20 Eloquent ORM трюков

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

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

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии19

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

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

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

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

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

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

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

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

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

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

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

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

Поехали
Всего голосов 16: ↑16 и ↓0+16
Комментарии7

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

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


Приятного чтения!
Всего голосов 25: ↑23 и ↓2+21
Комментарии7

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

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

Привет!

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

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

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

Что там за Taiga UI?
Всего голосов 43: ↑43 и ↓0+43
Комментарии29

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

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

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

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

Информация

В рейтинге
3 875-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность