Pull to refresh
4
0
Андрей Гончаров @gonchar0v

Дата-инженер

Send message

История оптимизации Python сервиса: пара простых системных улучшений

Level of difficultyMedium
Reading time9 min
Views3.7K

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

Читать далее
Total votes 22: ↑21 and ↓1+24
Comments6

Хранилища данных. Обзор технологий и подходов к проектированию

Level of difficultyEasy
Reading time26 min
Views13K

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

В этой статье будут рассмотрены основные подходы к проектированию архитектуры хранилищ данных (DWH), эволюция архитектур, взаимосвязь Data Lake, Data Factory, Data Lakehouse, Data Mesh c DWH, преимущества и недостатки подходов к моделированию данных. Материал будет полезен тем, кто работает с корпоративными данными: аналитики, инженеры и архитекторы данных.

Читать далее
Total votes 17: ↑14 and ↓3+15
Comments3

Что нужно знать, чтобы успешно пройти System Design Interview

Reading time16 min
Views43K

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

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

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

Читать далее
Total votes 49: ↑47 and ↓2+56
Comments26

Мои советы после 20 лет в программировании

Level of difficultyEasy
Reading time44 min
Views128K

Сегодня ровно 20 лет, как я начал программировать профессионально. За эти годы я:

Получил одобрение на петицию по грин‑карте за выдающиеся способности в науке.
Стал Google Developer Expert.
Стал IEEE Senior Member.
Был операционным директором в компании со 100 сотрудниками.
Написал код, который скачали 135 миллионов раз.
Выступал перед аудиторией в 2000 человек, дважды.
Стал самым честным человеком в России по версии НТВ.

Но упустил я гораздо больше и делал всё это слишком долго. Думаю, этот путь можно было бы пройти «на скорость» лет за 5 с теми подходами, принципами и приоритетами, которым я научился. Если вы только начинаете свой путь, этот текст может сэкономить вам 15 лет жизни.

Читать далее
Total votes 253: ↑143 and ↓110+70
Comments277

Что нужно знать про арифметику с плавающей запятой

Reading time14 min
Views962K


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

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Total votes 245: ↑242 and ↓3+239
Comments75

Числа с плавающей точкой для гуманитариев. Что это такое и как они работают

Level of difficultyEasy
Reading time9 min
Views38K

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

В этой статье я простым языком попытаюсь изложить данную тему и помочь решить ряд вопросов: как на самом деле процессор хранит числа с плавающей точкой? Как точка хранится в памяти? Почему при сложении 0.1 + 0.2 получается ответ ~0.30000000000000004? Если по какому-то из этих вопросов вы чувствуете, что не можете дать точный ответ, то эта статья для вас.

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

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

Reading time10 min
Views4K


Многие компании хотят, чтобы их технологии были не просто затратами, а конкурентными преимуществами. Это в том числе касается технологий работы с данными. Часто такое стремление выражается словами «Мы хотим воспринимать данные как продукт». Команда VK Cloud перевела статью, которая поможет применить принципы продакт-менеджмента к управлению дата-продуктами компании.
Читать дальше →
Total votes 15: ↑14 and ↓1+23
Comments1

10 типичных ошибок в LinkedIn, которые пора исправить

Reading time8 min
Views10K

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

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

Не стоит повторять одни и те же ошибки. Здесь мы рассмотрим 10 типичных ошибок, которые совершают многие пользователи LinkedIN при создании профиля и поясняем, как повысить эффективность профиля за счет их исправления.

Читать далее
Total votes 21: ↑12 and ↓9+8
Comments4

Information

Rating
Does not participate
Works in
Registered
Activity