Search
Write a publication
Pull to refresh
25
0
Митя Камаев @mitya_k

SuperPuper Backend Developer

Send message

Что лучше: подтверждение действия или возможность его отмены?

Reading time6 min
Views19K
В ходе разработки программного обеспечения наступает момент, когда нужно проектировать механизмы выполнения потенциально опасных действий. Пара случайных кликов — и пользователь поставит себя в неловкое положение перед начальством или безвозвратно уничтожит несколько часов работы. Как проектировать программы так, чтобы защитить их пользователей от подобных происшествий?

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



Несмотря на популярность вышеописанного механизма, использование диалогового окна подтверждения действия — это, в 90% случаев, неправильно. Поговорим о том, почему это так.
Читать дальше →

Orchestrator для MySQL: почему без него нельзя строить отказоустойчивый проект

Reading time5 min
Views9.7K
Любой крупный проект начинался с пары серверов. Cначала был один DB-сервер, потом к нему добавились слейвы, чтобы масштабировать чтение. И тут — стоп! Мастер один, а слейвов много; если уйдет один из слейвов, то всё будет хорошо, а если уйдет мастер — будет плохо: даунтайм, админы в мыле поднимают сервер. Что делать? Резервировать мастер. Мой коллега Павел уже писал об этом статью, я не буду ее повторять. Вместо этого расскажу, почему вам обязательно нужен Orchestrator для MySQL!
Читать дальше →

Лучшие практики Kubernetes. Создание небольших контейнеров

Reading time7 min
Views11K


Первый шаг развертывания в Kubernetes – это размещение вашего приложения в контейнере. В этой серии мы рассмотрим, как можно создать образ небольшого и безопасного контейнера.
Благодаря Docker, создание образов контейнеров никогда еще не было настолько простым. Укажите базовый образ, добавьте свои изменения и создайте контейнер.



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

Новый взгляд на Fullstack-разработку с фреймворком Ruby on Rails

Reading time12 min
Views9.2K
Можно ли всерьёз обсуждать fullstack-разработку? Если смотреть в сторону больших фреймворков для frontend и для backend, то разговор про fullstack выглядит сомнительно. Предлагаю посмотреть на термин fullstack с точки зрения Ruby on Rails и прежних более простых принципов реализации интерактивности на классических веб-страницах. Представляю обзор frontend-возможностей, предусмотренных во фреймворке Ruby on Rails или связанных с ним.

image
Читать дальше →

Как фриланс помог мне открыть свое агентство

Reading time10 min
Views7.3K

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


Здесь я расскажу о том, как грамотно перейти во фриланс, как сделать поиск клиентов эффективнее и к чему можно можно прийти за 1-2 года. Кроме самого фриланса, поделюсь еще и опытом открытия (собственного бизнеса ) – а именно это я и вижу главной целью ухода из найма.


До фриланса: качайте скиллы!


Заниматься бизнесом мне хотелось с детства. С восьми лет я зарабатывал на чем только мог: сначала снимался в рекламе и фильмах в качестве массовки, потом, с 14 лет, работал на разных низкоквалифицированных позициях: курьером, официантом, доставщиком, проводил инвентаризацию в магазинах. В 17 лет поступил в университет, но поскольку меня там ничему интересному не учили, я стал участвовать в разных инкубаторах, хакатонах и прочих активностях. Параллельно прочел все изданные к тому времени книги “Манн Иванов и Фербер” и “Альпина Паблишер”.


Что меня всегда привлекало – это маркетинг, и в качестве первого самостоятельного проекта я организовал бизнес-клуб, в который приглашал топов бизнеса выступать перед студентами. Собирая мероприятия, на которые приходило по 300 человек, я получал первые навыки работы с партнерами, биз-девом, рекламой, контентом. Фактически, это и был бизнес, только без денег. Благодаря ему я познакомился со своим первым работодателем и ментором – Ильей Балахниным, основателем одного из лучших независимых маркетинговых агентств Paper Planes. Он позвал меня вместе делать онлайн-университет, который запускала его компания. Проработав с ним бок-о-бок четыре месяца, запустив 4 потрясающих практических оффлайн курсов по стратегическому маркетингу и схожим дисциплинам, я набрался знаний о том, как работает агентство и рынок онлайн-образования, продажи, маркетинг и копирайтинг.

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

Reading time12 min
Views224K


Знаете что общего между ситуацией с уничтожением антенн сотовой связи и последней лентой Тарантино «Однажды в Голливуде»? Они оба делят людей на два противоположных лагеря.
Читать дальше →

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

Reading time10 min
Views100K
В 2010 году компания Nielsen Company анонсировала результаты очень интересного исследования. С помощью провайдеров компания проанализировала запросы более чем 21 миллиона американских компьютеров.

Оказалось, что 29% жителей США смотрит порно на работе. Колоссальное число, если подумать. В среднем за месяц такой любитель порно тратит на просмотр видео для взрослых 1 час 45 минут.

