Pull to refresh
0
0

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

Send message

Высокодоступный MySQL на конвейере

Reading time15 min
Views3.8K

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

Поможет нам в этом Дмитрий Смаль, руководитель подразделения Managed MySQL и SQL Server в Yandex Cloud. Каждый день он занимается эксплуатацией и автоматизацией СУБД, а до этого делал нагруженные и не очень web-приложения. В целом любит делать разные интересные штуковины, которые работают! Сегодня мы с ним будем говорить про решение для высокодоступного MySQL.

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

Проектирование эффективной системы кэширования для высоконагруженной системы

Reading time5 min
Views23K

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

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

Об эффективном использовании заметок на примерах из работы и личной жизни

Level of difficultyMedium
Reading time5 min
Views5.6K

Личная жизнь – штука сложная, работа – ещё сложнее. В условиях поистине огромной кучи «контекстов» не забывать даже самые важные вещи бывает непросто, а делать то, что надо и когда надо – порой просто невозможно. Нерешаемая задача? Отнюдь. Всё уже на самом деле давно изобретено для решения этой проблемы, просто надо знать методы и инструменты, а также немного научиться на собственном опыте. В этой статье я расскажу как об известных, так и о моих собственных методиках «упорядочивания хаоса».

Читать далее
Total votes 10: ↑8 and ↓2+8
Comments23

Избавляемся от легаси: паттерн «Перехват Событий»

Reading time7 min
Views1.7K

Когда мы постепенно переводим легаси систему на новые рельсы, возникает множество случаев, когда само легаси и то, чем мы его заменяем должны взаимодействовать. Поскольку внесение изменений в легаси — это всегда долго, дорого и сложно, нам нужен механизм, который сможет интегрировать возможности новой системы, минимизируя при этом воздействие на легаси. Разбираемся, как можно использовать паттерн «Перехват Событий», чтобы пересылать их в новую систему.

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

Пайплайны в GitLab для микросервисов

Reading time10 min
Views16K

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

Начнем с основ на примере монолитного приложения, а потом усложним их микросервисами и постараемся избавиться от однотипного кода. А еще…
Читать дальше →
Total votes 57: ↑57 and ↓0+74
Comments4

Полезные практики написания поддерживаемого кода на PHP

Level of difficultyEasy
Reading time5 min
Views6.9K

Привет, меня зовут Алексей и я должен признаться, я PHP разработчик. Последние несколько лет плотно занимаюсь проектамиь на symfony и решил поделиться с сообществом практиками, которые стараюсь соблюдать при работе.

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

Читать далее
Total votes 13: ↑10 and ↓3+14
Comments59

«Когда будет готово?». Декомпозируем задачи и оцениваем сроки без фатальных ошибок

Level of difficultyMedium
Reading time11 min
Views15K

Всем привет! Я Виктор Брыксин, руковожу разработкой Яндекс Телемоста. В статье поговорим про декомпозицию задач в проекте и как можно получить реальные сроки его выполнения.

Спойлер: вы все равно ошибетесь, прогнозируя сроки. Но что можно сделать? Минимизировать шанс на ошибки и сделать их менее фатальными. Я расскажу про рабочие инструменты, которые помогли мне в свое время, — брать их на вооружение или нет, решайте сами. Если вы не знаете, как подступиться к декомпозиции сложного проекта и с чего начать, — эта статья вам в помощь.

Читать далее
Total votes 37: ↑37 and ↓0+41
Comments6

Основные принципы разработки (SOLID, KISS и т. д.)

Level of difficultyEasy
Reading time21 min
Views13K

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

В общем вас ждет теория, ещё теория, словесные примеры и даже примеры кода (он на С++, но написан понятно).

А еще это полезно знать на собесах :-)

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

Применение чистой архитектуры в Go

Level of difficultyHard
Reading time13 min
Views13K


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

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

Большинство этих инструментов – это частности, и выбор большинства из них (кроме языка программирования) можно на некоторое время отложить, пока проект не окрепнет. Поэтому на ранних этапах разработки проекта стоит уделить внимание не тому, при помощи каких инструментов пойдёт реализация. Лучше смоделировать предметную область проекта, а к вышеупомянутым инструментам подходить так, как следует — то есть, как к частностям. Разумеется, чтобы проект был реализован, с такими деталями тоже нужно определиться, но они могут оставаться в некоторой отдельной части кода, не относящейся к предметной области — там, где их будет легко менять, удалять или заменять по нашему усмотрению.

Для решения именно таких проблем с сильной связностью кода многоопытные инженеры создали ряд архитектурных паттернов. Таковы, в частности, чистая архитектура Роберта Мартина («дядюшки Боба»), гексагональная архитектура Алистера Кокбёрна и явная архитектура Герберто Грацы.
Читать дальше →
Total votes 24: ↑22 and ↓2+31
Comments5

Как построить убежище и (не)облажаться

Reading time11 min
Views18K

Вселенная культовой игры Fallout получила очередное перерождение с выходом сериала от Amazon. Хотя фабула произведения (почти) и не пересекается с играми, главная сюжетная арка осталась прежней: сливки общества укрываются в убежищах от ядерного безобразия, а выйдя на поверхность, оказываются совершенно не готовы к царящей там анархии. Как построить качественный бункер и не облажаться, и что на самом деле случится с людьми и убежищем даже не за двести, а всего за два года изоляции? Под впечатлением от сериала вспоминаем самый масштабный эксперимент по созданию «прототипа убежища» и разбираемся, насколько обнадеживающими оказались его результаты. Спойлер — не очень.

