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

Бэкенд

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

Сорцы на выходные на «расте»

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

Наибольший кайф античных книг в их выдержке, актуальности. Книги точно проверены временем, актуальны (правда если знаешь в чем) и как ни странно, честны (книги хотели бы, чтобы их читали через сотню или тысячу лет). В программировании античные скрипты, наверно, написал Деннис Ритчи, сегодня же почитаем современников - Sean Parent (довольно известный чел в c++ тусовке) начал писать на расте (возможно, как начал так и закончил, но мы живем в моменте - поэтому предлагаю насладиться). Читать на расте сложнее, чем писать (это прям факт) - пишут его двое (автор и компилятор), а читают, ну читают на гитхабе. Далее в прозаическом сочинении свободной композиции, подразумевающем впечатления и соображения автора по конкретному поводу или предмету, рассмотрим компоненты новой библиотеки и попробуем насладиться примерами кода.

Читать далее

Руководство по pgcrypto — шифрование внутри PostgreSQL. Часть 1

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

Привет, Хабр! На связи Антон Дятлов, инженер по защите информации в Selectel. Хранение конфиденциальных данных в PostgreSQL в открытом виде — мина замедленного действия. Неприятности в будущем становятся неизбежными. Достаточно одной успешной SQL‑инъекции, утечки резервной копии или компрометации доступа к серверу, чтобы вся чувствительная информация — от персональных данных пользователей до API-ключей — оказалась в руках злоумышленников.

Даже если все обошлось, то принимать меры защиты все равно придется. Исправлять БД постфактум — задача неблагодарная и крайне рискованная. Шифрование уже существующих данных потребует сложной миграции. Это долго, дорого и не всегда проходит гладко.

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

Читать далее

Как использовать topic exchange в RabbitMQ для роутинга по шаблонам

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

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

Сегодня разберём один из самых гибких инструментов в RabbitMQ — topic exchange. Именно он позволяет не просто отправить сообщение «куда‑то», а превратить очередь в маршрутизатор уровня BGP, но только внутри твоей системы.

Читать далее

Языки программирования на все случаи жизни. Часть 1

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

В программировании существует десятки разных направлений, языков ещё больше, около 9000. Эта статья будет интересна для тех, кто только-только начинает свой путь разработчика или же для тех, кому просто интересно. К языку будут прилагаться библиотеки и фреймворки, которые нужны для обсуждаемых направлений (например, django для python в бэкэнде).

Читать далее

Как я создал Text Extract API для RAG за 2 дня с помощью AI и Cursor: подробный кейс

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

Разработка с помощью AI‑инструментов меняет подход к созданию ПО. Я сам убедился в этом на практике: всего за два дня мне удалось создать Text Extract API для RAG, используя Claude 4.0, Gemini Pro 2.5 и IDE Cursor. Этот эксперимент показал, что нейросети — уже не просто хайп, а мощный ассистент, способный значительно ускорить процесс разработки.

Наша команда занимается созданием ПО для IT‑специалистов — программу Управление IT‑отделом 8. В ней есть блок для работы с заявками от клиентов и обширная база знаний. Возникла идея: интегрировать нейросети для автоматической обработки тикетов. Кейс прост:

Прилетает тикет от клиента > Нейросеть смотрит в базу знаний и готовит ответ > IT‑специалист либо использует ответ нейросети, либо нейросеть отвечает автоматически.

Для реализации такого функционала необходимо обучить AI‑модель на нашей базе знаний, а это требует качественного извлечения текста из различных документов. Эта статья посвящена первому этапу этого процесса — созданию API для извлечения текстовых данных из файлов любых форматов, что критически важно для эффективной работы с Retrieval‑Augmented Generation (RAG).

Читать далее

Один транк, чтобы править всеми: год экспериментов с TBD

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

Привет! Меня зовут Вадим, я техлид команды разработки платформы кеширования в Газпромбанке. Хочу рассказать о том, как внедрили, использовали и улучшали Trunk Based Development, совершили все возможные ошибки, но в итоге получили то, что хотели — быструю и надежную разработку. Cycle time у нас теперь около одного дня, по одному сервису больше 30 деплоев в месяц, и команда больше не боится пятничных релизов.

Если коротко про TBD — это подход к разработке с одной интеграционной веткой (trunk), куда все делают мердж-реквесты несколько раз в день. Никаких долгоживущих feature-веток, никакого git-flow с develop.

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

Читать далее

CRM для Автошколы. Заключение

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

Прошло 5 месяцев с последней публикации на тему "разработка CRM для автошколы". Данная статья будет заключительной, и она поставит точку в данном кейсе. Прислушавшись к опытным специалистам и получив оценку все ситуации вокруг данной задачи - я решил: "хватит писать все своими руками, на дворе 2025 год. пора изучать что-то новое и расширять свои познания". Пишем все на Laravel! И поставил для себя цель - что данный проект должен быть именно на нем. Это будет первый мой самостоятельный проект, которой я доведу до состояния продакта.

Я изучил основную концепцию MVC архитектуры веб-приложений. Почитал документацию о фреймворке. Посмотрел ряд видеоуроков, в которых не указаны никакие тонкости в разработке. Ко всему этому, один человек показал мне основы работы с Laravel, познакомил с базовыми пакетами, такими как Laravel Breeze, Permissions, Dto. Спустя несколько месяцев - я освоил базу, и решил начать сначала разработку той самой CRM.

Читать далее

Почему я отказался от доли в стартапе ради стабильной зарплаты — и не жалею

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

«Оформим позже», «ты в команде», «все всë понимают» — такие фразы часто звучат в мире стартапов. Особенно, если речь идёт о привлечении разработчиков, дизайнеров или консультантов на этапе «до юрлица».

