Pull to refresh
1
0

User

Send message

Архитектурный паттерн для обработки больших данных: Lambda

Level of difficultyHard
Reading time13 min
Views11K

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

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

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

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

Как сделать вакансию, на которую будут откликаться — инструкция

Level of difficultyEasy
Reading time5 min
Views8.6K

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

В общем-то, все ответы под катом.

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

Сбер. Как некрасиво поступить на конкурсе красоты

Reading time13 min
Views53K

Хабр - не жалобная книга, я знаю. Но тут история про код, с примерами, разбором антипаттернов и всё такое, поэтому я рискну.

Всё началось, когда я узнал про конкурс красоты кода от Сбера. Я как раз хотел поучаствовать в каком-нибудь эпичным конкурсе, а тут как раз он мне и подвернулся, тем более что я - тот человек, которому есть что рассказать про красивый код. Я даже целую статью запилил о том, как писать красивый и понятный код. Так что что я решил, что в данном случае мои шансы на победу - в отличие от остальных конкурсов - всё же больше 0%. Кроме того, я хотел выступить на конференции PiterPy (спойлер: хрен мне), чтобы рассказать там про красивый код и всё такое, поэтому участие в конкурсе и сравнение результатов было бы классным подспорьем.

Что же пошло не так?
Total votes 235: ↑220 and ↓15+268
Comments94

REST API vs GraphQL: в чём между ними разница

Reading time7 min
Views13K

Сегодня в среде разработчиков часто продвигают GraphQL в качестве замены REST, хотя обе технологии можно использовать одновременно. В этой статье Анастасия Иванова, технический писатель платформы МТС Exolve (входит в экосистему МТС), рассмотрит интерфейсы подробнее, чтобы понять, как выбрать подходящее решение под каждый конкретный проект. Подробности — под катом.

Читать далее
Total votes 19: ↑14 and ↓5+15
Comments14

Самый маленький Docker образ Rust приложения

Level of difficultyMedium
Reading time5 min
Views11K

Привет %username%, эта статья про то, как поместить Rust приложение в Docker и получить образ размером с бинарный файл (6 Мб). А также про причины, которые привели к переходу с NodeJS на Rust. Отдельная пара слов о проблемах вначале, переходе на Go, и том, как команда Rust устранила эти проблемы за пол года.

TL;DR Dockerfile в конце статьи и ссылка на example репозиторий

Читать далее
Total votes 36: ↑35 and ↓1+43
Comments16

Лучше быть, чем казаться. 10 шагов, чтобы стать «вкусным» кандидатом на собеседовании

Level of difficultyEasy
Reading time8 min
Views63K

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

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

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

Читать далее
Total votes 55: ↑35 and ↓20+21
Comments87

10 лучших практик логирования в Python

Level of difficultyEasy
Reading time19 min
Views36K

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

В этой статье мы рассмотрим лучшие практики логирования в Python. Следуя им, вы сможете обеспечить информативность, практичность и масштабируемость генерируемых логов. Давайте начнём!

Читать далее
Total votes 50: ↑49 and ↓1+70
Comments19

10  наиболее часто используемых 1-кубитных квантовых вентилей

Reading time6 min
Views2.2K

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

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

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

Вот, например, схема с одним кубитом, инициализированным состоянием |0〉, которая выполняет одну операцию, X, а затем измеряет кубит.            

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

Повышение эффективности SQL-запросов: советы и рекомендации

Level of difficultyMedium
Reading time12 min
Views18K

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

Читать далее
Total votes 19: ↑15 and ↓4+14
Comments7

Почему с моим менеджером так тяжело работать или проблемы в общении с бывшими гуманитариями в IT

Level of difficultyEasy
Reading time8 min
Views30K

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

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

Но это не помогает... А что поможет?
Total votes 65: ↑32 and ↓33+10
Comments160

Четыре года с умным домом: личный опыт и интересные сценарии

Reading time22 min
Views56K

Меня зовут Виктор, я backend-разработчик в финансовом маркетплейсе Банки.ру.

Последние годы я интересуюсь темой умного дома. Хочу поделиться тем, с чего я начинал и к чему пришел. Эта статья будет полезна тем, кто: хочет понять как устроен self-hosted умный дом; хочет перенять опыт и избежать чужих ошибок; уже имеет умный дом и интересуется прикладными сценариями.

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

