
Java *
Объектно-ориентированный язык программирования
Учебник Thymeleaf: Глава 16. Кэш шаблонов
16 Кэш шаблонов
Thymeleaf работает благодаря набору парсеров для разметки и текста — который анализирует шаблоны в последовательности (открытый тег, текст, тег закрытия, комментарий и т. д.). И ряд процессоров по одному для каждого типа поведения, которые применяются и изменяют последовательность событий синтаксического анализа шаблона, чтобы создать ожидаемые результаты, объединив исходный шаблон с нашими данными.
Учебник Thymeleaf: Глава 15. Подробнее о конфигурации
15 Подробнее о конфигурации
15.1 Resolver шаблонов
Для нашего виртуального бакалейного магазина Thymes мы выбрали реализацию ITemplateResolver под названием ServletContextTemplateResolver, которая позволила получить шаблоны в качестве ресурсов из контекста сервлета.
Помимо предоставления возможности создавать собственный шаблонный резольвер, реализуя ITemplateResolver, Thymeleaf включает в себя четыре реализации из коробки:
Учебник Thymeleaf: Глава 14. Еще несколько страниц нашей бакалеи
14 Еще несколько страниц нашей бакалеи
Теперь мы много знаем об использовании Thymeleaf и можем добавить некоторые новые страницы на наш сайт для управления заказами.
Учебный фреймворк на Java по глубокому обучению
Недавно мы выпустили первую версию нового фреймворка по глубокому обучению DeepJava (DJ) 0.01.
Основная цель фреймворка, по крайней мере, на текущий момент, чисто учебная. Мы строим шаг за шагом фреймворк, у которого:
- будет понятная кодовая база
- будет набор бранчей, по которым можно шаг за шагом проследить процесс создания и понять, почему были сделаны те или иные изменения
Планы на JPoint 2018

Уже скоро в Москве пройдет международная Java-конференция JPoint, поэтому пора определиться с докладами, на которые стоит сходить. Рассказ пойдет о докладах, на которые пойду лично я и почему.
Я зарабатываю разработкой приложений на Java c 2012 года. В основном решаю проблемы интеграции систем и управления проектами, поучаствовал в нескольких десятках проектов, знаю не понаслышке про разработку веб-сервисов, десктопных и веб-приложений.
Java Puzzlers NG S02: всё чудесатее и чудесатее
В основе статьи – расшифровка их выступления на осенней конференции JPoint 2017. Она показывает, сколько загадок таит в себе Java 8 и едва замаячившая на горизонте Java 9. Все эти стримы, лямбды, монады, Optional-ы и CompletableFuture-ы были добавлены туда исключительно для того, чтобы нас запутать.
Все, о чем они рассказывают, должно работать на последней версии Java 8 и 9, соответственно. Мы проверили – вроде все по-честному: как написано, так себя и ведет.
О применении рефлексии в тестировании и не только
Под катом несколько полезных примеров, которые покажут положительные стороны рефлексии.

Смена основного стека с .NET на Java

Хочу описать свои наблюдения и впечатления о самом популярном языке серверного программирования для Enterprise под названием Java. Наблюдения и впечатления на сравнении и контрасте с “похожей” платформой .NET, с которой я очень хорошо знаком. Уверен, что ~год назад, когда будущее нового дотнета в очередной раз показалось мне чересчур туманным и мысль сменить технологический стек окончательно материализовалась в голове, данная статья оказалась бы очень полезной. Я постараюсь не вдаваться в мелкие технические/стилистические различия языков программирования, которые легко нагуглить, а предложу скорее взгляд сверху — на экосистему в целом. Итак, Java глазами матёрого дотнетчика с десятилетним стажем. Прошу под кат.
Многопоточность на корабликах

Задача производитель/потребитель
Статья рассчитана для новичков, которые недавно начали свое знакомство с миром многопоточноcти на JAVA.
Тестирование Android приложений
Тестирование — одна из важнейших частей разработки качественных программных продуктов. Сегодня мы поговорим о некоторых методологиях и библиотеках, разработанных и используемых нашей командой для написания тестов Android приложений.

Начнем с самых базовых вещей, потому более опытные разработчики могут перейти сразу к разделу об инструментах для UI тестирования. Для тех, кому хочется узнать или освежить базовые вещи — приятного чтения.
Учебник Thymeleaf: Глава 13. Текстовые режимы шаблона
13 Текстовые режимы шаблона
13.1 Текстовый синтаксис
Три типа шаблонов Thymeleaf считаются текстовыми: TEXT, JAVASCRIPT и CSS. Это отличает их от режимов шаблонов разметки: HTML и XML.
Ключевое различие между режимами текстового шаблона и разметкой заключается в том, что в текстовом шаблоне нет тегов, в которые нужно вставлять логику в виде атрибутов, поэтому мы должны полагаться на другие механизмы.
Разбор перформансных задач с JBreak (часть 4)
public double octaPow(double a) {
return Math.pow(a, 8);
}
public double octaPow(double a) {
return a * a * a * a * a * a * a * a;
}
public double octaPow(double a) {
return Math.pow(Math.pow(Math.pow(a, 2), 2), 2);
}
public double octaPow(double a) {
a *= a; a *= a; return a * a;
}Условие (упрощённо):
Определить, какие методы быстрые, а какие — медленные (JRE 1.8.0_161).Под катом бенчмарки, куски ассемблера и разбор оптимизаций со стороны JVM.
Другие публикации серии: Часть 1, Часть 2 и Часть 3.
Ближайшие события
Учебник Thymeleaf: Глава 12. Встраивание / Inlining
12 Встраивание / Inlining
12.1 Выражения встраивания / Expression inlining
Хотя стандартный диалект позволяет нам делать почти все с использованием атрибутов тегов, бывают ситуации, когда мы можем предпочесть писать выражения непосредственно в наши HTML-тексты. Например, мы могли бы предпочесть написать это:
Учебник Thymeleaf: Глава 11. Комментарии и Блоки / Blocks
11 Комментарии и Блоки / Blocks
11.1. Стандартные HTML/XML комментарии
Стандартные HTML/XML комментарии <!--… --> можно использовать в любом месте шаблонов Thymeleaf. Все, что внутри этих комментариев, не будет обрабатываться Thymeleaf и будет скопировано дословно:
Ещё раз о JetBrains Open Day в Москве
Итак: Банкетный зал Crystal Ballroom в Москва-Сити, 1-й красногвардейский проезд, дом 21 строение 2. Четвертый этаж.
Программа:
Полный перечень intrinsic-функций в HotSpot в JDK 7, 8, 9 и 10
В HotSpot реализовано несколько сотен интринсиков (их количество растёт от релиза к релизу). Описание всех intrinsic-функций можно найти в исходниках OpenJDK в файле
vmSymbols.hpp. Ниже приведены полные списки интринсиков для JDK 7 (vmSymbols.hpp), JDK 8 (vmSymbols.hpp), JDK 9 (vmSymbols.hpp) и JDK 10 (vmSymbols.hpp).Повесть о том, как один инженер HTTP/2 Client разгонял
Предлагаем вам расшифровку его доклада с JPoint 2017. В целом речь тут пойдет не про HTTP/2. Хотя, конечно, без ряда деталей по нему обойтись не удастся.
Как создавали большую энциклопедию для сотрудника
Под катом сегодня рассказываем о нашей википедии – умном справочнике, где есть вся информация обо всех продуктах и услугах банка.

Объект в футляре или Optional в Java 8 и Java 9: Часть 5: Недосказанное и постер в подарок

Это пятая и последняя статья серии, посвящённая использованию класса Optional при обработке объектов с динамической структурой. В первой статье было рассказано о способах избежания NullPointerException в ситуациях, когда вы не можете или не хотите использовать Optional. Вторая статья посвящена описанию методов класса Optional в том виде, как он появился в Java 8. Третья — методам, добавленным в класс в Java 9. В четвертой статье я представил класс, который расширяет возможности класса Optional на случай, когда при неудаче при обработке данных в методе нам необходимо обрабатывать информацию об этой неудаче.
В этой статье мы рассмотрим вопрос, стоит ли Optional использовать во всех тех местах, где могут появиться нулевые значения. Я приведу также мнение Brian Goetz, архитектора языка Java v Oracle об этом классе, и конечно, исполню данное в прошлой статье обещание — поощрю каждого читателя, прочитавшего все статьи серии, ценным подарком.