Как стать автором
Поиск
Написать публикацию
Обновить
1156.58

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

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

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

Проектирование Sequence-диаграмм: руководство для системных аналитиков

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

Привет, коллеги! Меня зовут Юля, я системный аналитик в компании EvApps.

Сегодня поговорим о sequence-диаграммах (диаграммы последовательности) – одном из способов моделирования взаимодействий между объектами в системе. В этой статье мы рассмотрим преимущества использования sequence-диаграмм, типичные ошибки при их создании, а также пример их проектирования. Ключевая идея – показать мыслительный процесс, а не просто шаблонное описание. Статья будет полезна прежде всего системным аналитикам, а также тем, кто участвует в проектировании и разработке программного обеспечения.

Читать далее

Telegram-бот, который умеет слушать: разработка на grammY

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

Представьте: собеседник отправляет голосовое сообщение на пять минут, а вы не можете отвлечься и прослушать все от начала до конца? Что делать? Максим, ведущий канала RED Group, подошел к вопросу творчески и показал, как на базе grammY и SpeechService в NestJS разработать бота, который будет слушать и структурировать по таймкодам голосовые сообщения.

Инструкция будет полезна новичкам, которые только погружаются в работу с Telegram Bot API с помощью JavaScript. Кроме того, в конце материала мы разберем, как задеплоить готового бота на сервер, чтобы он работал вне зависимости от локальной машины. Подробности под катом!
Читать дальше →

Включаем VoLTE на Pixel 9

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

О, сколько нам открытий чудных
Готовит просвещенья дух

В данной статье пойдет речь о VoLTE, о Pixel 9, и о том, как включить VoLTE (и заодно VoWiFi) на данном устройстве.

Читать далее

Кросс-валидация на временных рядах: как не перемешать время

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

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

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

Читать далее

УЗИарт: как врач УЗИ создал себе программу для автоматической подготовки медицинских протоколов

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

Привет, Хабр! Меня зовут Александр Юрьевич Доротенко. Я врач УЗИ высшей категории. Опыт работы УЗИ – с прошлого века (с февраля 2000 года). За плечами уже четыре десятка лет работы врачом, из них два десятка лет также стараюсь программировать для рабочих целей.

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

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

Начинаю свой рассказ

Как работает Injector в Angular и что такое @Optional, @SkipSelf, @Host

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

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

Сегодня мы рассмотрим, как работает Injector в Angular, зачем нужны декораторы @Optional, @SkipSelf, @Host, и чем отличаются провайдеры на уровне root, модуля и компонента.

Читать далее

GigaConf. GenAI растёт и крепнет

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

25 июня на креативной площадке «Хлебзавод №9» прошла ежегодная технологическая конференция Сбера. Меня зовут Олег Плотников и я занимаюсь развитием перспективных цифровых проектов. Конечно, я не мог пропустить такое мероприятие. Тем более, что ИИ на промпредприятиях уже давно никого не удивляют. А GigaChat вообще плотно обосновался в этой сфере. Но обо всем по порядку — под катом.

Читать далее

Джун и ChatGPT: как вместо одной строки переписать полпроекта

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

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

Хочется немного порассуждать на эту тему. И рассказать пару историй из жизни.

Читать далее

Типы данных для хранения вещественных чисел в PostgreSQL

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

В статье рассматриваются особенности типов данных для хранения вещественных чисел в PostgreSQL.

Типы данных PostgreSQL для работы с вещественными числами:

1) float4, синоним real, синоним float(1..24)

2) float8, синоним float, синоним double precision, синоним float(25..53)

3) numeric синоним decimal. Диапазон для этого типа значительный: 131072 цифр до точки и 16383 цифр после точки. Но если при определении типа указать numeric(точность, масштаб), то максимальные значения точности и масштаба 1000. numeric можно объявить с отрицательным масштабом: значения могут округляться десятков, сотен, тысяч.

Кроме чисел и null поддерживаются значения Infinity, -Infinity, NaN.

Поля типов данных фиксированной длины не могут вытесняться в TOSAT-таблицу, переменной длины (numeric) могут.

float4 обеспечивает точность 6 разрядов (значащих чисел в десятичной системе счисления), float8 обеспечивает точность 15 разрядов. Последний разряд округляется:

Читать далее

Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

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

Построить Rate Limiter — легко. Сделать его быстрым, отказоустойчивым и работающим в нескольких дата-центрах — сложнее. Делюсь опытом реализации нашего облачного Rate Limiter в DDoS-Guard: принцип работы, анализ правил и реальные примеры из практики.

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

Система команд. Основы динамической логики

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

Эта идея — основа для понимания моей концепции интеллекта (саморазвивающейся программы). Если интересует создание саморазвивающейся программы, то эта идея не будет лишней. В начале описание идеи, потом описание реализации и описание некоторого дополнительного функционала.

Рассказал идею о создании логики программы динамически. Причём, эта логика не представлена чисто в виде инструкций языка программирования. Она работает на основе конструкций, которые работают на основе инструкций ЯП — это абстракции над ЯП, что-то типа ЯП более высокого уровня, чем python.

Читать далее

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

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

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

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

Что это даёт?

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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