Обновить
32K+
267,01
Рейтинг
116 391
Подписчики
Сначала показывать

Все не так с Codable

Уровень сложностиСложный
Время на прочтение19 мин
Охват и читатели12K

Привет, Хабр! На связи Кристиан Бенуа, iOS-разработчиĸ в Т-Банĸе. Быстродействие мобильных приложений — один из критериев, влияющих на успех не только приложения, но и всего бизнеса.

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

Расскажу, как мы сделали pull request в swift-foundation и внесли несколько оптимизаций в JSONDecoder/JSONEncoder, ускорив сериализацию и десериализацию в два раза. В конце обсудим, как получить эту оптимизацию без ограничений по версии iOS и насколько можно ускорить работу с JSON в приложении.

Читать далее

Как мы сделали платформу для собеседований Enterly

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

Привет, Хабр! Я Анжела Большакова, разработчик направления Digital Interview в Т-Банке.

Мы в T активно развиваем внутренние инструменты, а иногда такие проекты перерастают в продукты для внешних пользователей. Так произошло с платформой для интервью, которой занимается моя команда.

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

Читать далее

Java Digest #31

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

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

Этот месяц в мире Java выдался насыщенным. В JDK 26 готовят превью Lazy Constants и Structured Concurrency, собираются убрать режим строк только UTF‑16, а стандартный HttpClient получает более гибкую поддержку TLS.

Главное событие — GA‑релизы Spring Framework 7 и Spring Boot 4: модульная автоконфигурация, новый HTTP‑клиент, версионирование REST API, переход на Jackson 3 и множество других улучшений.

Из практики: разбор пагинации в Spring Data JPA, подводные камни MapStruct и заметка о балансе между чтением и написанием кода. Приятного чтения!

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

Scala Digest. Выпуск 35

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

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

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

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

Оптимизация через партицирование

Уровень сложностиСложный
Время на прочтение30 мин
Охват и читатели9.8K

Привет, Хабр! Меня зовут Виталий Сушков, я .NET-разработчик и техлид в Т-Банке. 

На конференции DotNext в 2024 году я выступал с докладом о применении механизма декларативного партицирования таблиц в PostgreSQL. 

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

Читать далее

Как перестать мониторить серверы и начать следить за продуктом

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

Привет, Хабр! Мы — Дмитрий Дудов, руководитель разработки платформы T-Messenger, и Алексей Стрельников, Product Owner этой платформы. Мы считаем, что доступность — это история на пересечении бизнеса и техники.

В статье расскажем: 

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

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

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

Читать далее

ИИ в программной инженерии: обзор практик, инструментов и проблем

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

Привет, Хабр! Меня зовут Николай Бушков, я работаю архитектором в команде Engineering Productivity R&D в Т-Банке (группа «Т-Технологии»). В начале лета я выступал на конференции MTS True Tech Day c докладом «Не эксперимент, а стратегия: путь к системному использованию AI в SDLC». А сейчас хочу поделиться текстовой версией описания сценариев использования искусственного интеллекта (ИИ) в программной инженерии, которые реализуются у нас в компании. Уверен, наш опыт будет полезен многим для генерации и фильтрации идей применения ИИ, а также сравнения их с положением дел в ваших рабочих процессах. В конце статьи кратко сформулирую наше видение дальнейшего развития и приглашу поучаствовать в  исследовании ИИ в инженерной культуре России.

Читать далее

OpenTelemetry — не то, чем кажется…

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

Привет! Меня зовут — Евгений, работаю в финтехе и проектирую системы, которые обрабатывают миллионы запросов, интегрируются с десятками внешних сервисов и живут в Kubernetes. А еще я преподаю Java/Spring Boot и рассказываю студентам, как не наступать на чужие грабли, а создавать свои и прыгать на них.

Больше 10 лет в разработке — и за эти годы в череде проектов я видел одну и ту же боль: отсутствие системного подхода к наблюдаемости. Логи, метрики и трейсы появляются «по остаточному принципу»: что‑то добавили при отладке, что‑то прилетело из чужой либы, что‑то настроили на проде. Итог — инженеры часами разбирают простые инциденты, а продуктовые команды теряют скорость.

В статье поделюсь нашим опытом: как мы строим наблюдаемость в системах, почему OpenTelemetry — это больше чем стандарт и какими принципами мы руководствуемся.

Ну давай посмотрим что у тебя там...

Java Digest #30

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

Всем привет! 👋👋👋👋👋

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

Октябрь выдался интересным: JDK 26 приносит поддержку HTTP/3, Vector API снова в инкубации, а Swing внезапно обзаводится своим DatePicker — да, 2025-й, а Swing жив! Разработчики обсуждают Leyden и GPU-ускорение для Java-ИИ, а Oracle чинит 15 уязвимостей. В статьях свежие оптимизации ZGC, разбор виртуальных потоков, Jackson 3, Kafka Queues и немного философии про «хороший вкус» в разработке. А под конец релизы, от JUnit 6 до Spring 6.2.12. Заваривайте кофе, обновляйтесь до JDK 25 и читайте. Поехали 🚀

Читать далее

Scala Digest. Выпуск 34

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

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

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

Читать тридцать четвертый

