Как стать автором
Обновить
3
0
Константин @k-morozov

Software Engineer

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

Паттерны применения многопоточности на коммерческом проекте (на примере Java)

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

После прочтения у вас сложится понимание того как работать с многопоточностью на реальном проекте

Список рассмотренных паттернов:

Запуск асинхронного процесса по сигнал
Параллельное выполнение задач без ожидания результата
Ограничение количества потоков для вызова внешнего сервиса
Выполнение Scheduled задач
Параллельное обращение к разным источникам, с последующим объединением результатов
Контекст
Ожидание асинхронного ответа

При этом в статье я намеренно не касался низкоуровневых механизмов, таких как synchronized, lock, volatile, барьеров (разве что semaphore), потому что они значительно реже применяются в работе

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

Как получать SMS при колебаниях курса биткоина с ByBit API и SMS API

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

Мониторинг волатильности таких криптовалют, как Bitcoin, позволяет быстро реагировать на изменения рынка, управлять рисками и улучшать стратегии. Понимание текущих ценовых колебаний помогает устанавливать правильные уровни стоп-лосс и тейк-профит. В этой статье вы узнаете, как интегрировать ByBit и платформу МТС Exolve для получения автоматических SMS о колебаниях курса Bitcoin.

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

Домашняя масляная майнинг-ферма

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

Это история одного моего хобби-проекта - создания встроенной в интерьер майнинг-фермы с видеокартами в масле, которая своим теплом отапливает лоджию.

Читать далее
Всего голосов 150: ↑146 и ↓4+187
Комментарии118

Он сделал копию криптовалютной биржи на флешке, удалил данные с сервера и исчез

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

Фарук Фатих Озер стоял перед сотрудником паспортного контроля в аэропорту Стамбула, а за ним выстроилась очередь нетерпеливых путешественников. Он cтянул маску до подбородка, и посмотрел в камеру наблюдения. Несомненно, он нервничал. У 27-летнего парня были буйные чёрные волосы, лицо члена мальчиковой поп-группы и окладистая борода. Обычно он старался выглядеть взрослее, одеваясь в отглаженный костюм-тройку. Но в этот весенний день на нём были чёрные кроссовки и тёмно-синий свитер, наспех натянутый поверх белой рубашки-поло, как будто он одевался впопыхах. Через правое плечо у него был перекинут небольшой рюкзак. Он был похож на человека, который в последнюю минуту отправился в однодневную поездку – или наоборот, планировал никогда не возвращаться. В 17:57 20 апреля 2021 года охранник поставил штамп в его турецком паспорте, и Озер протиснулся сквозь толпу к выходу C. В его вещах была спрятана флешка с криптовалютой на сумму 2 миллиарда долларов.

Читать далее
Всего голосов 33: ↑25 и ↓8+24
Комментарии43

FastAPI: веб-разработка на Python

Время на прочтение14 мин
Количество просмотров14K
image Привет, Хаброжители!

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

Билл Любанович рассказывает о тонкостях разработки с применением FastAPI и предлагает множество рекомендаций по таким темам, как формы, доступ к базам данных, графика, карты и многое другое, что поможет освоить основы и даже пойти дальше. Кроме того, вы познакомитесь с RESTful API, приемами валидации данных, авторизации и повышения производительности. Благодаря сходству с такими фреймворками, как Flask и Django, вы легко начнете работу с FastAPI.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+11
Комментарии3

Python — Эволюция создания объектов (вторая часть)

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

Как упростить себе жизнь или почему ты должен уметь создавать объекты правильно?

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

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

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

Замыкания и декораторы в Python: часть 2 — декораторы

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

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

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

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

Структурированное логирование в Go с помощью Slog

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

Более 10 лет разработчики на Go жаловались на отсутствие структурированного логирования в ядре Golang. Участники сообщества Golang даже создали несколько собственных пакетов, таких как Logrus, Zap и Zerolog. В 2023 году, команда разработчиков Google Go наконец-то представила Slog — высокопроизводительный пакет для структурированного ведения логов в стандартной библиотеке Go. Мы перевели гайд о возможностях slog.

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

Что такое DAO?

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

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

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

Рекомендации при работе с PostgreSQL

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

Доброго времени суток. Основываясь на своём опыте хочу представить некоторые рекомендации при разработке кодовой базы на SQL.

Данные рекомендации получены горьким опытом, так что надеюсь, они Вам помогут :)

Читать подробнее и больше не косячить
Всего голосов 51: ↑48 и ↓3+51
Комментарии53

Люди не понимают ООП

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

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

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

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →
Всего голосов 126: ↑119 и ↓7+140
Комментарии461

Может ли наша Вселенная быть симуляцией? Как мы можем это определить?

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

С тех пор как в 2001 году оксфордский философ Ник Бостром предложил свой аргумент в пользу того, что мы живём в симуляции, нёрды всей Земли пытаются оценить возможность того, что реальность на самом деле не существует, что то, что мы воспринимаем как нашу Вселенную, является продуктом компьютерной симуляции. Такие популярные личности, как Илон Маск и Нил де Грасс Тайсон, предложили свои собственные выводы, но сам Бостром не спешил занимать твёрдую позицию. Напротив, его позиция отличается тонкостью и осторожностью, и в ней нет фиксированных ответов.

Я буду считать, что читатели этого текста более искушённые, чем среднестатистический гик, поэтому давайте потратим некоторое время на разбор аргумента Бострома о симуляции — его устройство, его следствия, его сильные и слабые стороны.

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

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

ТОП-5 книг, которые помогут научиться договариваться и выстраивать эффективные коммуникации

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

Привет, Хабр! Я бизнес-тренер. Мы в ОТП Банке очень любим читать полезные книги и делиться своими наблюдениями с коллегами. Решили, что и с читателями Хабра тоже нужно поделиться. Возможно, кто-то их все уже прочёл, а кто-то нет — и тогда я буду очень рада, что рекомендации пригодились:) Эти книги помогут прокачать soft skills — полезные навыки на пути к большим зарплатам.

Пополнить багаж знаний
Всего голосов 7: ↑6 и ↓1+8
Комментарии3

Seagate выпустит HDD с лазерным подогревом емкостью от 30 ТБ уже в этом квартале. Что это за диски?

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

Корпорация Seagate уже достаточно давно анонсировала свои жесткие диски нового типа с очень высокой плотностью хранения информации. Речь идет о HDD с необычной технологией прогрева «блинов» дисков при помощи лазера. Это нужно для повышения плотности записи данных, в результате чего производителю и удалось достичь весьма высокой емкости диска — от 30 терабайт. Подробности — под катом.
Читать дальше →
Всего голосов 45: ↑44 и ↓1+64
Комментарии125

Сравниваем форматы сериализации на Go: скорость и удобство

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

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

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

GoFunc: новая конференция по Go

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

Разработка на Go — особый мир. Этот язык не так популярен, как Python или JavaScript, но благодаря этому и дурацкой шумихи вокруг него меньше. Популярность приманивает «случайно проходивших мимо» и вызывает много глупых холиваров. А тем временем Go собирает людей, которые хорошо понимают, зачем они здесь, и хотят эффективно решать реальные задачи. 

В этом могут помочь конференции. Для многих других разработчиков мы уже давно их проводим (вроде HolyJS или С++ Russia). А в марте впервые проведём новую конференцию GoFunc. Главное, что нужно о ней знать:

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

А подробнее — в полном тексте:

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

Почему B-деревья быстрые?

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

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

После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.

Читать далее
Всего голосов 151: ↑150 и ↓1+183
Комментарии13

Toolchain в Go

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

Привет, коллеги! В Го toolchain (цепочка инструментов) это не просто buzzword, а реальная рабочая фича. Если вы провели немало времени, погружаясь в дебри кода и модулей, вы знаете, что каждая строчка и каждый пакет как и в любом япе имеют свое место и значение.

Цепочка инструментов или toolchain (тулчейн звучит покруче) используются для создания, тестирования, отладки и управления вашими Go-проектами.

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

Фильтр Блума для эффективной синхронизации хеш-графов

Время на прочтение8 мин
Количество просмотров3.5K
В одном из совместных исследований нам с Хайди требовалось решить такую задачу. Допустим, нам требуется синхронизировать между двумя узлами хеш-граф, например, как в репозитории Git. В Git каждый коммит идентифицируется через соответствующий ему хеш, причём, в коммит могут включаться хеши коммитов-предшественников (то есть, конкретный коммит может содержать более одного хеша, если он получен слиянием). Мы хотели получить минимальное множество таких коммитов, которыми должны обменяться два узла, чтобы их графы получились одинаковыми.

Вы могли бы спросить: «а разве эта задача ещё не решена»? Git приходится выполнять такую операцию всякий раз, когда вы направляете ему команду git pull или git push! Да, так и есть, и некоторые случаи довольно просты, но другие гораздо сложнее. Более того, тот алгоритм, что используется в Git, не слишком хорошо документирован – в общем, мы полагали, что у нас может получиться лучше.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

В поиске оптимального подхода к миграциям в Go

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

Привет! Меня зовут Нина, и я Golang разработчик.

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

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

Читать далее
Всего голосов 15: ↑12 и ↓3+12
Комментарии7
1
23 ...

Информация

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

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

Backend Developer
Middle
C++
Golang
ClickHouse
Database
High-loaded systems