Но тут в 2020 начался карантин, большинство сотрудников перевели на удаленную работу, а PornHub неожиданно открыл бесплатный доступ к премиум-пакету. И понеслась. Официальной статистики пока нет, но мы уверены, что потребление порно-контента на карантине увеличилось многократно. В том числе и в рабочее время.

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

Читать дальше →

Обновление MySQL (Percona Server) с 5.7 до 8.0

Reading time8 min
Views18K


Прогресс не стоит на месте, поэтому причины обновиться на актуальные версии MySQL становятся всё более весомыми. Не так давно в одном из наших проектов настало время обновлять уютные кластеры Percona Server 5.7 до 8-й версии. Всё это происходило на платформе Ubuntu Linux 16.04. Как выполнить подобную операцию с минимальным простоем и с какими проблемами мы столкнулись при обновлении — читайте в этой статье.
Читать дальше →

Инфраструктура еды: как мы саппортим «Тануки»

Reading time6 min
Views6.3K


Перефразируя одного известного исторического деятеля, важнейшим из всех сервисов для нас является доставка. Что бы мы делали в нынешней ситуации без роллов или пиццы на дом — представлять не хочется. Так получилось, что 2 года назад мы приняли на поддержку одну из крупнейших сетей — «Тануки». Месячная аудитория сайта — порядка миллиона человек. Это теперь, в 2020 году. В 2018-м, когда «Тануки» начали сотрудничество с нами, она была в 2 раза меньше. Мы обеспечили безболезненный переезд в новый дата-центр и полностью переделали инфраструктуру — благодаря чему, собственно, сайт и приложения способны без проблем выдерживать возросшую нагрузку.

Временами мы сильно жалеем, что географически находимся далековато от ближайшего ресторана «Тануки»: иначе все свои успехи (и маленькие незадачи) заедали бы вкусными роллами.

В общем, сегодня мы хотим рассказать вам историю саппорта одного из крупнейших веб-проектов отечественной «индустрии гостеприимства».
Читать дальше →

Лучшие вопросы средней сложности по SQL на собеседовании аналитика данных

Reading time14 min
Views96K
Первые 70% курса по SQL кажутся довольно простыми. Сложности начинаются на остальных 30%.

С 2015 по 2019 годы я прошёл четыре цикла собеседований на должность аналитика данных и специалиста по анализу данных в более чем десятке компаний. После очередного неудачного интервью в 2017 году — когда я запутался в сложных вопросах по SQL — я начал составлять задачник с вопросами по SQL средней и высокой сложности, чтобы лучше готовиться к собеседованиям. Этот справочник очень пригодился в последнем цикле собеседований 2019 года. За последний год я поделился этим руководством с парой друзей, а благодаря дополнительному свободному времени из-за пандемии отшлифовал его — и составил этот документ.

Есть множество отличных руководств по SQL для начинающих. Мои любимые — это интерактивные курсы Codecademy по SQL и Select Star SQL от Цзы Чон Као. Но в реальности первые 70% из курса SQL довольно просты, а настоящие сложности начинаются в остальных 30%, которые не освещаются в руководствах для начинающих. Так вот, на собеседованиях для аналитиков данных и специалистов по анализу данных в технологических компаниях часто задают вопросы именно по этим 30%.

Удивительно, но я не нашёл исчерпывающего источника по таким вопросам среднего уровня сложности, поэтому составил данное руководство.
Читать дальше →

Хеш+кэш: оптимизация «потоковой» обработки

Reading time6 min
Views5.2K
Что делать, если в базу хочется записать массу «фактов» много большего объема, чем она способна выдержать? Сначала, конечно, приводим данные к более экономичной нормальной форме и получаем «словари», в которые будем писать однократно. Но как это делать наиболее эффективно?

Именно с таким вопросом мы столкнулись при разработке мониторинга и анализа логов серверов PostgreSQL, когда остальные способы оптимизации записи в БД оказались исчерпаны.

Сразу оговоримся, что наши коллекторы работают под управлением Node.js, поэтому с процессорными регистрами и кэшами мы никак не взаимодействуем. А вариант использования «стораджей» или внешних кэширующих сервисов/БД дает слишком большие задержки при входящих потоках в несколько сотен Mbps.

Поэтому мы стараемся кэшировать все в RAM, конкретно — в памяти JavaScript-процесса. Про то, как эффективнее это организовать, и пойдет речь дальше.
Читать дальше →

Мониторинг производительности MySQL для Grafana на изичах за 20 минут

Reading time2 min
Views14K
Привет, дорогой хабрянин и другой читающий сей рецепт вкусного и здорового мониторинга!

Мое имя — Михаил Андрианов и работаю я Тех.Директором в компании Emarsys уже целых 7 лет.

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