От Jest к Vitest на backend тестах: как мы мигрировали тестовый фреймворк для ускорения CI и повышения стабильности

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

Привет! Я Максим Кузьмин, старший инженер по автоматизации в команде Т-Путешествий. Строю и развиваю процессы автоматизации и разрабатываю инструменты тестирования.

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

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

Читать далее

Анализ дампа: с чего начать

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

Всем привет! Меня зовут Виктор, и я программист. Восемь лет работаю в команде Т-Банка и все это время вместе с коллегами занимаюсь проектом «Т-Телефония». Моя команда разрабатывает сервисы, которые обеспечивают голосовую коммуникацию внутри и вне банка. 

Звонки — один из основных способов связи с нами, поэтому система критична для бизнеса с высоким требованием к доступности. Она обрабатывает более 2 млн звонков в день. Если происходит сбой в любой пользовательской системе и нашим клиентам плохо, количество звонков сразу увеличивается, а нагрузка на систему повышается в два-три раза.

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

В статье покажу, что такое дампы, какие есть инструменты для работы с ними и какие у них особенности, покажу наши примеры проблем, расскажу, как мы их решали.

Читать далее

URLPattern — pattern matching, который мы ждали

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

Привет, Хабр! На связи снова Сергей, ведущий фронтенд-разработчик из Центрального университета. В последнее время я преисполнился URL и опять хочу про него рассказать. 

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

Читать далее

Как запускать 100k+ браузеров в день и спать спокойно

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели16K

Привет! Я Павел Лобач из команды инфраструктуры тестирования Т-Банка. Расскажу, как у нас организована инфраструктура для запуска E2E браузерных тестов, как она развивалась и как в итоге вылилась в открытый проект Selebrow. 

Будет много технических подробностей и ни слова про ИИ!

Читать далее

Как мы в Т-Банке ручное тестирование роботизировали

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

Привет, Хабр! Мы команда из отдела разработки ПО для банкоматов Т-Банка: Александр, Владислав, Иван и Денис.

Расскажем о необычном, но интересном опыте автоматизации и роботизации тестирования банкоматного ПО в Т-Банке, для которого мы использовали коллаборативного робота.

Ручное тестирование нового ПО АТМ трудозатратно, требует много времени и ресурсов. Зачастую действия повторяются и QA выполняет одни и те же тест-кейсы. Нашей целью было высвободить ресурс QA, уйдя от рутинного ручного тестирования к более творческим задачам путем роботизации ручного тестирования.

Читать далее

Что значит быть продуктовым разработчиком

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели7.4K

Привет, Хабр! Я Николай Видов, разработчик в команде чатботов. Я работал как в небольших компаниях, так и в тех, которые на слуху: EPAM, QIWI, Т-Банке. За время работы я часто сталкивался с понятием продуктовости: «Разработчики должны активно участвовать в бизнесе», «Разработчики должны предлагать улучшения для продукта», «Разработчики должны аргументированно спорить, если не согласны с предложенной функциональностью».

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

Продуктовый разработчик — это следующая ступень эволюции разработчика, который активно участвует в бизнес-процессах. © Никита Пастухов, мейнтейнер FastStream

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

Читать далее

Java Digest #29

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

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

В этом выпуске обозреваем Java 25. Смотрим на новые числовые типы, которые появятся в языке. Узнаем, что лучше: verify или clean install. Наблюдаем, как Spring продолжает обрастать новыми фичами. Изучаем сборщик мусора Shenandoah. В очередной раз убеждаемся, что чтение кода занимает куда больше времени, чем его написание. И еще много всего интересного. Приятного чтения 🙂

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

Scala Digest. Выпуск 33

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

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

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

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

Что нужно знать системному аналитику о Apache Cassandra

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

Всем привет! Я Илья Глазунов, системный аналитик в проекте карточного хранилища T-Pay Online — быстрого способа оплаты для наших клиентов. В качестве БД в проекте хранилища мы используем Apache Cassandra. В статье — обзорный материал, который поможет познакомиться с БД.

В культуре Т-Банка важно, чтобы системные аналитики знали особенности интеграционных схем с другими компонентами, умели строить схемы БД так, чтобы минимизировать издержки, связанные с i/o-операциями. А еще — чтобы могли вычислять узкие места в кейсах и влиять на выбор верхнеуровневого компонента в проекте. 

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

Разберем, для чего нужна Cassandra, рассмотрим основные концепции архитектуры, разложим принципы проектирования БД с ее особенностями модели данных и затронем некоторые принципы расчета конфигурирования БД Cassandra.

Читать далее

T-ECD — синтетический кросс-доменный датасет для исследований в области рекомендательных систем

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

Всем привет! На связи команда RecSys R&D Т-Банка. В экосистеме Т мы развиваем рекомендации практически во всех сервисах — от инвестиций до доставки продуктов и кэшбэка.

Представляем  открытый синтетический датасет T-ECD — T-Tech E-commerce Cross-Domain Dataset. Он создан на основе реальных данных Т-Банка и предназначен для исследований в области рекомендательных систем. 

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

Рассказываем, как T-ECD устроен и что внутри. Полный датасет и его уменьшенная версия T-ECD-Small уже доступны на Hugging Face.

Читать далее

Информация

Сайт
l.tbank.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия