Обновить

Бэкенд

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

Модули C++20 в существующий проект: легкая прогулка или прыжок в бездну?

Старший инженер-программист С++ в компании «Криптонит» Сергей Чеботарев расскажет о миграции на модули C++20 на System Level Meetup в Москве 22 ноября в 12:00.

Зарегистрироваться на митап онлайн и/или офлайн можно по этой ссылке.

Наши программисты столкнулись с проблемой медленной сборки проектов и рассматривали Precompiled Headers как возможное решение.

Но отсутствие гарантий ускорения компиляции и поддержки со стороны стандарта заставило их обратить внимание на модули C++20, которые представились как «усовершенствованные PCH» — стандартизированные и более надежные.

Сергей расскажет о стратегии внедрения и первых проблемах, практических сложностях (отказе от import std и последствиях), рассмотрит реорганизацию системы сборки по концепции «метацелей».

В конце доклада — выводы и дорожная карта: стоит ли овчинка выделки?

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

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

Если вы ищете надёжный движок для сайта, защищённую CMS или систему управления с повышенной безопасностью, HyperFlow 1.2 — это решение, которому можно доверять.

https://hyper-flow.ru/news/info/hyperflow-12-novaya-versiya-bezopasnogo-dvizhka-saytov

Теги:
Рейтинг0
Комментарии0

Задача с system design interview как тема для пет проекта

Здравствуйте, уважаемые читатели. Интересуюсь микро сервисной архитектурой. Хотел бы написать серию статей, в которых поделюсь своим опытом создания пет проекта на микросервисах. Общее название - "Задача с system design interview как тема для пет проекта". В качестве задачи будет система сокращения ссылок. Хочу показать весь путь от реализации первой крайне упрощенной версии до полноценной версии с кешированием, базой данных и размещением на сервере. Система будет реализована на Golang. На Хабре уже есть статья с такой темой. Как Вы думаете нужны ли еще статьи по данной тематике?

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

А всё таки, когда моки зло, а когда нет?

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

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

Последний случай, описывает процесс мокирования. То есть мок, это когда мы проверяем то, как код что-то делает, а не что он делает. Иногда говорят, что мы тестируем методом white-box, потому что мы знаем как конкретно написан тест и завязываемся на это, а не на результат работы этого кода, как в black-box тестировании.

Когда мы проверяем как код работает, мы связываем тест с внутренней реализацией. Любое изменение внутри функции (например, вызов другого метода или смена порядка действий) может поломать тест, даже если внешнее поведение программы остаётся тем же. В итоге тест перестает быть защитой от ошибок и превращается в тормоз для рефакторинга. В подкасте про спринг я услышал классный термин: "бетонирование кода", вот это оно и есть.

Когда же моки все таки нужны? Допустим мы пишем систему с поддержкой хуков, например фреймворк для тестирования. В тестах такого фреймворка вполне допустимо проверить что хуки setup, teardown, beforeSetup, afterSetup и так далее, вызываются в нужном порядке и с нужными аргументами.

Общее правило здесь такое, если код можно тестировать методом black-box, то лучше так и делать. White-box это вынужденная необходимость, когда по другому ни как. Правда будьте осторожны, нередко программисты только думают, что по другому никак, потому что они не знают других подходов или по каким-то причинам решили, что другие подходы не подходят по идеологическим причинам.

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

Например:

  • База данных, которая хранит данные в памяти.

  • Фейковые сервисы какого-нибудь облака, например AWS

  • Поддельный HTTP клиент, который возвращает заранее заготовленные ответы.  

  • Заглушка почтового сервиса, которая записывает письма в список, а не отправляет их.

Все эти решения делают тесты быстрыми, предсказуемыми и независимыми от инфраструктуры, при этом вы все еще проверяете поведение системы снаружи, не нарушая принцип black-box.

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

Итого

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

Больше про разработку в моем телеграм-канале Организованное программирование

Теги:
Всего голосов 4: ↑2 и ↓20
Комментарии0

О работе с субд

В последнее время появилось много крайне спорных публикаций о PostgreSQL

Перестаньте наконец выкладывать ваш код на python/java/php как вы расчитываете остатки, боретесь с блокировками и прочее.

