Все потоки
Поиск
Написать публикацию
Обновить
1036.08

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Spring boot, многопоточка и магия вне хогвартса

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

Всем привет! Меня зовут Алексей, и я работаю Java‑разработчиком с 2018 года. В статье расскажу, как столкнулся с проблемой обработки MultipartFile в многопоточном режиме. Почему эта проблема возникает и какие решения существуют.

Изначально стояла задача организовать фоновую обработку Excel-файлов: принимать файл, мгновенно возвращать клиенту HTTP-200 (без данных), а обработку содержимого выполнять асинхронно в отдельном потоке.

Вроде задачка тривиальная. Делаем контроллер:

Читать далее

Ролевой контроль в приложении: вариант реализации

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

Привет! Меня зовут Валерия, я java-разработчик компании SimbirSoft. В этой статье я хочу рассказать об одном из способов реализации ролевого контроля над действиями пользователей в системе. Механизм ролевого контроля позволяет сделать бизнес-процессы надежными с точки зрения информационной безопасности и привести их в соответствие с внутренними регламентами организации. Задачи подобного рода так или иначе возникают на любом проекте. 

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

Читать далее

async2: эксперимент с поддержкой асинхронности в рантайме

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

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

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

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

Читать далее

ИИ (не) отнимает работу у разработчиков, или Почему вас пока не уволят

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

Привет! Я Саша Сергеев, CTO в Профи.ру. И у технических директоров есть мантра: «Используй скучные технологии». Нельзя брать что-то совсем новое: оно не проверено в проде, мало поддерживается. Лучше что-то надёжное. 

Но для ИИ приходится делать исключение: прищуриться и подумать. Делюсь тем, о чем я думаю сейчас. 

Читать далее

Невидимый архитектор — тот, кто всем мешает, но всех спасает

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

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

Читать далее

День рождения Kotlin и релиз нового HTTP-клиента для IntelliJ IDEA в Open Source

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

День рождения Kotlin уже на следующей неделе! Мы не могли обойти это замечательное событие стороной и решили провести прямую трансляцию, посвященную ему.

Мероприятие пройдет онлайн 22 июля, в 17:00 (МСК), на YouTube, VK и RUTUBE каналах Amplicode. Участие абсолютно бесплатное.

Главное – зарегистрироваться, чтобы получить на почту ссылки на трансляцию и файл .ics для добавления события в календарь.

Читать далее

Unity: корутины и UniTask — когда что использовать

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

Сравнение корутин и UniTask в Unity.
Узнай, когда использовать каждый подход, как обрабатывать ошибки и улучшить производительность игр. Практические примеры кода.
В статье ты найдешь:
• Что такое корутины и UniTask
• Сравнение производительности
• Обработка ошибок
• Отмена операций
• Работа с ECS
• Когда что использовать

Читать далее

Размышления об OpenAI

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

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

Читать далее

Как мы засунули Git в браузер (и чего нам это стоило)

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

Привет, Хабр! Меня зовут Паша, я разработчик Gramax — open source-платформы для управления технической документацией в подходе Docs as Code.

В этой статья я расскажу, как и для чего мы интегрировали Git в браузер, какие технологии использовали и какие технические решения приняли. А если подробнее: почему отказались от IsomorphicGit в пользу libgit2, каким образом мы собрали его под WebAssembly, как он работает с файлами и зачем вообще все это было нужно.

Читать далее

Запускаем несколько интерпретаторов в коде на Python — невероятная скорость

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

5 июня 2025 года был принят PEP-0734. Судя по информации на официальном сайте, он является продолжением PEP-0554. Этот PEP предлагает добавить новый модуль, interpreters, для поддержки проверки, создания и запуска кода в нескольких интерпретаторах в текущем процессе. А если идти дальше, то он является частью PEP-0684, которые предлагает один GIL на интерпретатор.

Несколько полноценных интерпретаторов работающих рядом. Какие плюсы?

