Обновить
1
0

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

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

Snowflake, Anchor Model, ELT и как с этим жить

Время на прочтение15 мин
Охват и читатели16K
Привет! Меня зовут Антон Поляков, и я разрабатываю аналитическое хранилище данных и ELT-процессы в ManyChat. В настоящий момент в мире больших данных существуют несколько основных игроков, на которых обращают внимание при выборе инструментария и подходов к работе аналитических систем. Сегодня я расскажу вам, как мы решили отклониться от скучных классических OLAP-решений в виде Vertica или Exasol и попробовать редкую, но очень привлекательную облачную DWaaS (Data Warehouse as a Service) Snowflake в качестве основы для нашего хранилища.

С самого начала перед нами встал вопрос о выборе инструментов для работы с БД и построении ELT-процессов. Мы не хотели использовать громоздкие и привычные всем готовые решения вроде Airflow или NiFi и пошли по пути тонкой кастомизации. Это был затяжной прыжок в неизвестность, который пока продолжается и вполне успешно.

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

Микросервисная архитектура в разработке приложений: преимущества и недостатки

Время на прочтение8 мин
Охват и читатели26K

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

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

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

Читать далее

Формула счастья программиста — Самый полный список требований к работе

Время на прочтение15 мин
Охват и читатели21K

Как выглядит идеальная работа программиста? Что делает делает хорошую работу хорошей? Хотя бы не плохой?

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

А сталкивались ли вы с такой ситуацией?

Читать далее

Моя история подготовки к интервью в FAANG

Время на прочтение3 мин
Охват и читатели18K

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

Читать далее

Введение в Event Modeling

Время на прочтение12 мин
Охват и читатели15K

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

Читать далее

Продолжаем разгонять FizzBuzz

Время на прочтение5 мин
Охват и читатели8.4K

После написания первой статьи про FizzBuzz (которая неожиданно для меня стала выбором редакции на Технотексте 2021) у меня появлялись мысли о том, как еще можно ускорить, но все время было не до того. И тут мне прилетает перчатка.

Читать далее

Атака на String.hashCode: прообразы и коллизии

Время на прочтение8 мин
Охват и читатели15K
Дюк прощупывает сезон Java

Как-то раз мне понадобилось несколько наборов строк с коллизией по хеш-коду. То есть таких, чтобы значение String::hashCode() совпадало для всех строк в наборе.

Блуждание по интернету не дало результатов, примеров было мало и все они довольно однообразны. Поиск по словарям подарил забавную пару "javascript's".hashCode() == "monocle".hashCode(), но практической пользы не принёс. Полный перебор не рассматривался в виду скорой тепловой смерти вселенной.

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

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

Грокаем монады

Время на прочтение7 мин
Охват и читатели14K

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

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

Читать далее

Необычные проекты интернета вещей. Пёс-охранник на Raspberry Pi и умная видеоняня

Время на прочтение4 мин
Охват и читатели5.4K


Умный дом делает жизнь комфортнее и безопаснее. Безопасность никогда не бывает лишней. Одна из задач интернета вещей — защита человека и его жилища, поэтому мы ставим камеры видеонаблюдения с датчиками движения и уведомлениями через интернет. В любой момент можно достать телефон и проверить, что в дом не пробрались еноты.
Читать дальше →

Разработка драйвера сетевого адаптера для Linux. Часть 1

Время на прочтение25 мин
Охват и читатели33K

В этой статье мы рассмотрим как устроен драйвер сетевого адаптера для Linux.

Cтатью разделим на две части.

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

Хотя при разработке драйверов необходимо использовать стандартные ядерные фреймворки, такие как clock, reset, libphy и пр., поначалу мы будем работать с адаптером напрямую через регистры состояния и управления. Это позволит нам детально разобраться с аппаратной частью.

Во второй части статьи приведем драйвер к нормальному виду, с использованием стандартных фреймворков и описанием того, что надо указать в Device Tree, и рассмотрим как передавать сетевые пакеты.

