Pull to refresh
31
0
Туговиков Станислав @latrekc

User

Send message

Citymobil — пособие для стартапов по увеличению стабильности на фоне роста. Часть 1

Reading time12 min
Views10K


Этой статьей я открываю короткий цикл из двух статей, в которых подробно расскажу, как нам удалось за несколько месяцев в разы увеличить стабильность сервисов Citymobil. Статья начинается с рассказа про наш бизнес, про задачу, про причину появления самой задачи повышения стабильности и про ограничения. Citymobil — это быстрорастущий агрегатор такси. За 2018 год он вырос более чем в 15 раз по количеству успешно совершенных поездок. В некоторые месяцы рост превышал 50 % по сравнению с предыдущим месяцем.

Бизнес рос как на дрожжах во все стороны (и растет до сих пор): повысилась и нагрузка на серверы, и размер команды, и частота выкаток. Вместе с этим появились и новые угрозы стабильности сервиса. Перед компанией встала важнейшая задача — не останавливая рост бизнеса повысить стабильность. В этой статье я расскажу, как нам удалось реализовать эту задачу в короткие сроки.
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments28

Citymobil — пособие для стартапов по увеличению стабильности на фоне роста. Часть 2. Какие бывают виды аварий?

Reading time20 min
Views7.7K


Это вторая статья из цикла про то, как мы в Citymobil увеличивали стабильность сервиса (первую можете почитать здесь). В этой статье я углублюсь в конкретику разбора аварий. Но перед этим я освещу один момент, о котором я должен был подумать заранее и осветить в первой статье, но не подумал. И о котором узнал по фидбеку читателей. Вторая статья дает мне шанс устранить этот досадный недочет.
Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments14

Раскрываем возможности map в nginx

Reading time6 min
Views131K
map — мощная директива, которая может сделать ваши конфиги простыми и понятными.
Возможно, это самая недооцененная директива, из за того, что не все знают всех её возможностей.
Она в компактной форме помогает обрабатывать переменные, GET параметры, заголовки, куки и наборы бекендов (upstream).
Попробую раскрыть её возможности хабрапользователям.
Раскрыть возможности map
Total votes 91: ↑91 and ↓0+91
Comments11

Почему команда SoundCloud перешла на микросервисы

Reading time4 min
Views31K
Ранее мы уже рассказывали о дата-центре фотосервиса imgix, описывали детективную историю поиска проблем с SSD-дисками проекта Algolia, а сегодня представляем вашему вниманию обсуждение того, как команда стримингового сервиса SoundCloud перешла на использование микросервисов.

Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments6

Как выбрать язык программирования?

Reading time7 min
Views52K


Именно таким вопросом задалась команда Почты Mail.Ru перед написанием очередного сервиса. Основная цель такого выбора — высокая эффективность процесса разработки в рамках выбранного языка/технологии. Что влияет на этот показатель?
  • Производительность;
  • Наличие средств отладки и профилирования;
  • Большое сообщество, позволяющее быстро найти ответы на вопросы;
  • Наличие стабильных библиотек и модулей, необходимых для разработки веб-приложений;
  • Количество разработчиков на рынке;
  • Возможность разработки в современных IDE;
  • Порог вхождения в язык.

Кроме этого, разработчики приветствовали немногословность и выразительность языка. Лаконичность, безусловно, так же влияет на эффективность разработки, как отсутствие килограммовых гирь на вероятность успеха марафонца.
Читать дальше →
Total votes 57: ↑39 and ↓18+21
Comments98

Разработка собственного решения: риски и ответственность

Reading time11 min
Views15K
Привет, Хабр! В этой статье речь пойдет о том, как мы в компании Mail.Ru Group подходим к написанию кода; когда использовать готовые решения, а когда лучше писать самим; ну, а самое главное — какие шаги нужно сделать, чтобы ваша работа не оказалась безрезультатной и принесла пользу окружающим. Все эти нюансы будут рассмотрены на примере задачи создания нашей внутренней JSSDK, которая возникла из-за необходимости объединения кодовой базы двух проектов.


Иллюстрация Michael Parkes
Продолжить
Total votes 39: ↑38 and ↓1+37
Comments22

Силовые тренировки: раскатываем HTTPS под высокими нагрузками

Reading time6 min
Views17K
В сентябре Почта Mail.Ru включила HTTPS-шифрование для всех пользователей.