Вы работаете с СУБД в контексте вашего поста. Оформляйте в конце концов с помощью вьюх и хранимых процедур. Причина проста - Ваш гениальный интернет магазин не является единственным клиентом базы данных а дублирование кода с вариациями зло. Поймите наконец для чего были созданы столь ненавистные вам процедуры, вьюхи. Когда видишь "гениальный" код обернутый в кучу асинхронных вызовов (бредовый код с точки зрения задачи) select * from x where x.a= 20 и читаешь оассуждения о быстродействие у человека работавшего с субд нв минимальном уровне - первый вопрос какого черта запрос не параметризирован.

Теги:
Всего голосов 7: ↑2 и ↓5-3
Комментарии14

.NET Digest #9

Рады вам представить девятый выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET!

В этот раз мы расскажем про новые preview и RC версии .NET 10 и новую Visual Studio 2026. А ещё мы собрали для вас несколько интересных статей:

  • про производительность в .NET от Стивена Тауба;

  • спонсорство на NuGet.org;

  • и статистику популярности языков от GitHub.

Команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов! Подробнее читайте в нашей статье.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Про увольнения из-за AI. Об этом очень много говорят в айти, и даже есть подтверждающие цифры. Давайте посмотрим на рынок труда разработчиков в США, как возможно лучший маркер всего айти. Данные в основном из US Bureau of Labor Statisctics.

1️⃣ Количество фуллтайм разработчиков росло 15+ лет, но в 2022-м начало немного падать. Динамика сильно коррелирует с изменением ставки ФРС: когда ее резко задрали, количество рабочих мест начало сокращаться. 

2️⃣ Рост ставки делает капитал дороже, замедляет инвестиции, рост, найм, затраты на R&D. И конечно уменьшает долю джуниоров: их ROI более размазан по времени. Эту динамику зачастую показывают, в качестве пруфов замены джуниоров на AI. Хотя подтверждений зависимости мы не видим.

3️⃣ С увольнениями разработчиков еще интереснее: пик пришелся на на 2023-й, он идет вслед за излишним наймом во время венчурного бума 2021-го.

Далее увольнения резко сокращаются, в этом году будет вдвое меньше, чем в 2023-м. Хотя адопшн AI должен влиять на эту статистику. При революционной пользе AI - кардинально влиять.

4️⃣ В общем разработчики пока могут спать спокойно 🙂 Ставку понизят - востребованность возрастет. Возможно это касается всего айти. А связи адопшна AI и роста увольнений в цифрах рынка труда пока нет.

Теги:
Рейтинг0
Комментарии1

«Там, где критична скорость, но не требуется оптимизация»: как и зачем МойОфис вышел в OpenSource

На Хабре опубликовано первое большое интервью нашего CTO Тамары Щепалкиной — и оно стоит прочтения, потому что это:

  1. «Не форк с косметикой, а оригинальная инженерия»

    Компилятор tsnative прошёл проверку на безопасность, получил документацию, Docker-образ и демо, чтобы любой разработчик мог сразу попробовать его в работе.

    «...tsnative — это не «форк с косметическими изменениями», а продукт, в основе которого лежит оригинальная инженерная работа. Именно поэтому мы и приняли решение вывести его в open source: у проекта есть собственная ценность и потенциал для развития, который может быть интересен и полезен гораздо шире, чем внутри одной компании…»

    2. Open source как часть стратегии.

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

    3. «Где критична скорость, но не требуется оптимизация».

    tsnative создавался как инструмент, который помогает веб- и C++-разработчикам ускорять работу и выходить за рамки привычных сценариев. В основе компилятора — открытые библиотеки и собственная инженерия, без компромиссов по производительности.

    4. От ядра к экосистеме.

    Сначала — компилятор, но потенциально — UI-фреймворк и целая экосистема open source-проектов.

    5. Сообщество в центре.
    Telegram-чат поддержки уже работает, а впереди — расширение комьюнити и совместное развитие открытых технологий.

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

    В статье Тамара рассказывает, как и зачем МойОфис выходит на уровень open source-разработки, какие цели ставит и какие шаги уже сделаны.

    Если вас интересует развитие стратегия открытого кода и сотрудничество с сообществом — обязательно загляните.

    Читать интервью

Теги:
Всего голосов 20: ↑16 и ↓4+12
Комментарии2

Есть ли смысл от курсов по Cursor AI?

Для программирования с помощью ИИ в настоящий момент программисты используют среду разработки Cursor AI (форк Visual Studio Code с чатом с той или иной моделью ИИ).

Если вы до этого работали в любой среде разработки (VS Code, IDEA, PHPStorm, Goland, Eclipse, NetBeans), то кроме чата с ИИ-моделью и раздела ИИ в настройках среды — вы ничего не увидите.

Само взаимодействие с ИИ-моделью происходит ровно так же, как это делается на страницах Grok, OpenAI, GigaChat. Вы пишете запрос с промптами и получаете какой-то результат.

__

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

На 4-й день разработки я получил приложение, которое в целом выглядит так, как мне нужно, но при этом имеет трешачок в бизнес-логике. Исправление этого трешачка превратилось из милой беседы с ИИ в пошаговый дебаггинг.

 Я подумал, что, возможно, я что-то делаю не так, и решил посмотреть, как грамотные спецы с Udemy, которые ведут курсы по разработке с помощью ИИ, работают в Cursor AI.

 Я взял три курса: 

 • Getting Started with Cursor AI

 • Cursor AI for Beginners AI Coding Crash Course

 • Vibe Code a Chrome Extension with Cursor AI 

В итоге во всех трех курсах мне рассказали документацию Курсора, показали, как они ловко и умело делают MVP с минимальной бизнес-логикой, и на этом всё. Круто!

__

И что по итогу: 

 1) Все три курса по ИИ оказались откровенной халтурой. Всё то же самое можно найти на официальном сайте Cursor AI или на YouTube бесплатно и без воды.

  2) При создании своих MVP они делали ровно то же, что и я. Поэтому проблема с тем, что ИИ написал мне лапшу — это проблема ИИ, а не того, как именно я писал запросы.

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

До коле? Как так вышло, что на хабре в 2025 году

  • не существует банов за чатгпт статьи и комментарии

  • не существует способа забрать свой лайк или дизлайк с поста/комментария. Учитывая насколько на хабре оценки много «весят», промазать по кнопке и не иметь возможности забрать лайк — это абсурд

Вот такая вот «замечательная» статья: https://habr.com/ru/articles/963748/. Создана чатгпт, комментарии полностью чатгпт, код описанный в статье чатгпт, организация на гитхабе и её название — чатгпт.
ВСЕ факты в статье — галлюцинация чатгпт

Теги:
Всего голосов 47: ↑46 и ↓1+47
Комментарии13

SpaceWeb открыл расширенную API-документацию для веб-мастеров и DevOps-инженеров

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

Раньше эти операции выполнялись только через веб-интерфейс панели управления. Теперь разработчики и системные администраторы могут автоматизировать их через API.

Что изменилось

В документации появились полноценные методы для работы с основными сервисами платформы:

  • балансировщик нагрузки;

  • облачные бэкапы;

  • управление IP-адресами;

  • мониторинг ресурсов;

  • почтовые сервисы;

  • DBaaS;

  • DNS-управление.

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

Зачем это нужно

Расширенная API-документация помогает специалистам глубже контролировать инфраструктуру и встраивать управление ресурсами в собственные процессы. 

Теперь пользователи могут:

  • отслеживать метрики потребления и интегрировать их во внутренние системы мониторинга;

  • ускорять развертывание окружений;

  • автоматизировать управление политиками бэкапов и масштабирование сервисов.

SpaceWeb продолжает развивать платформенное API и движется к модели Infrastructure as Code. В ближайших релизах появится поддержка Terraform и Ansible, чтобы пользователи могли включать управление облачными ресурсами в CI/CD-пайплайны, автоматизировать инфраструктуру и сокращать время вывода IT-продуктов на рынок. Ознакомиться с API-документацией можно на сайте SpaceWeb

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Вышла новая версия Vacuum 0.19.5.