— Один процесс;
— Один тред, но руками можно создавать еще;
— По GILу на интерпретатор, все еще можно получить плюшки настоящей многозадачности по сети;
— Работает с asyncio.

В этой статье вы узнаете как работает эта фича под капотом и в реальном питоне. Приятного чтения!

Читать далее

Занятия программированием и обучением шагающего двуного мини-робота в кружке от Центра робототехники Сбера

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

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

Читать далее

Масштабирование stateful приложений

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

Всем привет! В этой статье я хочу разобрать довольно‑таки интересную и в то же время сложную тему — «Поддержание консистентного состояния в stateful сервисах при масштабировании».

Читать далее

От хаоса к порядку: построение системы автотестов в условиях минимальных требований

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

Привет! Меня зовут Александр, я SDET-специалист в SimbirSoft. В этой статье я расскажу, как можно покрыть разрабатываемую часть проекта автотестами на ранних этапах его разработки, если в команде отсутствуют аналитики и присутствуют задокументированные требования только по основному функционалу. Эта статья будет интересна как джунам, так и техническим специалистам middle и выше, а также руководителям команд (team leads) и техническим лидам (tech leads).

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

Читать далее

Ближайшие события

Советы новичкам в карьере программиста

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

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

Читать

Распродажа в издательстве «Питер»

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

Добрый день, Хаброжители!

Стартовала июльская распродажа от издательства «Питер».

Лето – время для отдыха, приключений и, конечно, для новых книг!

Читать далее

«Почему компилятор Rust такой медленный?»

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

Я потратил месяц на создание веб-сайта в Docker и теперь готов поделиться ужасными историями.

У меня есть проблема.

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

Собрать новую статически компонуемую библиотеку (с --target=x86_64-unknown-linux-musl)

1. Скопировать её на сервер

2. Перезапустить веб-сайт

Ситуация, мягко говоря, неидеальная.

Поэтому мне бы хотелось перейти к развёртыванию веб-сайта при помощи контейнеров (будь то Docker, Kubernetes или что-то иное), в духе подавляющего большинства ПО, разворачиваемого в последний десяток лет.

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

Читать далее

.NET Digest #8

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

Добро пожаловать на восьмой выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! В этот раз мы расскажем про уже ожидаемые .NET 10 preview 4 и 5, новую команду dotnet run app.cs и множество интересных статей. Команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов. Поехали!

Читать далее

Валидация данных в Go с go-playground/validator: полное руководство

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

Валидация входных данных — критически важная часть любого приложения. Без неё ваше приложение подвержено:

— паникам и ошибкам из-за неожиданных nil или невалидных значений,
— некорректной работе бизнес-логики при обработке невалидных данных,
— уязвимостям безопасности (SQL-инъекции, XSS и др.),
— сложностям в отладке из-за непредсказуемого поведения.

Рассмотрим типичный подход к валидации без специализированных библиотек...

Читать далее

Python в enterprise-разработке: почему популярность ЯП распространилась и на корпоративный сектор. Часть 2

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

Всем привет! Это Леша Жиряков. На прошлой неделе мы начали разбирать, почему Python стал настолько востребован для создания корпоративных программных решений. Сегодня продолжим тему — поговорим об управлении зависимостями, асинхронном программировании в корпоративной среде, тестировании, корпоративной безопасности и других ключевых моментах. Заодно обсудим перспективы Python в enterprise-разработке. Приступим!

Читать далее

Приложение на Go шаг за шагом. Часть 3: форматирование и обёртывание ответов JSON

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

Привет! Я Владислав Попов, автор курса «Go-разработчик с нуля» в Яндекс Практикуме. В серии статей я хочу помочь начинающим разработчикам упорядочить знания и написать приложение на Go с нуля: мы вместе пройдём каждый шаг и создадим API для получения информации о книгах и управления ими. 

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

Читать далее

Вклад авторов