Работа кипит: фичи разрабатываются, MVP собирается, первые пользователи тестируют продукт. А вот документы — остаются на потом.

Как показывает наша юридическая практика, именно это «потом» и становится отправной точкой для конфликтов. Особенно — если проект оказывается успешным, поднимает раунд или выходит на сделку с инвестором.

Читать далее

Техдолг: симптомы, диагностика и лечение

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

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

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

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

Читать далее

Изучение Python за 2 недели через боль и дедлайн: личная история

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

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

Читать далее

Проект выходного дня: экранные линейки

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

.

Привет, Хабр! Хочу поделиться историей как я портировал свой (очень)старый пет-проект с Delphi 7 на Zig с помощью LLM. Утилиты rulers (экранные линейки, «как в фотошопе»). В 2007 году это был простой инструмент для замеров и выравнивания элементов интерфейса прямо на экране, написанный на Delphi.

Почти два десятилетия спустя я решил воскресить его, но с современным подходом: портировать на zig, да ещё и задействовав LLM для автоматизации. Почему? Потому что я реально фанатею от языка zig, и руки так и чешутся на нём что-то написать. Но переписывать не маленький кусок старого кода — занятие довольно унылое, и я всё откладывал его в «долгий ящик». С другой стороны, я, как реальный ИИ-скептик, с сомнением отношусь к новомодному вайб-кодингу и не доверяю таким инструментам. Но, всё же я решил рискнуть и попробовать, если не для написания нового кода, то хотя-бы для портирования уже написанного. Наверное, шанс на успех тут будет выше. Эта статья о том, что у меня получилось (и не получилось).

Читать далее

Ходим в Интернет с отключённым IPv4

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

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

В этом посте я расскажу, как на помощь мне пришли Linux, WireGuard и Hetzner, благодаря которым я смог получить доступ ко всему Интернету через одно лишь соединение IPv6.

Читать далее

Java Digest # 26

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

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске будут материалы о том, как ускорить запуск приложений с помощью ReadyNow и CRaC — двух подходов к оптимизации старта. Разберем тонкости аннотации @TestInstance(PER_CLASS) в JUnit 5 и ее влияние на жизненный цикл тестов. 

Тем, кто работает со Spring, может пригодиться обзор Spring Debugger от JetBrains — плагина, который делает отладку наглядной и удобной. Еще будет доклад о повышении производительности Spring Data JPA и Hibernate. И в завершение — сравнение FFM API с Unsafe: посмотрим, какой трейдофф между скоростью и безопасностью предлагает новый подход. Приятного прочтения!

Читать выпуск №26

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

Как писать красивый и чистый код питонистам?

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

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

Читать далее

Сон и сознание

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

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

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

Вот что говорит об этом главный научный сотрудник Института проблем экологии и эволюции им. А.Н. Северцова РАН Владимир Ковальзон.
— Вообще, сомнология — одна из наиболее бурно развивающихся сегодня наук. Открытия — каждый год, а примерно раз в 10 лет вся научная парадигма представлений о бодрствовании и сне меняется. Связано это в первую очередь с появлением новых методов изучения работы мозга. Пример: раньше мы могли очень грубо выключать большие участки мозга, а сегодня, благодаря новым технологиям, можно прицельно регулировать работу конкретных нейронов. Благодаря этому и стало понятно, что мозг работает совсем не так, как мы думали. Это не похоже ни на компьютер, ни на нейросеть, а напоминает скорее аналоговую машину: мозг весь состоит из блоков, которые взаимодействуют друг с другом, при том, что между ними нет никакой видимой связи.

Читать далее

Новое в контроллерах Bitrix Framework: фильтры и валидация

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

Новое в контроллерах Bitrix Framework: фильтры и валидация

Привет! Сегодня мы расскажем, какие нововведения появились в контроллерах ядра за последнее время.

Читать далее

Тезисы о std::set и std::multiset в C++

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

Приветствую всех читателей! Меня зовут Максим, и я хочу поделиться с вами своими знаниями о программировании. Я не являюсь профессиональным разработчиком, и программирование для меня — это хобби и способ автоматизации рутинных задач на работе. В этой статье я расскажу вам об ассоциативном контейнере std::set и std::multiset в C++. Надеюсь, что эта информация будет полезной и интересной для всех, кто хочет узнать что-то новое о программировании.

Ну давай, удиви меня

TDD: разработка быстрее и качественнее

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

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

Читать далее

Docker + Neovim: поднимаем конфиг на любом сервере и не засоряем систему

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

Иногда нужно запустить nvim на старом сервере. Но тут сразу куча проблем: одно не поставить, другое не собрать, а если что-то обновить — можно развалить весь проект.

Этот подход удобен и для новых систем. Docker позволяет поднять nvim с последним Python, nvim-treesitter и своим конфигом прямо в контейнере, не засоряя основную ОС.

При этом можно редактировать локальные файлы на сервере так, как будто nvim установлен на самой системе. В статье показано, как всё это запустить на CentOS 7.
А если заработало там — значит, на любом современном Linux тем более проблем не будет.

Читать далее

Как мы подняли современный портал документации из россыпи .md файлов: пошаговое руководство по MkDocs + Material

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

От хаоса в Markdown-файлах до стильного, быстрого сайта с поиском, темами и мультиязычностью за один вечер.
В жизни почти каждого IT-проекта наступает момент, когда количество файлов README.md, GUIDE.md, docs.txt и заметок в Confluence достигает критической массы. Документация становится фрагментированной, поиск нужной информации превращается в квест, а новые члены команды тратят часы на то, чтобы просто понять, "что где лежит".

Читать далее