Vacuum – сверхбыстрый и лёгкий инструмент линтера и проверки качества OpenAPI, написанный на Golang и вдохновлённый Spectral. Он также совместим с существующими наборами правил Spectral.

Ключевые изменения релиза - исправление ряда ошибок.

GitHub: https://github.com/daveshanley/vacuum

ChangeLog: https://github.com/daveshanley/vacuum/releases/tag/v0.19.5

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

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

Как хорошо вы шарите в Docker?

Вы же не из тех, кто думает, что docker ps показывает список процессов? Давайте проверим ваш реальный уровень знаний Docker за 6 каверзных вопросов! Так вы сможете узнать, где «плаваете» и какие темы стоит освежить, чтобы работать увереннее.

Пройти тест

P.S. Если результат будет «грустный» не страшно. Главное не зависать в статусе exited(1) 😉

Теги:
Рейтинг0
Комментарии0

15 открытых уроков ноября

Привет, Хабр. Делимся подборкой открытых уроков, которые скоро пройдут в Otus в рамках онлайн-курсов. Это живые лекции с преподавателями-практиками — отличная возможность протестировать формат обучения и задать вопросы экспертам. Участие бесплатное, нужна только регистрация. Присоединяйтесь:

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Сегодня в 15:00 — новый выпуск прямого эфира «Стальной микрофон» с директором по информационным технологиям «Северстали». Герой нового эфира — врач! Знакомьтесь:

Николай Сорокин — доктор медицинских наук, профессор факультета фундаментальной медицины МГУ им. М. В. Ломоносова, врач-уролог, онколог, онкохирург.

Вместе с гостем обсудим:
- Когда пора идти к профильному врачу?
- Будет ли полная роботизация медицины?
- Дети врачей и айтишников — это будущие врачи и айтишники?

Эфир пройдёт в Telegram-канале @severstalitpeople.

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

Теги:
Рейтинг0
Комментарии0

Расскажем, как проводить нагрузочное тестирование на Python

Ждем вас через час, в 18:30 мск, на митапе для Python-специалистов. Как обычно, поговорим обо всем, что волнует сообщество. Сделаем глубокий разбор экосистемы mypy и протестируем ее. Выясним, как запускать задачи по расписанию от cron/systemd timers до чистого Python. Узнаем, насколько сильно можно нагрузить систему, прежде чем она сломается. Все это — в компании экспертных спикеров из Selectel, Яндекса и Райффайзен Банка. 

Приходите лично или подключайтесь к трансляции.

Программа

18:35-19:05 — mypy в неестественной среде обитания
Сделаем обзор gradual typing в Python и экосистемы mypy, разберем отличия от линтеров и других анализаторов типа.

19:05-19:35 — Все идет по cron-у. Или нет?
Поговорим о том, как запускать задачи по расписанию: от cron/systemd timers до чистого Python и библиотек вроде APScheduler, Celery, а также Kubernetes CronJob и Redis Queue.

19:35-20:00 — Ломай меня полностью
Разберемся, зачем и как проводить нагрузочное тестирование.

Подключайтесь к трансляции:

YouTube
ВКонтакте

Теги:
Всего голосов 3: ↑3 и ↓0+6
Комментарии0

Вебинар «System Design интервью: решаем топовую задачу»

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

Поэтому Кирилл Борисов, SRE в VK, вместе с Владимиром Невзоровым, Senior backend developer, покажут реалистичный опыт прохождения технического интервью.

Для кого этот вебинар?

⭐️ Для тех, кто готовится к техническим интервью в крупных компаниях

⭐️ Для разработчиков, желающих углубить свои знания в проектировании систем

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

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

🗓️ Когда: 12 ноября в 19:00 мск. 

Занять место — в боте.

Теги:
Рейтинг0
Комментарии0

Бывает, что работа надоедает — хочется попробовать себя в чём-то новом, но останавливает страх начинать с нуля. Спокойно: построить карьеру в IT можно и без глубоких знаний программирования или технического образования.

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

Тестировщик

Аналитик данных 

UI-дизайнер 

Frontend-разработчик

Python-разработчик

А если вас не пугают трудности — залетайте на нашу витрину со всеми курсами (даже самыми хардовыми)

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0