Как стать автором
Обновить
24
0
Антон Зубарев @aszubarev

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

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

«Мы не Гугл, но к нам идут» Как малому и среднему бизнесу выигрывать конкуренцию у корпораций за талантливых сотрудников

Время на прочтение4 мин
Количество просмотров4.1K

Лучше всего ситуацию про конкуренцию на рынке труда отобразил Брейгель в одном из фрагментов своей картины «Фламандские пословицы». Примерный смысл пословицы на нём — «Рыбачить мимо сети» или «Ловить рыбу без невода». Или «Ловить рыбу за чужой сетью»

Читать далее
Всего голосов 12: ↑6 и ↓6+2
Комментарии26

Развертывание защищенного dev кластера bitnami/kafka в k8s с помощью helm

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров5.3K

Всем привет. На этот раз хотел бы поделиться материалом, связанным непосредственно с devops работой. Недавно возникла потребность раскатить kafka кластер в kubernetes. В ходе развертывания возникло очень много сложностей, встречено множество подводных камней, и, естественно, в большинстве случаев рецепта в интернете найдено не было, поэтому приходилось искать решения самостоятельно методом проб и ошибок. Все, что здесь будет описано это сугубо личный опыт на одном из проектов. Сегодня я расскажу как с нуля раскатить dev контур bitnami/kafka кластера с помощью helm чартов, как обезопасить ваш кластер kafka и какие сложности могут вам встретиться.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии9

Telegram клиент. TDLib и Spring Boot

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров14K

Всем привет! В данной статье я хотел бы рассмотреть процесс создания Telegram клиента с помощью кроссплатформенной библиотеки TDLib, Java и Spring Boot.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии13

Telegram Desktop и Compose Multiplatform

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров5.5K

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

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Делаем код-ревью правильно

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров22K

В начале своей карьеры я как-то работал над одним заказом, создавая платформу сентимент-анализа для социальных сетей. В то время Twitter ещё был Twitter’ом. Наша команда состояла из семи человек, среди которых я был джуниором. Мы были молоды и полны энтузиазма. Наш девиз можно было описать как: «Мы гибкие, быстрые и всё ломаем!». Да, мы действительно гордились своей скоростью. Код-ревью? Я вас умоляю. Мы считали эту практику бюрократическим пережитком корпоративного мира.

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

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

Итак, в двух словах: если вы не проводите код-ревью, или делаете их «для галочки», то обрекаете себя на боль, пусть не сразу, но в конечном итоге однозначно. Это можно сравнить с возведением дома на фундаменте из песка. Какое-то время он, может, и простоит, но явно недолго. А в мире стартапов второго шанса у вас может уже не быть.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+70
Комментарии26

Внутри S3. Доклад Яндекса

Время на прочтение12 мин
Количество просмотров21K

Привет, я Паша, разработчик в Yandex Infrastructure, и я катаю гусей. С 2019 года я развиваю S3-хранилище как для внутренних пользователей Яндекса, так и для клиентов Yandex Cloud. А «гусём» называется наш бэкенд S3 API: он написан на Go, а из словосочетания Go + S3 получился goose. Возможно, вы также слышали про GeeseFS — это наш высокопроизводительный FUSE-клиент для S3. C его помощью вы можете на своём ноутбуке или виртуалке подмонтировать папку, которая будет работать с бакетом S3. 

Для чего нам «гуси» и прочая орнитология? Яндексовая инсталляция хранилища S3 хранит миллиарды файлов. Это огромные объёмы данных, а также метаданных. Для хранения метаданных мы научились использовать умное шардирование, и теперь сами управляем распределением занятого места и нагрузкой между шардами баз.

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

Читать далее
Всего голосов 71: ↑70 и ↓1+84
Комментарии52

Дескрипторы в Python

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров13K

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

Дескриптор — это объектовый атрибут с поведением, определяемым методами в его классе. Если просто — это способ, с помощью которого объект может контролировать доступ к его атрибутам, используя специально определенные методы __get__, __set__, и __delete__. Если говорить еще проще — дескрипторы позволяют задавать точки доступа к атрибутам объекта, добавляя дополнительную логику, когда атрибут читается, записывается или удаляется.

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

Читать далее
Всего голосов 10: ↑9 и ↓1+10
Комментарии3

Как работает etcd с Kubernetes и без него

Время на прочтение23 мин
Количество просмотров15K

Если вы когда-либо взаимодействовали с кластером Kubernetes, скорее всего, он был основан на etcd. etcd лежит в основе работы Kubernetes, но несмотря на это, напрямую взаимодействовать с ним приходится не каждый день.

Этот перевод статьи от learnk8s познакомит вас с принципами работы etcd, чтобы вы могли глубже понять внутреннюю работу Kubernetes и получить дополнительные инструменты для устранения неполадок в вашем кластере. Мы установим и сломаем кластер etcd с тремя нодами и узнаем, почему Kubernetes использует etcd в качестве базы данных.

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии2

Как, блуждая по Stack Overflow, можно набрести на Branch predictor

Время на прочтение8 мин
Количество просмотров4.5K

В блоге beeline cloud мы делились историями и мнениями разработчиков — как программист-самоучка выучил 30 языков программирования, в каких случаях парное программирование не работает и почему некоторые проекты угасают, когда из компании уходит тимлид разработки. Сегодня поговорим о том, как изучать азы информатики при помощи  Stack Overflow, даже если ваше образование не связано с компьютерными технологиями. Вот интересный перевод.

Мое основное образование далеко от ИТ. Но приблизительно в 2016 году я придумал, как изучать основы информатики при помощи Stack Overflow. Так у меня появилось увлекательное хобби. В свободное время я проглядываю сайт в поисках вопросов, получивших наибольшее количество голосов.

Сам метод, а также результаты, которые он приносит, я описал в своей статье 16-часовая тренировка для разработчиков. В чем же основные его преимущества? В том, что такой подход зачастую намного лучше, чем чтение учебников во время обучения в ВУЗе. 

Ответ со Stack Overflow, получивший наибольшее количество голосов, позволит вам оперировать опытом отраслевого эксперта из первых рук. И это в совокупности с краткой теоретической справкой (которую хорошие специалисты как правило приводят в своих ответах).

Одному из вопросов, набравшему наибольшее количество голосов на Stack Overflow (сейчас это порядка 24 миллионов «плюсов»!), я хочу посвятить эту статью.

Читать далее
Всего голосов 8: ↑7 и ↓1+10
Комментарии7

Давайте поговорим о Kubernetes

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров13K

Всем привет! Меня зовут Андрей, я DevOps инженер.

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

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

Примерно такую статью я постарался написать.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии10

Актуально ли сегодня ООП?

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров59K

Почти каждый день возникают дискуссии с критикой или восхвалением объектно-ориентированного программирования. «Java устарела!», «Java потрясающая!». В этой статье я проведу прагматичное исследование ООП на 2024 год.

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

Если отсечь все эмоции, связанные с ООП, то что останется? По-прежнему ли ООП является эффективным инструментом разработки ПО, или оно превратилось в устаревшее увлечение? Профессионалам важно знать ответ на этот вопрос!
Читать дальше →
Всего голосов 80: ↑60 и ↓20+65
Комментарии179

Тайное знание: синхронизация, многопоточность, очереди

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров10K

Может ли быть так, что в большинстве популярных языков отсутствует самый эффективный механизм синхронизации? Что инженеры Microsoft, Oracle и мн. др., не говоря уже об остальных, вплоть до 2024 года так и не догадались, как же эффективнее всего синхронизировать доступ к данным? А все что знает абсолютное большинство программистов, в том числе топовых IT компаний (за исключением редких разработчиков платформ Apple) о синхронизации — ошибочно? Сегодня попробуем разобраться.

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

Читать далее
Всего голосов 19: ↑8 и ↓11-1
Комментарии73

Развитие баз данных

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров7K

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

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

Читать далее
Всего голосов 9: ↑6 и ↓3+6
Комментарии10

За кем сейчас охотятся крупные работодатели в IT?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров70K

Привет, на связи Кирилл Антонов, коммерческий директор hitch. Мы занимаемся аутстафом IT‑специалистов — выводим разработчиков (и не только) на проекты отечественных корпораций. Непрерывно следим за тем, как меняются потребности крупнейших IT‑компаний и поведение соискателей.

Раз в несколько месяцев буду публиковать «срезы» — заметки о том, кто сейчас особенно востребован на отечественном рынке (а значит, кому больше всего платят).

Читать далее
Всего голосов 38: ↑29 и ↓9+31
Комментарии78

Как сделать связанный сервер для распределенной базы данных. (MSSQL + Postgre)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.6K

Материал подойдет для студентов и тех кто только начинает создавать распределенные базы данных.

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

Читать далее
Всего голосов 4: ↑3 и ↓1+5
Комментарии19

Self skills: Что это, и как их правильно развивать в 2024 году

Время на прочтение8 мин
Количество просмотров2.2K

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

Все мы много раз слышали про такого «зверя», как soft skills, как важно их развивать и т.д. Но в последнее время в этом направлении можно часто встретить… self skills. Что это, почему они вдруг так стали нужны, что с ними делать, и к чему это может нас привести!

Давайте разбираться!

Читать далее
Всего голосов 6: ↑3 и ↓30
Комментарии2

ClickHouse как бэкенд для Prometheus

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.8K

Привет! Меня зовут Михаил Кажемский, я Lead DevOps в IT‑интеграторе Hilbert Team. В последнее время к нам часто обращаются заказчики, которым нужна помощь с организацией хранения долгосрочных метрик в российских облаках. Так как для многих эта задача сейчас актуальная, в данной статье мы с моим коллегой Денисом Бабичевым решили рассказать, как мы используем мощные возможности ClickHouse для эффективного долгосрочного хранения метрик Prometheus. В статье вы найдете рекомендации по использованию инструмента и описание альтернативных решений, таких как Thanos, Grafana Mimir и Victoria Metrics.

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии2

Тонкая грань между карьеристом и мошенником в IT

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров14K

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

Читать далее
Всего голосов 32: ↑19 и ↓13+14
Комментарии33

Плагин для анализа планов PostgreSQL в Sublime Text, и его разработка

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.9K

Завершаем серию статей о плагинах для explain.tensor.ru -  сервиса визуализации PostgreSQL-планов. На этот раз речь пойдет о плагине для Sublime Text.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии2

Вы за это заплатите! Цена Чистой Архитектуры. Часть 2

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров8.5K

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

Если не читали первую часть, настоятельно рекомендую это сделать, чтобы оставаться в контексте.

Итак, продолжим.

Читать далее
Всего голосов 33: ↑33 и ↓0+33
Комментарии13

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Software Architect
Lead
Git
SQL
Docker
Python
Django
RabbitMQ
Kubernetes
Database
Designing application architecture
Creating project architecture