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

Добрый день, Хаброжители!
Стартовала июльская распродажа от издательства «Питер».
Лето – время для отдыха, приключений и, конечно, для новых книг!
Искусство создания компьютерных программ
Добрый день, Хаброжители!
Стартовала июльская распродажа от издательства «Питер».
Лето – время для отдыха, приключений и, конечно, для новых книг!
Я потратил месяц на создание веб-сайта в Docker и теперь готов поделиться ужасными историями.
У меня есть проблема.
Мой веб-сайт (на котором была опубликована эта статья) в основном обслуживается одним двоичным файлом Rust. Он стал слишком длинным. Каждый раз, когда мне нужно внести изменение, я должен:
Собрать новую статически компонуемую библиотеку (с --target=x86_64-unknown-linux-musl
)
1. Скопировать её на сервер
2. Перезапустить веб-сайт
Ситуация, мягко говоря, неидеальная.
Поэтому мне бы хотелось перейти к развёртыванию веб-сайта при помощи контейнеров (будь то Docker, Kubernetes или что-то иное), в духе подавляющего большинства ПО, разворачиваемого в последний десяток лет.
Единственная проблема заключается в том, что реализовать быстрые сборки Rust с Docker не так уж просто.
Добро пожаловать на восьмой выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! В этот раз мы расскажем про уже ожидаемые .NET 10 preview 4 и 5, новую команду dotnet run app.cs и множество интересных статей. Команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов. Поехали!
Валидация входных данных — критически важная часть любого приложения. Без неё ваше приложение подвержено:
— паникам и ошибкам из-за неожиданных nil или невалидных значений,
— некорректной работе бизнес-логики при обработке невалидных данных,
— уязвимостям безопасности (SQL-инъекции, XSS и др.),
— сложностям в отладке из-за непредсказуемого поведения.
Рассмотрим типичный подход к валидации без специализированных библиотек...
Всем привет! Это Леша Жиряков. На прошлой неделе мы начали разбирать, почему Python стал настолько востребован для создания корпоративных программных решений. Сегодня продолжим тему — поговорим об управлении зависимостями, асинхронном программировании в корпоративной среде, тестировании, корпоративной безопасности и других ключевых моментах. Заодно обсудим перспективы Python в enterprise-разработке. Приступим!
Привет! Я Владислав Попов, автор курса «Go-разработчик с нуля» в Яндекс Практикуме. В серии статей я хочу помочь начинающим разработчикам упорядочить знания и написать приложение на Go с нуля: мы вместе пройдём каждый шаг и создадим API для получения информации о книгах и управления ими.
В прошлых частях мы создали сервер с тремя эндпоинтами, добавили базовую конфигурацию, логгер и обновили обработчики для возврата ответов в формате JSON. В этой статье будем продолжать развивать наш сервис и узнаем про более продвинутые способы работы с JSON.
На старте проекта обычно встает вопрос о выборе готовой ui-библиотеки для решения шаблонных задач, таких как создание форм, инпутов, кнопок и других компонентов. Количество готовых ui-библиотек для React так стремительно растет, что уже сложно остановить свой выбор на какой либо из них. Зато в таком разнообразии каждый может найти библиотеку, подходящую под его задачи. В этой статье хочется рассказать о фреймворке Steroids, который разработан и поддерживается в нашей компании.
Изначально мы не планировали создавать фреймворк, а просто собирали удачные решения рутинных задач. Получился набор полезных утилит и мини-библиотек, который позволял нам работать быстрее. Мы постепенно добавляли в него новые элементы, он рос и видоизменялся, и в итоге вырос в полноценный фреймворк Steroids.
Сегодня я бы хотел представить вам архитектурные принципы, которыми я руководствуюсь при создании приложений. Я считаю, что эти принципы применимы к подавляющему большинству приложений, за редкими исключениями. И даже несмотря на то, что каждый из них является фундаментальным, я в своей практике раз за разом замечаю, как люди напрочь про них забывают. И так как я не видел, чтобы они были где-либо представлены в едином коротком виде, я решил сделать это тут.
Итак, без долгих предисловий:
Если вы хоть раз были на стороне бизнеса, наверняка слышали (или говорили):
Сколько можно делать такую простую штуку?; Они что, не понимают, как это важно?
Но тут надо смотреть шире...
Каналы — инструмент для передачи данных между горутинами. Это фундаментальная концепция, на которой строится вся модель параллелизма в языке, и одна из ключевых особенностей, которая делает Go уникальным среди современных языков программирования. За внешней простотой синтаксиса ch <- value и <-ch скрывается сложная реализация, которая включает в себя кольцевые буферы, системы очередей, механизмы блокировки и тесную интеграцию с планировщиком горутин. В этой статье разберем их внутреннее устройство на уровне runtime и рассмотрим паттерны использования.
Немного рассуждений о языках программирования (ЯП) с уклоном на надежное и безопасное программирование.
Статья не публиковалась ранее, хотя была написана в 2019г, теперь можно смотреть как некую ретроспективу. Чем и воспользуюсь, вставляя замечания о былом по тексту (тег Upd).
Но тормозит развитие серии, ибо вышли уже 3 части и несколько переводов в тему:
Вечный вопрос разработчика: как писать код быстрее, не превращая его в поддерживаемый кошмар? Дедлайны давят, требования растут, а перфекционизм подсказывает: «Ещё рефакторинг!»
Автор годами искал баланс между скоростью и качеством в разработке ПО и вывел практические правила. Делимся опытом: черновики вместо идеала, борьба с отвлечениями, маленькие патчи и другие навыки, реально ускоряющие работу.
Итак, Cursor поменял тарифы.
Как они в действительности работают — это всё ещё загадка, потому что они указали примерное количество запросов, на которые можно рассчитывать, но почему-то каждый день это немного обновляется. То есть даже если ты попал на лимит, то на следующий день у тебя добавится ещё немного запросов. Но прозрачности тут нет
Кто не в курсе - раньше было 500 запросов за $20, что честно и понятно. Потом вдруг стал полный безлимит за $20, а затем Anysphere (разработчики Cursor) резко сказали, что якобы безлимит они давали только на режим авто (а там модель самая дешёвая), а в от на другие модели есть какие-то лимиты, но какие - не уточнили, пока коммьнити не разозлилось. В итоге оказалось, что за те же деньги сейчас можно себе позволит в 1.5-2 раза меньше, при этом появились тарифы за 60 и 200 usd.
Это стоит обсудить на фоне прошлого того, как Cursor попытался сделать хитрый финт, чтобы собрать кучу денег с подписчиков, но у него не получилось.
По сути, у нас не так-то много качественных вариантов.
Попробовал я тут на днях Codex от OpenAI. Его релиз состоялся 16 мая 2025 года, т.е. два месяца назад.
Это AI-агент, который подключается к вашему репозиторию (пока поддерживается только github) и подготавливает пулл реквест согласно той задаче, которую вы ему поставите в текстовом виде. Работает он в собственном окружении ("на своей виртуалке") и вы можете видеть в режиме реального времени, как он выкачивает проект и сканирует его посредством консольных команд. Затем он вносит правки и прогоняет тесты. После этого вы видите дифф изменений как в гите и можете проводить ревью.
Представьте, что теперь у вас есть джун, который умеет кодить на любом языке, быстро въезжает в проект, обладает широкой "насмотренностью" и доступен 24/7.
Всем привет! В Питере вместе с летней жарой случился релиз Explyt 4.0 c крутыми фичами для написания кода, тестирования и дебаггинга: агентским режимом Explyt Agent
и генерацией тестов по исполнению Generate Tests from Execution
.
Азбука Морзе — один из самых старых, но не уходящих на заслуженный отдых телекоммуникационных стандартов. Почему бы не объединить ее с Java? Это статья о технологиях, отстоящих друг от друга более чем на полтора столетия. Мы познакомимся с кодом Морзе, с подкапотной частью Java Stream API, и на живом примере соберем все это в одно кроссплатформенное приложение на Java.
Привет, Хабр! Меня зовут Роман Мельник, я фронтенд-разработчик во «ВКонтакте для Бизнеса». Наша команда создаёт инструменты, которые помогают владельцам сообществ управлять и развивать свои проекты. Сегодня я расскажу про Dependency Injection (DI) через библиотеку Tsyringe.
Почему это важно? Крупные проекты сталкиваются со следующими проблемами: разрастающимся глобальным стором, сложностями тестирования, масштабирования и переиспользования кода. Внедрение зависимостей помогает решить эти вопросы, делая код гибким и управляемым. На практике это выглядит гораздо интереснее. Давайте разберёмся!
Начнём с архитектурных принципов и паттернов.
Привет! Без лишнего: в статье расскажу про атаки на кэш-память в процессорах семейства ARMv8. Подробно изучил их для совершенствования безопасности KasperskyOS: познакомлю с теорией и практикой, механизмами работы и способами митигации. Также кратко расскажу, как мы тестировали каждый способ атаки на KasperskyOS, какие из них оказались неприменимы, какие могут представлять угрозу и как микроядро с подобными угрозами справляется. Если интересно гранулярно погрузиться в типологию атак на кэш — добро пожаловать!
Большой Дайджест Недели. 14.07.25
Минимум новостей, максимум инсайтов.
=> Коммент на космические зарплаты Цукерберга для ИИ-инженеров
=> Битва вайб-кодеров, но-кодеров, лоу-кодеров и программистов только разгорается
=> На Poly Market ставка всего 26%, что GPT-5 появится в июле. Проголосуйте и вы, узнаем что думает по этому поводу Хабр.
=> Настоящая ценность LLM это архитектура агентов..."будет много багов, но не бросайте, думаю, эта штука останется."