Показаны сообщения с ярлыком java. Показать все сообщения
Показаны сообщения с ярлыком java. Показать все сообщения

пятница, 31 мая 2019 г.

JAva COde COverage. Оценка покрытия java кода тестами с помощью JaCoCo

18 мая 2019 года состоялась десятая встреча сообщества java разработчиков Севастополя JUG.SEV. На данной встрече я вступил с докладом на тему "JAva COde COverage. Оценка покрытия java кода тестами". В докладе я рассказал об особенностях измерения одной из метрик качества тестирования: покрытии кода тестами. На примере open source библиотеки JaCoCo разобрал, как работает технология оценки покрытия кода в java. Рассказал о внедрении процесса анализа покрытия кода тестами в процесс разработки продукта. Расставил акценты и резюмировал, какую пользу может принести оценка покрытия, и какие есть подводные камни ее использования.


Видео доклада




Презентация



пятница, 9 ноября 2018 г.

Fullstack разработка: от железа до фронтэнда. IoT in action

14 октября 2018 года прошла девятая встреча сообщества java разработчиков Севастополя JUG.SEV, на которой я выступил с докладом "Fullstack разработка: от железа до фронтэнда. IoT in action".

В докладе я рассказал об особенностях построения решений в сфере интернета вещей (IoT) на примере проекта мониторинга температуры и влажности помещения с помощью сенсоров на базе микроконтроллера esp8266 (Lolin (Wemos) D1 mini) с wi-fi и сервера на Raspberry Pi 3.

Рассказал, как проектировать и создавать сенсоры в железе, как разрабатывать софт для сенсоров с помощью Arduino Framework. Развернул на Raspberry Pi java сервер, который управляет сенсорами, собирает с них значения температуры и влажности по WI-FI и предоставляет интерфейс для настройки и просмотра графиков истории значений сенсоров через web интерфейс.

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


Видео доклада




Презентация



понедельник, 1 июня 2015 г.

GUAVA Striped - гибкий инструмент для связывания блокировок с объектами в java

Сегодня познакомимся с полезной утилитой  Striped  в GUAVA.

Засекаем время в java

Предистория

Как-то раз я занимался оптимизацией сложной операции, выполняемой на сервере, которая включала в себя несколько запросов к базе данных с последующей группировкой и сортировкой по определенным параметрам полученных данных. К сожалению, средствами SQL запросов обойтись не получилось, так как в конечной выборке участвовали данные полученные по веб-сервисам из внешних систем. Поэтому приходилось выполнять группировку и сортировку данных с помощью кода приложения.
Когда я запустил первый раз этот код на реальных данных, очевидно, все работало неприемлемо медленно и требовало оптимизации. С чего начинать оптимизацию? Правило Парето никто не отменял и оно гласит, что нужно начинать оптимизацию тех участков кода, выполнение которых занимает львиную долю времени выполнения операции. Возникла задача выяснить, какой из этапов крупной операции выполняется дольше остальных, и насколько дольше. Для этого необходимо "стоять с секундомером" и засекать начало и конец каждого этапа и результат выводить в лог. На момент решения данной задачи я обошелся собственным решением, в котором я запоминал System.currentTimeMillis() в промежуточные значения в локальных переменных. Затем происходил подсчет разниц времени вывод в лог описаний. У данного подхода я обнаружил существенные недостатки:
  1. Код сильно загрязнился. Локальные переменные заполонили код, и его стало читать очень сложно.
  2. Сложно исправлять/добавлять новую операцию, так как логика о подсчету времени размазана.
Но есть и плюс, только он на мой взгляд один: это гибкость и возможность написать то, что тебе нужно.
Мне такое решение не давало покоя и я решил сделать небольшой обзор инструментов подсчета времени в java.

воскресенье, 16 ноября 2014 г.

Очень вкусный фрукт GUAVA. Мой доклад на первой встрече JUG.SEV

14.11.2014 прошла первая встреча JUG.SEV - сообщества java разработчиков Севастополя. Мне посчастливилось выступить на ней с докладом.

Слайды:


Видео: