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

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

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

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

Сетевой чат в Unity: Часть 1 — Основы и простой интерфейс

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

Просто о сложном: первая часть из серии статей на тему создания сетевого чата в Unity с использованием Netcode for GameObjects. Для тех, кто начинает разбираться в сетевой логике.

Читать далее

Создать решение на базе ИТ-платформы, выиграть полмиллиона и получить оффер в МТС: как прошел True Tech Hack 2025

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

Привет, Хабр! Меня зовут Аня Крюкова, я занимаюсь спецпроектами для молодежи и лидирую работу с вузами. В прошлый раз мы разбирали задачи алгоритмического трека на True Tech Champ 2024, а сегодня поговорим о еще одном крупном мероприятии от нашей компании — МТС True Tech Hack.

Расскажу, почему в этом году мы поменяли формат хакатона, сколько ребят в нем участвовало и какие были результаты. Отзывы участников тоже будут. Спойлер: некоторые получили оффер в МТС прямо в день финала. Устраивайтесь поудобнее, задавайте вопросы и присоединяйтесь к нашим следующим хакатонам!

Читать далее

PM vs TPM: что вообще происходит с профессией?

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

Еще пару лет назад я считал себя «классическим» продуктом. Знал пользователей, гонял дизайнеров, выкапывал инсайты, пинал разработку — все как учили. Но в последнее время начал замечать странную штуку: лента вакансий как будто перекроили. Вместо привычного Product Manager всё чаще вижу TPM. Technical Product Manager. Technical Program Manager. Technical ещё что‑то. Причём зарплаты те же или выше. А требования — местами совсем другие.

Сначала я это игнорировал. Ну подумаешь, слово «technical» прицепили. Потом — напрягся. Потому что под капотом оказалось: от тебя ждут не просто roadmap на квартал и пару фичей в прод, а полного погружения в архитектуру, понимания API, базы данных, CI/CD, пайплайнов, очередей, да ещё и умения всё это дело засинкать между 3 командами параллельно.

В какой‑то момент я начал задаваться вопросом: а я вообще кто?

Читать далее

Как тестировать хуки в React с @testing-library/react-hooks

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

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

Сегодня рассмотрим, как тестировать React‑хуки с помощью @testing-library/react-hooks.

Читать далее

Нельзя просто так взять и выбрать Any() или Count для проверки коллекции

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

Сравнивая различный code-style в проектах, я упоминал про методы проверки коллекций на наличие элементов. Самые очевидные способы – это использование LINQ-метода Any() или сравнение свойства Count с нулем. И если вы выбрали первый вариант, то у вас могут быть проблемы. Поэтому предлагаю подробнее рассмотреть этот вопрос. Кстати, если вы выбрали второй вариант, то у вас тоже могут быть проблемы.

Читать далее

Фишки Cursor — как сделать работу с ним дешевле и эффективнее?

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

Многие используют Cursor, не зная, на что он на самом деле способен. Будем идти от простого к сложному.

1. Самое простое, что позволит улучшить работы с Cursor — это использовать Cursor Rules

Что это даёт?

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

Документация здесь.
А тут отличные заготовки для правил

2. Включайте сразу несколько ИИ-агентов

В Cursor можно открыть 3 вкладки, где параллельно будут работать 3 ИИ-агента (это максимум). Единственное что - контролируйте, чтобы они они не использовали дни и те же файлы — могут перезаписать или удалить результаты работы другого агента, так что им нужно давать изолированные задачи.

Дополнительно можно ещё использовать фонового агента, который работает на серверах Cursor, и будет выполнять задание на основании вашего кода в репозитории. А потом все его результаты можно отправить в репозиторий или локально, однако он работает за дополнительную плату (Price-based)

Можно даже открыть второй Cursor, и запустить работу ещё там (особенно если работа ведётся с кардинально разными репозиториями), но это не очень удобно с точки зрения переключения между ними.

3. Кладите связанные репозитории в 1 папку и открывайте её в Cursor

Допустим, у вас есть бэкенд, фронтенд и ещё микросервис для управления подписками. Если вы поместите их в 1 папку и откроете её в Cursor, то он сможет ходить между ними и делать согласованный код. Допустим, он может сразу сделать контроллеры на бэкенде и api для них на фронтенде.

Читать далее

Композиционные хуки во Vue 3: коротко

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

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

В этой статье рассмотрим, что такое композиционные хуки во Vue 3, зачем они нужны и как их использовать.

Читать далее

Как «модное» убило релиз

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

Или почему shiny tech stack ≠ рабочий продукт. Каждую неделю выходят новые «киллеры» фреймворков, базы данных, фреймворки на фреймворки, UI-библиотеки, подходы к state management, архитектурные паттерны и всё прочее.

Читать далее

Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 3

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

Команда Spring АйО перевела и адаптировала доклад Мацея Валковяка “Performance oriented Spring Data JPA & Hibernate”, в котором на наглядных примерах рассказывается, как существенно нарастить производительность приложения, оптимизировав его взаимодействие с БД. 

Доклад будет опубликован тремя частями. В первой части было рассказано об оптимизации управления соединениями с базой данных. Во второй части мы посмотрели на то, как оптимизировать код и настройки Spring Data и Hibernate, чтобы минимизировать количество отправляемых в базу данных SQL запросов. Третья часть посвящена обзору инструментов, которые могут помочь разработчику правильно организовать работу по регулярной оптимизации производительности приложений, в том числе при работе командой.

Читать далее

Зоопарк версий питона в ИИ, какую версию лучше выбрать в 2025 для большинства задач?

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

Разработка в области искусственного интеллекта развивается стремительно. Каждый месяц появляются новые модели и фреймворки, и часто возникает вопрос: какую версию Python использовать для локальной разработки и экспериментов, чтобы обеспечить максимальную совместимость и избежать «ада зависимостей»? Но, можете не тратить время на чтение. СРАЗУ ВЫВОД: Рекомендуемая версия: Python 3.10.x.

Неправильный выбор версии Python может привести к часам отладки, проблемам с компиляцией пакетов и несовместимости с ключевыми библиотеками, такими как PyTorch или TensorFlow. В этой статье мы проведем глубокий анализ совместимости более 30 популярных AI-моделей и 30+ библиотек, чтобы дать однозначный и обоснованный ответ.

Читать далее

История успеха, из-за которой компания перестала работать с Rust

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

Пользователь Reddit опубликовал в r/rustjerk сгенерированный ИИ пост под названием «Почему наш CTO запретил использовать Rust после одного переписывания кода». Очевидно, что этот рассказ выдуман, но у меня есть история похожая на него в том смысле, что успех проекта на Rust привёл к прекращению использования этого языка в компании.

Несколько лет назад я работал в стартапе-«единороге», во время пандемии развивавшемся невероятно быстро. Его основное приложение было написано на Ruby on Rails, а часть инструментария для работы с видео — на Node.js, но мы никак не применяли быстрые компилируемые языки наподобие Rust и Go. Через пару месяцев после моего прихода в компанию нам нужно было реализовать работающий в реальном времени сервис, который бы позволял нам получать информацию о том, кто из пользователей находится онлайн (то есть в профиле есть зелёная точка) и чем они занимаются (например: N пользователей смотрят презентацию X, M пользователей находятся в разделе маркетинга и так далее). Ничего особо сложного, но мы рассчитывали на изначальный рост до ста тысяч пользователей. Эта цель тоже не особо сложна, но большинство разработчиков согласилось, что Ruby — не лучший выбор для этого.

Читать далее

Мой опыт проектирования архитектуры

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

Привет! Меня зовут Азамат, я backend-разработчик в Циане. В работе мне часто приходится пересматривать архитектуру компонентов или проектировать её с нуля. Со временем у меня накопились подходы и наблюдения, которыми хочу поделиться.

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

Материал будет полезен тем, кто хочет влиять на архитектуру в своей команде и ищет, с чего начать.

Читать далее

Spring AI: Model Context Protocol

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

Model Context Protocol (MCP) — это унифицированный протокол взаимодействия между большими языковыми моделями (LLM) и внешними источниками данных и инструментами. Spring AI предоставляет очень простой декларативный подход для добавления любых инструментов в контекст LLM с помощью MCP. Мы рассмотрим несколько простых примеров по созданию MCP-клиента и MCP-сервера.

Читать далее

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

45 открытых уроков июля: возможности роста для каждого

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

Привет, хабровчане. В этом дайджесте делимся подборкой открытых уроков, которые проведут преподаватели OTUS в рамках набора на онлайн-курсы в июле. В программе — от глубоких погружений в архитектуру DWH и сетевые протоколы до навыков работы с ML-моделями и DevOps. Каждый урок — возможность разобраться в ключевых аспектах IT-сферы, задать вопросы экспертам и закрыть пробелы в знаниях.

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

Читать далее

Code Tutorials — React: рисуем двумерный граф

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



Привет, друзья!


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


В этой статье мы изучим библиотеку react-force-graph-2d для рисования двумерных графов.


Демо приложения:



Локальный запуск приложения:


git clone https://github.com/harryheman/react-graph.git
cd react-graph
npm i
npm run dev

Интересно? Тогда прошу под кат.

Читать дальше →

Встреча ISO C++ в Софии: С++26 и рефлексия

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

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса, и сейчас я расскажу о софийской встрече Международного комитета по стандартизации языка программирования C++, в которой принимал активное участие. Это была последняя встреча, на которой новые фичи языка, с предодобренным на прошлых встречах дизайном, ещё могли попасть в C++26.


И результат превзошёл все ожидания:


  • compile-time-рефлексия
  • рефлексия параметров функций
  • аннотации
  • `std::optional<T&‍>`
  • параллельные алгоритмы
Об этих и других новинках расскажу в посте

in-аргументы в C#: чем они отличаются от ref, out, и где реально полезны

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

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

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

Читать далее

Scala Digest. Выпуск 30

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

Привет, Хабр! Мы — Настя, Эвелина и Миша — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Мотивацию мы черпаем из желания развиваться и делиться полученными знаниями.

Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать тридцатый выпуск

Синдром бога: когда ждешь миллионы за то, что просто пишешь код

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

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

Если коротко:

Автор работает в IT с 18 лет. Сейчас ему 24. И он пишет, как несправедлив этот мир, потому что его потолок — 400k. Видимо, за умение слепить форму или написать CRUD’ы должны платить миллионы.

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

Итог статьи и её автора — печален. Мы наблюдали нелепый акт самовыпила с Хабра. Сначала автор улетел в минуса, потом в read-only. После чего создал второй аккаунт, чтобы в последний путь бряцнуть своим дипломом бакалавра.

Читать далее

Как не облажаться с типами данных в PostgreSQL

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

Недавно вышла отличная книга PostgreSQL Mistakes and How to Avoid Them от Jimmy Angelakos — системного архитектора, практика и давнего участника сообщества PostgreSQL. Книга подробно разбирает распространённые ошибки, с которыми сталкиваются разработчики и администраторы при работе с PostgreSQL, и предлагает практичные решения: от тонкостей конфигурации и миграции до антипаттернов в SQL и выбора типов данных.

Я перевёл одну из ключевых глав этой книги — про неправильное использование типов данных. В ней подробно объясняется, почему, например:

timestamp without time zone может ломать логику расчёта интервалов;

money — это не то, чем кажется (и почему он опасен);

char(n) и varchar(n) не дают ожидаемой экономии и даже вредны;

serial — это прошлый век, а identity — настоящее.

Глава будет полезна всем, кто работает с PostgreSQL в проде — особенно backend-разработчикам, независимо от языка и фреймворка. Если вы проектируете схемы БД, пишете SQL-запросы или просто хотите избежать неприятных грабель — стоит прочитать.

Читать далее

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