Читать далее
Total votes 57: ↑53 and ↓4+63
Comments9

Трудности перевода в разработке: как делать интернациональные проекты и говорить с пользователями на одном языке

Reading time15 min
Views4.7K

В современных приложениях и сервисах часто нужна интернационализация (i18n, от англ. internationalization). Она позволяет создавать интерфейсы с учётом культурных и языковых особенностей пользователей из разных стран. Это требует не только простого перевода, но и некоторых технических решений, порой довольно сложных.

Меня зовут Володин Сергей, я работал руководителем команды разработки VK WorkMail. Сегодня расскажу о том, как инфраструктура переводов позволяет поддерживать 10 языков в нашем продукте и какие технические нюансы стоит учитывать при работе с разными языками. Интернационализация интерфейсов — довольно комплексная и непростая история, хотя на первый взгляд может показаться не слишком приоритетной задачей. Более того, о ней нужно начинать думать в самом начале разработки, чтобы впоследствии не наломать дров.

Читать далее
Total votes 27: ↑26 and ↓1+36
Comments5

Интернационализация от i до n: как мы переводим интерфейсы в Фантехе Яндекса

Level of difficultyMedium
Reading time7 min
Views4.2K

Привет! Меня зовут Александр Поляков, я руководитель команды i18n-разработки в Фантехе Яндекса. Мы помогаем сервисам компании выходить на международные рынки, а именно решаем задачи, связанные с интернационализацией и локализацией интерфейсов.

В этом посте расскажу:

какие именно решения для интернационализации фронтенда мы разрабатываем;

какие есть правила форматирования данных для разных локалей и как определять эти локали;

о проблемах переводов в современных реалиях.

Если вы в своем проекте тоже занимаетесь локализацией для новых рынков или вам просто интересно, как это работает, добро пожаловать под кат.

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

Не так уж и страшен этот FAANG: 8 мифов о собеседованиях в BigTech

Level of difficultyEasy
Reading time9 min
Views30K

Привет, на связи таинственный Software Engineer из FAANG компании, пишущий только о собеседованиях. Ранее мы уже сравнивали Тинькофф с FAANG’oм и отказывались от миллионов RSU в Озон, а теперь поговорим о собеседованиях в BigTech: в знаковые для индустрии зарубежные компании, оффер которых — это билет в будущее.

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

Читать далее
Total votes 33: ↑25 and ↓8+26
Comments14

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views267K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Total votes 273: ↑272 and ↓1+323
Comments348

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

Level of difficultyEasy
Reading time13 min
Views2.5K

Привет, Хабр!

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

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

Читать далее
Total votes 11: ↑8 and ↓3+7
Comments0

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views197K

Привет, Хабр!

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее
Total votes 156: ↑149 and ↓7+177
Comments178

Парсинг Instagram в промышленных масштабах

Reading time28 min
Views38K

В декабре 2020 года, завершив работать в научном институте, я увлёкся задачей добычи данных из соцсетей, в частности из Инстаграма. Прежде я работал только с готовыми данными, поэтому мне всегда было интересно, как эти данные можно добывать. За несколько дней до Нового Года я написал достаточно базовую статью про то как парсить Инст. В первых числах января мне написал заказчик и попросил сделать для него масштабный парсер инстаграма, который был бы способен делать более 10.000 запросов в сутки.

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

В рамках данной статьи я хочу рассказать про путь развития своего Pet-Project в потенциально мощный и серьёзный инструмент. Впереди вас ждёт увлекательное путешествие от хранения данных в простых Json-ах на жестком диске сервера, до облачной базы данных и автоматической инициализации cron расписания запуска процессов внутри докер контейнера, поехали!

Поехали!
Total votes 20: ↑15 and ↓5+13
Comments14

Как интегрировать авторизацию через Госуслуги (ЕСИА) с помощью Docker и Typescript

Reading time6 min
Views39K

Привет, Хабр! В одном из постов блога мой коллега Иван писал о нашем блокчейн-сервисе для онлайн-голосований WE.Vote. Он подробно разобрал, как работает WE.Vote с точки зрения технологий. Но чтобы сервисы удаленного голосования можно было использовать для принятия официальных решений юрлиц, не хватает еще одного важного компонента — достоверной верификации участников. В России для этого можно провести интеграцию с ЕСИА (Единой Системой Идентификации и Аутентификации) — проще говоря, с Госуслугами. Интеграция эта заметно отличается от интеграции с другими oauth2-сервисами, как, например, Google или VK. В этом посте мы постараемся помочь тем, кто захочет интегрировать ЕСИА в свой сервис через стек, подобный нашему, а также дадим несколько полезных ссылок по ЕСИА в принципе.

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

Как устроены интернет-платежи в Dodо

Reading time25 min
Views12K

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

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

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

Льготная ипотека для IT-специалистов — детальный разбор

Reading time4 min
Views207K

30 апреля вышло постановление, в котором зафиксированы условия выдачи льготной ипотеки IT-специалистам. Разбираем непонятные и самые больные моменты.

Читать далее
Total votes 29: ↑28 and ↓1+30
Comments232
1
23 ...

Information

Rating
Does not participate
Location
Россия
Registered
Activity