Привет!
В выпуске стримим данные из MySql с помощью Spring Data, разбираемся с производительностью JVM в докере и знакомимся с проектом Reactor от Spring.
Trampolining: a practical guide for awesome Java Developers
Основная проблема рекурсивных методов это зависимость от размера стека. С помощью рекурсии можно обрабатывать только небольшие объемы данных, чтобы не поймать StackOverFlowError. Но когда мы переписываем код с рекурсии на очередь например, код становится не таким читаемым. В статье рассказывается о том как можно писать рекурсивный код, который будет выполнятся итеративно.
http://mrhaki.blogspot.ru/2014/05/groovy-goodness-implementing-traits-at.html
Groovy Goodness: Implementing Traits at Runtime
В статье рассказывается про Трейты — конструкцию из языка Груви. Трейт — это интерфейс, который мы можем добавить к классу динамически. Мы как будто подмешиваем свое поведение к уже существующему классу.
Streaming MySQL Results Using Java 8 Streams and Spring Data JPA
В статье рассказывается о том как можно отдавать данные из MySql в потоковом режиме. Углубившись в дебри документации к MySql автору удалось сократить время экспорта с **137 секунд до 9! **
http://codeahoy.com/2016/11/16/performance-testing-serverside-applications/
Performance Testing Serverside Applications
В статье рассказывается как нужно и как не нужно тестировать производительность приложения. Из статьи узнаете почему бессмысленно мерить производительность приложения не в продакшн окружении.
https://techblog.bozho.net/hardcode-server-ip-apps/
Domain Fallback Mechanism In Apps
Что делать если какой-то из больших днс серверов упал? Да, теперь мы не можем подключится к серверу по его домену, а в наше время микросервисов это еще более больно, чем раньше. Автор решает эту проблему с помощью фолбеков - сначала мы пробуем первый домен, если не получается запасной, затем пробуем достучаться по ip адресу.
http://javarticles.com/2016/11/linkedblockingqueue-example.html
LinkedBlockingQueue Example
Автор с отличными примерами и картинками рассказывает о том как работает ‘LinkedBlockingQueue ’ Обязательно запустите примеры из статьи - они хорошо демонстрируют применение этой структуры данных.
https://www.youtube.com/watch?v=6ePUiQuaUos&t=310s&index=47&list=WL
The JVM and Docker. A good idea? by Christopher Batey
Кристофер рассказывает о проблемах запуска приложения в Докер контейнере и об инструментах, с помощью которых можно мониторить состояние приложений. Вы знали, например, что если запустить несколько контейнеров с Jetty приложение может неожиданно упасть ¯_(ツ)_/¯ ! Не забывайте смотреть настройки библиотек по умолчанию!
https://www.quora.com/Which-is-better-Play-Framework-or-Spring-MVC-How-should-I-decide-what-to-use
Which is better, Play Framework or Spring MVC? How should I decide what to use?
Отличный ответ с Quora, который претендует на целый пост. О том почему Линкадин перешел со Спринга на Плэй Фреймворк. Вкратце — Спринг очень сложный. Концепции простые, но сложно подружить все его компоненты вместе в рамках большого приложения.
http://musigma.org/java/2016/11/21/reactor.html
Reactive systems using Reactor
На смену хайпу про микросервисы приходит “новая” модная парадигма — реактивность. Теперь мы пишем не просто микросервисы, а реактивные микросервисы. На основе библиотеки Reactor автор рассказывает об основных концепциях реактивных стримов. Реактивность скоро появится в Спринге 5.0 — всем читать и разбираться.
http://upli.st/l/list-of-all-ascii-emoticons
Сегодня десерт. Ссылка самые популярные текстовые эмодзи - чтобы в чате быть на высоте ( ͡° ͜ʖ ͡°)