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

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

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

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

Как выжить в мире сложных интерфейсов в 2025-м: 7 работающих рецептов от React и CSS до дизайн-систем

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

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

Для МойОфис как мультипродуктовой экосистемы со сквозными сценариями — все эти вопросы очень актуальны! Поэтому на прошлой неделе JS-еры, дизайнеры и UX-исследователи нашей и других компаний собрались на митапе под названием Frontend&UX Talks, чтобы обсудить эти и другие проблемы современного веба. Получилось интересно, драйвово и даже сказочно! (и я в прямом смысле этого слова :-))

Под катом расскажем в 7 тезисах, к каким выводам пришли и как именно: поехали!

О фронтенде в 2025-м году мы поняли, что...

Понятный и простой код — куда важнее, чем кажется

Примитивы это сказка! (причем буквально...)

Реактивное программирование актуальное и удобное! Но не для всех...

Следить за CSS обновлениями каждый квартал – базовый минимум

Темизация это нелегко, но есть лазейки!

Редизайны продуктов – это не страшно! (ну почти...)

За сложными интерфейсами – глаз да глаз...

Читать далее

Domain-Driven Design: чистый подход к проектированию бизнес-логики

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

Недавно наша команда столкнулась с новым проектом — крупной backend-системой, которую руководство решило реализовать в формате монорепозитория. Масштаб бизнес-логики оказался огромным, и быстро стало понятно, что без четкой архитектурной дисциплины невозможно поддерживать читаемость, изолировать бизнес-логику и эффективно управлять сложностью. Поэтому мы выбрали подход Domain-Driven Design (DDD), при котором домен описывает бизнес-правила, а оркестратор и инфраструктура вынесены в отдельные слои. Меня зовут Рамиль Куватов, я разработчик в VK Tech, и эта статья — попытка описать и систематизировать принципы, которые помогают нам сохранять архитектуру чистой, а систему — устойчивой к изменениям.

Читать далее

Кросс-платформенный Rust от и до: GUI + CLI + CI + Docker Реальный опыт доставки DotPlus на Linux и ARM

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

Кросс-платформенный Rust от и до: GUI + CLI + CI + Docker Реальный опыт доставки DotPlus на Linux и ARM

Читать далее

Гайд на полиморфизм. Что там под капотом?

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

В прошлой статье мы рассмотрели теоретическую основу такого понятия как полиморфизм. Теперь же перейдем к рассмотрению что там «под капотом».

Читать далее

Как написать торгового робота для API Т-Инвестиций на Java

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

Привет! Я Алексей Кабанов, младший разработчик в команде публичного API Т-Инвестиций. Занимаюсь разработкой и поддержкой Java SDK и внутренних сервисов. Изучаю анализ рыночных закономерностей и программную реализацию алгоритмов торговли, построенную на них.

Расскажу о Java SDK для работы с API Т-Инвестиций и покажу, как использовать его для создания торгового робота. Мы сосредоточимся на стратегии, основанной на технических индикаторах, и продемонстрируем, как ее реализовать с помощью новых возможностей SDK.

Современная алгоритмическая торговля предлагает множество инструментов и стратегий, которые могут значительно повысить эффективность торговли на финансовых рынках. В статье покажу, как использовать обновленный Java SDK для создания робота, который будет торговать по стратегии, основанной на технических индикаторах. А еще подробно рассмотрим, как с его помощью можно настроить и протестировать робота, чтобы запустить его на реальном рынке.

Читать далее

Создаём конвейер обработки запросов в платформе Serverless

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

За 10 лет, что существует Serverless‑подход, бессерверные функции стали для многих разработчиков чем‑то привычным и удобным. С их помощью можно быстро написать несколько строк кода для реализации конкретной бизнес‑логики и задеплоить, не думая о развёртывании, настройке и обслуживании инфраструктуры. Нужный код запустится автоматически при срабатывании триггера, как это принято в событийно‑ориентированной архитектуре. Но если таких функций в приложении потребуется очень много — что поможет сохранить нужную скорость работы и другие преимущества Serverless?

Меня зовут Сергей Ненашев, последний год я разрабатываю в Yandex Cloud сервис бессерверных функций Cloud Functions. В нашем облаке с ним можно запускать код в виде функции без создания и обслуживания виртуальных машин.

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

Читать далее

Как хранить деньги в базах данных и почему это не так просто, как кажется

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

Хранение денежных сумм в базах данных и API: анализ подходов платежных систем

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

Разбираем, как решают эти проблемы Stripe, PayPal, Google Wallet и другие платежные системы. Сравниваем три основных подхода: Integer minor units, Decimal base units и String base units.

Читать далее

Лучшие алгоритмы 20 века по версии SIAM

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