Проектирование высокопроизводительных кэширующих решений с использованием Redis и Memcached

Level of difficultyHard
Reading time15 min
Views9.6K

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

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

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

Читать далее
Total votes 14: ↑11 and ↓3+11
Comments5

Вы кто такие, я вас не знаю, или Как мы делаем JWT-аутентификацию

Level of difficultyMedium
Reading time11 min
Views56K

Привет! Меня зовут Данил, я backend-разработчик в Doubletapp. Почти во всех наших проектах есть пользователи, которые могут войти в систему. А значит, нам почти всегда нужна авторизация. Мы используем авторизацию, построенную на JSON Web Token. Она отлично сочетает в себе простоту реализации и безопасность для приложений.

В интернете есть много разных материалов с объяснением, что такое JWT и как им пользоваться. Но большинство примеров ограничиваются выдачей токена для пользователя. В этой статье я хочу рассказать не только о том, что такое JWT, но и как можно реализовать работу с access и refresh токенами и решить сопутствующие проблемы. Будет немного теории и много практики. Присаживайтесь поудобнее, мы начинаем.

Путеводитель:

Что такое JSON Web Token?
Использование и реализация
Простая реализация JWT
Access и refresh tokens
Как отозвать токены
Доступ с нескольких устройств
Удаление старых данных
Резюмируем

Читать далее
Total votes 18: ↑16 and ↓2+17
Comments45

Когда стоит заменить A/B-тестирование сэмплированием Томпсона

Level of difficultyMedium
Reading time7 min
Views2.9K

Какую рекламу показать пользователю, красную или синюю?

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

Но как узнать, какой из баннеров имеет наибольший уровень кликабельности?

Чаще всего для ответа на этот вопрос используется A/B-тестирование. Группа пользователей разделяется пополам, и первой части показывают один баннер, а второй — другой. После этого можно вычислить уровень кликабельности и выбрать лучший из вариантов.

Предположим, что в конце A/B-тестирования у вас получились следующие результаты:

Читать далее
Total votes 8: ↑7 and ↓1+10
Comments2

Невидимая проблема текстовых редакторов на смартфонах

Level of difficultyEasy
Reading time15 min
Views24K

Когда я рассказываю о своих исследованиях редактирования текста на мобильных в Google, то обычно сталкиваюсь с непониманием и немного враждебным «Разве на телефонах нельзя редактировать тексты? В чём проблема?»

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

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

Пробиваем дыры в NAT

Level of difficultyHard
Reading time14 min
Views27K

NAT - механизм, создающий множество проблем для P2P коммуникации, в силу того, что нередко адрес пира может не иметь доступного из любой точки мира, "белого" адреса. Существует ряд способов обхода NAT, но их документация, равно как и данные об их надежности, достоинствах и недостатках оставляет желать лучшего, а потому мы рассмотрим наиболее простой, и в то же время надежный метод - "hole punching".

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

5 советов разработчику перед стартом своего стартапа. Опыт после 750 000 рублей

Level of difficultyEasy
Reading time6 min
Views24K

Всем привет! Меня зовут Ростислав, я full-stack разработчик. Последние 3 года у меня есть хобби - доведение пет-проектов до стадии финансово рентабельных IT продуктов. Сейчас я хочу поделиться своими советами о запуске проекта, исходя из своего опыта.

Читать далее
Total votes 45: ↑41 and ↓4+42
Comments42

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию

Level of difficultyEasy
Reading time12 min
Views106K

Гуд ньюз эвриван! Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.

Читать далее
Total votes 131: ↑130 and ↓1+158
Comments162

Построение распределенной системы очередей сообщений с RabbitMQ и Python

Reading time22 min
Views19K

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

RabbitMQ — это мощный и гибкий брокер сообщений, который широко используется для создания распределенных систем, поддерживающих обмен данных между различными компонентами приложения. Он был разработан с учетом принципов протокола Advanced Message Queuing Protocol (AMQP), что делает его стандартом в индустрии для обработки сообщений.

Читать далее
Total votes 21: ↑15 and ↓6+14
Comments0

Как мы версию Sanic’а повышали

Level of difficultyEasy
Reading time8 min
Views2.7K

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

Узнать как это было
Total votes 23: ↑23 and ↓0+23
Comments11

Information

Rating
Does not participate
Registered
Activity