Главная » Архив меток: Java

Архив меток: Java

[Перевод] Эмуляция литералов свойств с Java 8 Method Reference

От переводчика: к переводу этой статьи меня подтолкнула обида от отсутствия оператора nameOf в языке Java. Для нетерпеливых — в конце статьи есть готовая реализация в исходниках и бинарниках. В этом посте я покажу, как можно креативно воспользоваться Method Reference из Java 8 для эмуляции литералов свойств с помощью генерации байт-кода. Одна из вещей, которой часто не хватает разработчикам библиотек ...

Читать далее »

[Из песочницы] Неочевидная проблема использования assert

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

Читать далее »

[Перевод] Мои любимые примеры функционального программирования в языке Kotlin

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

Читать далее »

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

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

Читать далее »

[Javawatch Live] История одного pull request. `os.version` в SubstrateVM

Прошел год с тех пор, как удалась предыдущая выходка: опубликовать вместо поста ролик на YouTube. «Стыдный разговор о синглтонах» набрал 7к просмотров на YouTube и вдвое больше на самом Хабре в текстовой версии. Для статьи, написанной в совершенно упоротом состоянии и рассказывающей о древнейшем баяне — это что-то вроде успеха. На этот раз тема куда более свежая: история коммита в ...

Читать далее »

[Перевод] Как предотвратить перерасход памяти при использовании Java-коллекций

Всем привет! Так что есть подозрение, что именно сложные курсы мы скоро начнём потихоньку переводить на такую систему. Наш эксперимент со ступенями по курсу «Разработчик Java» продолжается и, как ни странно, даже вполне успешно (вроде): как оказалось, что плечо планирования в пару месяцев со следующим переходом на новую ступень в любое удобное время — это куда удобнее, чем если выделять ...

Читать далее »

История тестирования проекта «К»: Kotlin&Spek

Привет, Хабр! В этой статье мы поговорим об автоматическом тестировании на одном из многочисленных проектов QIWI, получившим кодовое название «К». Возможно, такой подход подойдет и вам, если вы столкнетесь с похожими задачами. Когда мы организовывали тестирование это проекта, то решили выбрать практичный и хайповый Kotlin, а также Spek, гласящий «Вы называете их тестами, мы называем их спецификациями» (You call them ...

Читать далее »

[Из песочницы] [Перевод] Как работает Graal — JIT-компилятор JVM на Java

Представляю вашему вниманию перевод статьи "Understanding How Graal Works — a Java JIT Compiler Written in Java". Привет, Хабр! Введение Когда я впервые столкнулся с программированием, будучи ребенком, и познакомился с языком программирования, первым, о чем я хотел узнать, было то как это работает, и самым первым, что мне хотелось сделать, было создание собственного языка. Одной из причин по которой ...

Читать далее »

UI-автотесты: как делать не стоит

Здравствуй, Хабр. Меня зовут Виталий Котов, я работаю в отделе тестирования компании Badoo. Я пишу много UI-автотестов, но ещё больше работаю с теми, кто занимается этим не так давно и ещё не успел наступить на все грабли. Каждый пример я подкрепил подробным описанием, примерами кода и скриншотами. Итак, сложив свой собственный опыт и наблюдения за другими ребятами, я решил подготовить ...

Читать далее »

[Перевод] Интерфейсы командной строки Java: picocli

Всем привет! То есть мы чуть переработали и перетасовали программу, и разбили её на три ступени, которые можно спокойно проходить с перерывом между ними. Очередной старт группы «Разработчик Java», на котором мы всё продолжаем наш эксперимент того, что процесс обучения не обязан быть непрерывным («Контрамоция должна быть непрерывной?» ). Ну и традиционно интересная статья связанная с нашим курсом. В общем ...

Читать далее »