На рубеже веков SIAM опубликовали список из 10 алгоритмов, оказавших наибольшее влияние на науку и индустрию в 20 веке (по мнению редакции), четверть века спустя по меньшей половина из этого списка до сих пор используется повсеместно. В статье вспомним что это за алгоритмы и за что они получили такое признание. Обсудим и алгоритмы, которые в этот список не вошли, но вполне могли бы, о чем читатели хабра написали в комментариях к статье "10 лучших алгоритмов 20 века". В конце статьи опрос, пожалуйста, не проходите мимо и отметьте или напишите в комментариях, какие алгоритмы на ваш взгляд должны были оказаться в этом списке!

Читать далее

Telegram Bot API 9.1 — чеклисты, подарки и другое

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

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

Рассмотрим их подробнее.

Читать далее

Магия ClientOnly: повышаем производительность и безопасность в Nuxt-приложениях

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

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

Серьёзно о несерьёзном и с юмором о технологиях — обо всех секретных суперспособностях вашего любимого компонента-невидимки.

...Loading

Всё, что нужно знать о своих планах, случайностях и стохастическом программировании

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров3.2K
Все мы прекрасно знаем, что очень часто наши планы идут не по плану именно из-за случайностей. В такие моменты очень трудно обойтись без жаргонизмов, нецензурной брани и отборного трехэтажного. Но все же есть способ сделать наши планы более устойчивыми и состоятельными — это стохастическое программирование (далее SP — stochastic programming).


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

Бот для написания постов в Телеграм. Создание и запуск

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

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

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

Читать далее

Разбираемся со Spring Boot с помощью Spring Debugger

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

Команда Spring АйО перевела статью о работе со Spring Debugger и о том, как его применение существенно облегчает отладку приложений, написанных с использованием Spring Boot. На момент написания статьи фича доступна только в Ultimate версии IntelliJ IDEA.

Читать далее

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

Vue Teleport: как работает

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

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

Сегодня разберём один из недооценённых, но крайне полезных инструментов во Vue 3 — <Teleport>. Это встроенный механизм, который позволяет рендерить часть шаблона вне текущего DOM‑контекста. Он нужен при реализации модалок, тултипов и других компонентов, которые должны «выпрыгивать» из дерева компонентов, но при этом сохранять реактивность, фокус и доступность. Без этих костылей, z-index: 9999 и appendChild.

Читать далее

Нейросеть приближается к опыту профессионального дерматолога

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

Наконец наступило лето, а с ним и пора отпусков. Уезжая на южные моря, не забывайте: большинство из нас имеет типичную для северянина кожу с пониженным содержанием меланина — пигмента, отвечающего за защиту от ультрафиолета. Если кожа отреагировала непонятным новообразованием, вызывающим опасения, теперь можно проконсультироваться с искусственным интеллектом. Он предварительно осмотрит кожу и посоветует, бежать ли ко врачу, за которым, конечно, всегда последнее слово. К слову, данная медицинская ИИ-технология, как и публикация, не является медицинской рекомендацией: диагноз ставит лечащий врач.

Читать далее

DevOps в 2025 году: отдельные дисциплины, машинное обучение и прогноз на будущее

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

Привет! Меня зовут Константин Полуэктов, я solution architect в Yandex Cloud и технический эксперт в онлайн-магистратуре от Яндекса и ИТМО «DevOps-инженер облачных сервисов». В этой статье я расскажу о сфере DevOps: что изменилось за последние годы и чего ждать в будущем.

Читать далее

Когда «ускорить разработку» — значит всё сломать

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

Когда «ускорить разработку» — значит всё сломать

Почему скорость команды — это не всегда про людей, а про инфраструктуру

Читать далее

Процедурная генерация воксельных рогаликовых уровней

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

Процедурная генерация воксельных рогаликовых уровней с использованием клеточных автоматов и алгоритмов работы с сеткой ячеек на Python. Описана начальная генерация уровней, их упорядочивание, прокладка путей.

Читать далее

2D-скролл во Flutter

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

Да кто такой этот ваш 2D-скролл? Зачем он нужен, если ты не делаешь аналог excel? На самом деле, двунаправленная прокрутка нужна в огромном количестве сценариев использования мобильных приложений, в виде таблицы можно представить самые разные сущности — как, например, наш видеоредактор. 

Есть только одна маленькая проблема: видеоредактор Yappy кроссплатформенный, написан на Flutter, а до недавнего времени команда фреймворка предлагала только один способ реализовать 2D-скролл — очень не производительный. В статье рассказываю, в чём была была загвоздка, что есть во Flutter сейчас и каких впечатляющих результатов можно добиться собственной реализацией. 

Читать далее

Навигация без хаоса: архитектура маршрутов в масштабируемом TypeScript-проекте

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

Нам важно, чтобы поддержка пользователей была на высоком уровне, поэтому у нас есть десятки сервисов для организации обучения специалистов поддержки. Я работаю над одним из таких проектов. Он активно развивается: ежемесячно добавляем более 10 новых страниц — сейчас в проекте их больше 120.

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

Читать далее

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