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

Kotlin *

Статически типизированный язык программирования

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

Как силами мобильных разработчиков автоматизировать процесс разработки

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

Всем привет! Меня зовут Женя Мельцайкин, я старший инженер-программист в компании Контур. Большую часть времени в Контуре я работал и работаю Android-программистом, но статья будет не про Android и даже не про мобильную разработку. А про команду мобильной разработки и про наш процесс разработки! Давайте же начнем разбираться, причем тут мобильные разработчики, автоматизация и бэкенд.

Читать далее

kjs-box: добавляем ленивые модули, ресурсы с типизацией и модели представления в React-проекты на Kotlin

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

Года три назад я захотел сделать для себя небольшой сайт. Лезть в TypeScript или тем более в JavaScript, когда любишь Kotlin, желания не было, равно как и не хотелось создавать какие-то типовые функции с нуля. По этим причинам выбор пал на React в сочетании с Kotlin Wrappers.

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

От первичного плана работ на несколько месяцев процесс затянулся на более чем два года. Сайта в итоге так и нет, но вместо него появился небольшой фреймворк — kjs-box: в этой статье я расскажу о его основных концепциях и функциях.

Читать далее

Java Digest #18

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

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

В этом выпуске обсуждаем последние обновления в экосистеме Java и популярных инструментах для разработчиков — от уменьшения размера хедеров объектов и новых API для файлов классов до новинок в IntelliJ IDEA. Делимся полезными статьями и видео об ускорении сборок, работе с JPA и Elasticsearch и даем рекомендации по разработке собственного Kafka Connector. Не пропустите интересные подкасты и практические примеры! 

Читать восемнадцатый выпуск

Как масштабировать права в проекте и продуктах без боли

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

Всем привет! Меня зовут Константин, я инженер-программист в Контуре. Пару лет назад мне довелось поработать над задачей разделения прав доступа в проекте Реестро (7 продуктов, более 100 микросервисов).

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

Читать далее

Сборка мусора в Java. Часть №1. Обзор сборщиков мусора и их различий

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

Команда Spring АйО перевела и адаптировала доклад "Garbage Collection in Java: The progress since JDK 8" Стефана Йоханссона(Stefan Johansson) с последнего Devoxx Belgium.

Доклад получилось поделить на две статьи. В первой вы узнаете об основах работы сборки мусора в Java, различных сборщиках мусора, а также об их особенностях, плюсах и минусах. Вторая часть будет посвящена сравнению производительности сборщиков и их прогрессу с момента выхода JDK 8.

Читать далее

Как я писал суперкастомизированное Android-приложение в 2024 году

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров6.5K
Как я писал супер кастомизированное Android приложение в 2024 году

В начале года у меня появилась прикольная идея: сделать Android-приложение, которое будет показывать анимации для алгоритмов сортировки. Чтобы вы сразу поняли, что представляет из себя приложение, на GitHub есть скрины и короткие видео. Давайте по кусочкам разберём мой проект.
Читать дальше

Сравнение операторов RxJava 3 и Kotlin Coroutines Flow

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

Привет, Хабр! Меня зовут Константинов Александр, я Android-разработчик в «Студии Олега Чулакова». Сегодня мы сравим операторы RxJava 3 и Flow. Статья будет полезна как для изучения операторов, так и для более легкого перехода с RxJava на Flow.

Читать далее

Давайте использовать OpenTelemetry со Spring

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

Команда Spring АйО перевела статью, раскрывающую преимущества использования OpenTelemetry для мониторинга и трассировки Spring Boot приложений.

В статье показано, как интеграция с OpenTelemetry с использованием OTLP и других компонентов позволяет легко встроить стандартизированный сбор метрик, логов и трассировок в экосистему Spring.

Читать далее

Spring АйО подкаст №1. Spring – эволюция или революция?

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

В первом выпуске подкаста Spring АйО в студии собрались 4 эксперта сообщества, чтобы попытаться раз и навсегда ответить на вопрос: "Чем же для нас стал Spring: эволюцией или революцией?"

Читать далее

AI и Spring Petclinic: Внедрение ИИ-ассистента с Spring AI (Часть II)

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

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

В новом переводе от команды Spring АйО рассматривается польза Spring AI и хранилища векторов, благодаря которым система не просто сопоставляет ключевые слова, но и понимает смысловые запросы пользователей, делая взаимодействие с приложением еще более естественным.

Читать далее

Главный метод Android-приложения

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

Если вы когда-нибудь писали «Hello World» на Java (или любом другом C-подобном языке), то наверняка делали это в статическом методе main. Этот метод вызывается в JVM и является точкой входа любой Java программы.

Но при разработке приложений для Android вы возможно, как и я до недавнего времени, ни разу метод main не встречали. Создается ощущение, что его вообще не существует, а при нажатии на иконку в лаунчере наши Application и Activity создаются какими-то волшебными гномами, спрятанными в устройстве.

Читать далее

Действительно ли ИИ-помощники экономят время разработчиков?

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

Команда Spring АйО перевела статью об исследовании Uplevel, которое показало, что использование GitHub Copilot не улучшает производительность разработчиков, а наоборот — увеличивает количество ошибок в коде. 

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

Читать далее

Не играй в догонялки со Spring — Explyt Spring plugin для IDEA Community

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

Всем привет. После моей предыдущей статьи о Maven плагине, где я предложил новый подход к реализации и создал свою версию для IDEA (вместо того чтобы писать свой мини-мавен, я делегировал всю основную работу ему посредством Maven плагина), меня пригласили работать над Spring плагином в IT-стартап Explyt. Компания занимается автоматической генерацией тестов на базе AI и формальных методов. В процессе работы столкнулся с проблемами, похожими на те, которые решал в своем Maven плагине. У меня возникло некое дежавю, и я подумал: почему бы не использовать подобный подход, чтобы доработать и улучшить Dependency Injection Explyt Spring плагина? Текст для тех, кто работает со Spring-плагинами и хочет разобраться, как эффективно применять готовую логику Спринга для новых задач. Заходите под кат, подробно поделюсь своим кейсом, покажу код, расскажу про итерации и объясню логику.

Читать далее

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

Как написать Android приложение, которое не будет стыдно положить в портфолио. Гайд для новичков в Android разработке

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

Гайд по написанию Android-приложения с нуля, используя лучшие архитектурные подходы – Clean Architecture и MVI, они обеспечат поддерживаемость, тестируемость и масштабируемость приложения, что особенно важно для сложных и долгосрочных проектов.

Читать далее

Расширенная шпаргалка по корутинам Kotlin

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

Предположим, что вы уже какое-то время работаете с Kotlin-корутинами и знакомы с базовыми концепциями, такими как приостанавливаемые (suspend) функции и билдер launch. Однако по мере усложнения проектов вы всё чаще сталкиваетесь с необходимостью искать решения для более продвинутых задач и обращаетесь к поисковым системам или искусственному интеллекту за помощью.

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

Читать далее

Как жить без IntelliJ IDEA? Часть №2. Поддержка Spring

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

В первой статье из цикла «Как жить без IntelliJ IDEA» мы рассмотрели возможные альтернативы привычной многим IDE. 

Во второй статье из цикла команда Spring АйО выяснила, какие есть альтернативы Ultimate в части поддержки Spring и насколько хорошо они справляются со своей задачей.

Читать далее

Решение проблемы race condition в Kotlin корутинах

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

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

Читать далее

Функциональные HTTP-эндпоинты с Spring MVC/WebFlux и Kotlin

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

Функциональные подходы к разработке в Spring становятся все более популярными благодаря своей гибкости и лаконичности. В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, рассматривается, как можно эффективно определять HTTP-эндпоинты с использованием Spring MVC/WebFlux, применяя функциональный стиль программирования на языке Kotlin. Аналогичный подход можно реализовать и на Java, хотя использование Kotlin позволяет существенно упростить код.

Читать далее

Да будет справедливость или как найти друзей на удалёнке

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

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

Мне посчастливилось работать в одной очень крутой и заботливой компании, которая закрывала выше описанные мною потребности. То есть оплачивала групповые интересы своих сотрудников. Так я ходил с переменным постоянством на сквош, большой теннис, скалолазанье, гонку героев. Кроме этого было еще много коммьюнити - это и настольные игры, и занятия по пению, футбол, воллейбол, беговой клуб и скорее всего что-то еще что я не смог вспомнить. Честно говоря, такая забота меня просто поразила и я нигде такого не встречал.

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

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

Читать далее

Как жить без IntelliJ IDEA? Часть №1. Собери сам

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

На российском рынке сложилась сложная ситуация с IDE для Java-разработчиков. Новости, связанные с ограничением скачивания IntelliJ IDEA Ultimate, недоступностью JetBrains маркетплейса и блокировкой лицензий, которые использовались на территории РФ порождают огромное количество вопросов, на которые не у всех есть ответы.

Команда Spring АйО подготовила цикл статей, в которых постарается ответить на все вопросы, связанные с уходом IntelliJ IDEA из России.

Читать далее