Почему разработчики такие медленные: распространенные проблемы и их решения

Reading time15 min
Views15K
Привет, Хабр! Представляю вашему вниманию перевод статьи Why Development Teams are Slow: Common Software Jams and Solutions автора Эрика Эллиота.



Если вы больше любите слушать, чем читать, то в аудио формате перевод доступен на Яндекс.Музыке и в Apple Podcasts

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

  • Нереалистичные ожидания
  • Слишком много открытых тикетов
  • Неконтролируемый объем задач
  • Накопление код ревью
  • Плохая подготовка
  • Выгорание разработчиков
  • Баги
  • Текучка кадров

Медлительность разработчиков — не корень проблемы. Это симптом других перечисленных проблем. В 100% случаев, если команда разработки работает слишком медленно — это вина руководителя. Но хорошая новость заключается в том, что вы в силах это исправить. Давайте рассмотрим каждый из пунктов подробнее, чтобы разобраться, что мы можем с каждым из них сделать.
Читать дальше →

IT — это средний класс с натяжкой. И как НЕ надо проводить собеседование с программистом

Reading time4 min
Views25K
Много лет опыта в разработке (или любом другом айти направлении). Десятки пройденных очных собеседований. Работа в крупных IT компаниях с высочайшей культурой кода. Навыки, которым позавидовал бы любой разработчик из силиконовой долины: НИЧЕГО из этого не даст вам шанса пройти собеседования у таких людей. И дело не в компетенции…

image
Читать дальше →

Free API Мосбиржи в формулах Microsoft Excel

Reading time3 min
Views99K
Ранее уже писал про получение данных с Московской биржи через формулы Google Таблиц. Однако остался вопрос — можно ли получать эти же данные при локальном использовании Microsoft Excel или его свободного аналога LibreOffice Calc? Без использования скриптов или ручного копирования.


Microsoft Excel с формулами получения данных с Мосбиржи

И на этот вопрос можно дать положительный ответ. Это даже более удобно, поскольку не приходится ожидать загрузки результатов работы функции IMPORTXML в Гугл Таблицах.

Аналогом этой функции в Excel и Calc выступает связка формул: WEBSERVICE (ВЕБСЛУЖБА) + FILTERXML (ФИЛЬТР.XML).
Microsoft Excel или LibreOffice Calc плюс ИСС Мосбиржи

Теоретические структуры данных и их применение в JavaScript. Ч1. Пары

Reading time8 min
Views5.7K
«Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и их взаимосвязях», — Линус Торвальдс, создатель Linux.
Примем в качестве аксиомы, что очень часто решение любой задачи в программировании сводится к выбору правильной структуры данных. Данную аксиому можно доказать, но это долго и статья немного о другом. Сегодня мы поговорим об одной из самых простых теоретических структур, о паре.

Пара — это структура данных, которая хранит в себе два любых элемента данных, подразумевая, что мы хотим как-то логически объединить их в один. Она решает именно эту задачу, т.е. если некие элементы данных а и b нам нужно представить в виде аb, то мы можем реализовать эту конструкцию на паре.
Читать дальше →

Ресурсы для веб-разработчика: API и UI-элементы

Reading time3 min
Views10K
У себя в блоге мы готовили несколько дайджестов с open source бенчмарками Linux-серверов для сисадминов (раз, два). Сегодня расскажем об открытых инструментах для веб-разработчиков.

Под катом — ресурсы с векторными и SVG-иконками и API.

Читать дальше →

IT: Уйти и не вернуться

Reading time6 min
Views60K
image

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

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

3 причины, почему специалисты покидают IT


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

Все мы знаем, что со временем можно настолько автоматизировать свою работу, что даже напрягаться не придётся. Рутина, а также ежедневное многочасовое сидение в соц. сетях и чтение новостей может так надоесть, что на работе не удержит даже хорошая по общим меркам зарплата. Как правило, в эту категорию попадают люди, которые еще не нашли то поле деятельности, которое их будет драйвить по-настоящему. Те, которые пока не ставили долгосрочные цели и не строили свою карьеру сознательно.
Читать дальше →

8 распространенных структур данных на примере JavaScript

Reading time10 min
Views108K


Звучит ли это знакомо: «Я начал заниматься веб разработкой после прохождения курсов»?

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

1. Стек (вызовов) (Stack)




Стек следует принципу LIFO (Last In First Out — последним вошел, первым вышел). Если вы сложили книги друг на друга, и захотели взять самую нижнюю книгу, то сначала возьмете верхнюю, затем следующую и т.д. Кнопка «Назад» в браузере позволяет перейти (вернуться) на предыдущую страницу.
Читать дальше →

Information

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

Specialization

Backend Developer
Lead
From 500,000 ₽
Node.js
TypeScript
MySQL
PostgreSQL
Docker
Nginx
RabbitMQ
Linux
High-loaded systems
Designing application architecture