Нам нужна макетная плата с сетевым адаптером, на которую можно поставить Linux. Возьмем Orange Pi Zero на платформе Allwinner H2+. В состав платформы входят четыре процессорных ядра Cortex-A7, поддерживается ОЗУ стандартов LPDDR2, LPDDR3, DDR3, широкий спектр соединений и интерфейсов, в том числе сетевой адаптер, для которого мы будем разрабатывать драйвер. Подробное описание платформы тут, документация на платформу Allwinner H3 Datasheet.

Читать далее

[API как продукт] Управление ожиданиями

Время на прочтение4 мин
Охват и читатели1.6K

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

Это последняя глава моей книги, посвящённой API. Книга целиком: ссылка на книгу.

Читать далее

.Net Microservices The Hardcore Way: туториал от инженеров Microsoft, получаем PROD опыт

Время на прочтение4 мин
Охват и читатели16K

Для тех кто хочет погрузиться в проектирование .Net микросервисов, Kubernetes, Azure и Azure DevOps процессы. 

Читать далее

Пробить потолок: куда может расти специалист уровня сеньор

Время на прочтение6 мин
Охват и читатели10K

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

Читать далее

Обзор паттернов интеграции микросервисов. Часть 1

Время на прочтение7 мин
Охват и читатели45K

Недавно мы проводили вебинар «Обзор паттернов интеграции микросервисов». На нём энтерпрайз архитектор Пётр Щербаков рассказал, зачем IT-специалистам нужны шаблоны интеграции, и разобрал, для каких задач они подходят, а для каких нет. Для тех, кто пропустил или предпочитает читать, а не смотреть подготовили текстовый обзор интеграционных паттернов: Circuit Breaker, Sidecar, Ambassador, Anti-Corruption Layer и Async Request-Reply.

Читать далее

Все «косячат» – 2

Время на прочтение4 мин
Охват и читатели17K

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

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

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

Архитектура Архитектуры. Шаг 10. Это конец

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели7.5K

Знаете, как называется система, которая приносит постоянную прибыль, работает без особых проблем и обслуживается маленькой командой? Продукт с заканчивающимся сроком обслуживания!

Время ли хоронить архитектора?

Как за две недели освоиться с реальным проектом: стандарт OMG Essence

Время на прочтение10 мин
Охват и читатели14K

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

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

Читать далее

«Звезда» — оптимальная структура данных при переходе на российский BI

Время на прочтение20 мин
Охват и читатели16K

Бизнес-аналитика — интереснейшее направление работы с данными. С одной стороны пользователи хотят видеть красивые дашборды и простые self-service платформы, а с другой стороны, для организации всего этого порой требуется колоссальная работа по организации витрин, моделей данных, оптимизации запросов, а вместе с этим — мощный сервер для переработки миллиардов записей. В этом посте я расскажу о том, почему для работы с BI сегодня как никогда актуальна такая модель данных как “Звезда”, и как ее использование помогает улучшать эффективность бизнес-аналитики на любых BI-платформах.

Читать далее

Как один мужик карту города рисовал

Время на прочтение3 мин
Охват и читатели14K

Всем привет!



Сегодня поговорим о визуализации геоданных с помощью GeoPandas и Kepler.gl. Хотел бы рассказать, как я за пару дней построил вот такую карту, где высота полигонов регулировалась этажностью здания, а цвет - годом постройки.

Читать далее

Управление талантами в ИТ: Когда слишком хорошо уже плохо

Время на прочтение13 мин
Охват и читатели8.2K

В статье «Почему всё ломается даже у хороших программистов?» (Часть 1 и Часть 2) был описан тип сотрудников: «золотая шестерёнка». Это способные люди, которые являются не только замечательными разработчиками, но ещё являются хорошими организаторами, имеют стратегическое мышление, могут проектировать архитектуру приложения либо даже ИТ-ландшафт. Встаёт закономерный вопрос, а почему «золотые шестерёнки» это плохо, почему бы из них не собрать сильную команду, чтобы всем было счастье. Давайте попробуем понять, почему «золотая шестерёнка» в итоге зачастую дестабилизирует ситуацию вокруг себя. Писать буду простым языком в расчёте на широкую аудиторию.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Израиль
Дата рождения
Зарегистрирован
Активность