Преимущества защищенного соединения очевидны всем разработчикам крупных интернет-проектов. Большинство современных web-серверов (nginx, Apache, etc) и браузеров поддерживают HTTPS. В то же время сайтов, на которых безопасный протокол включен всегда и по умолчанию, не так много. Почему это так? С какими трудностями мы столкнулись при поддержке HTTPS? Читайте под катом.
Читать дальше →
Total votes 49: ↑42 and ↓7+35
Comments33

Разрабатываем компилятор для учебного языка Cool на языке C# под .NET (Часть 1)

Reading time11 min
Views21K

Введение


Здравствуй, уважаемый хабраюзер.Я хотел бы тебе представить материал о практическом создании компилятора, который будет транслировать код, написанный на языке Cool, в код виртуальной машины CIL (Common Intermediate Language) под платформу .NET.Данный материал я решил разбить на две части из-за лени все сразу это описывать

В первой части будет описан процесс написания грамматики с учетом приоритетов операторов в среде ANTLR, а также генерации лексера и парсера под язык C#. Также в ней будут рассмотрены подводные камни, которые встретились у меня на пути. Таким образом я постараюсь хоть кому-нибудь сэкономить время (может быть для себя в будущем).

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

Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments14

Клавиатурные сокращения с Javascript

Reading time1 min
Views1.9K
Mousetrap — маленькая библиотека (1.4 KB) для обработки клавиатурных нажатий.

// single keys
Mousetrap.bind('4', function() { highlight(2); });
Mousetrap.bind("$", function() { highlight(3); }, 'keydown');
Mousetrap.bind('x', function() { highlight(4); }, 'keyup');

// combinations
Mousetrap.bind('command+shift+K', function() { highlight(7); });
Mousetrap.bind(['command+k', 'ctrl+k'], function() { highlight(8); });

// gmail style sequences
Mousetrap.bind('g i', function() { highlight(11); });
Mousetrap.bind('* a', function() { highlight(12)});

// konami code!
Mousetrap.bind('up up down down left right left right b a enter', function() {
    highlight([15, 16, 17]);
});

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

Работает в Internet Explorer 6+, Safari, Firefox, Chrome (с включенным Vimium не работает).

Пробуйте — craig.is/killing/mice
Total votes 58: ↑55 and ↓3+52
Comments28

Вышла PIE 1.0 Beta 5

Reading time1 min
Views1.4K


CSS3 PIE Beta 5


PIE делает Internet Explorer 6-9 способным отображать несколько наиболее полезных css3-свойств.


Новое:
— Поддержка линейных градиентов в ИЕ9. Используется svg, поэтому стало возможным использовать rgba в градиентах. Также можно использовать в сочетании с градиентами background-size/position/repeat;
— Поддержка border-image в ИЕ9 (используется svg), а также улучшенная поддержка этого свойства в старых ИЕ — теперь корректно скрывается настоящая граница, и border-width будет работать, если не задан border-style;
— Исправлена ошибка при указании непиксельных значений элементу, в результате чего он не мог иметь дочерние элементы;
— The background-origin и -clip корретно парсятся внутри -pie-background styles;
— Теперь padding у img-элементов рендерится корректно;
— Изменения стиля при срабатывании псевдо-классов :focus и :active теперь правильно обнаруживаются;
— Теперь можно использовать 'transparent' как цвет;
— В ИЕ с отключенным VML-движком не появятся ошибки, и будут использоваться не-ксс3-стили;
— Исправлены другие ошибки.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments21

Список дел для захвата мира

Reading time2 min
Views11K
image
MyAgenda — это сервис для ведения списков дел. Он настолько прост, что не требует регистрации.
Это вообще основная идея сервиса, сделать простые вещи действительно простыми.

Все мы когда-либо составляли списки дел, ничего сложного в этом нет.
Конечно, вести список на бумажке бывает не всегда удобно. Он может потеряться, истрепаться, его может съесть собака или кот куда-нибудь заиграет. А хочется чего-то такого простого и в электронном виде.
Именно поэтому и появился этот простой электронный список дел.
Не нужно регистрироваться, можно сразу взять и записать все дела. Очень легко, очень быстро.

Читать дальше →
Total votes 58: ↑45 and ↓13+32
Comments68

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity