18 мая 2019 года состоялась десятая встреча сообщества java разработчиков Севастополя JUG.SEV. На данной встрече я вступил с докладом на тему "JAva COde COverage. Оценка покрытия java кода тестами". В докладе я рассказал об особенностях измерения одной из метрик качества тестирования: покрытии кода тестами. На примере open source библиотеки JaCoCo разобрал, как работает технология оценки покрытия кода в java. Рассказал о внедрении процесса анализа покрытия кода тестами в процесс разработки продукта. Расставил акценты и резюмировал, какую пользу может принести оценка покрытия, и какие есть подводные камни ее использования.
Показаны сообщения с ярлыком java. Показать все сообщения
Показаны сообщения с ярлыком java. Показать все сообщения
пятница, 31 мая 2019 г.
пятница, 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 г.
Засекаем время в java
Предистория
Как-то раз я занимался оптимизацией сложной операции,
выполняемой на сервере, которая включала в себя несколько запросов
к базе данных с последующей группировкой и сортировкой по определенным
параметрам полученных данных. К сожалению, средствами SQL запросов
обойтись не получилось, так как в конечной выборке участвовали
данные полученные по веб-сервисам из внешних систем. Поэтому приходилось
выполнять группировку и сортировку данных с помощью кода приложения.
Когда я запустил первый раз этот код на реальных
данных, очевидно, все работало неприемлемо медленно и требовало
оптимизации. С чего начинать оптимизацию? Правило Парето никто
не отменял и оно гласит, что нужно начинать оптимизацию тех участков
кода, выполнение которых занимает львиную долю времени выполнения
операции. Возникла задача выяснить, какой из этапов крупной операции
выполняется дольше остальных, и насколько дольше. Для этого необходимо
"стоять с секундомером" и засекать начало и конец каждого этапа и
результат выводить в лог. На момент решения данной задачи я обошелся
собственным решением, в котором я запоминал System.currentTimeMillis()
в промежуточные значения в локальных переменных. Затем происходил
подсчет разниц времени вывод в лог описаний. У данного подхода я
обнаружил существенные недостатки:
- Код сильно загрязнился. Локальные переменные заполонили код, и его стало читать очень сложно.
- Сложно исправлять/добавлять новую операцию, так как логика о подсчету времени размазана.
Но есть и плюс, только он на мой взгляд один: это гибкость и возможность написать то, что тебе нужно.
Мне такое решение не давало покоя и я решил сделать небольшой обзор инструментов подсчета времени в java.
воскресенье, 16 ноября 2014 г.
Очень вкусный фрукт GUAVA. Мой доклад на первой встрече JUG.SEV
14.11.2014 прошла первая встреча JUG.SEV - сообщества java разработчиков Севастополя. Мне посчастливилось выступить на ней с докладом.
Слайды:
Видео:
Слайды:
Видео:
Подписаться на:
Сообщения (Atom)