java
-
@Before @After в тестах
-
Camunda start
Ссылки:
https://www.holunda.io/camunda-bpm-data/snapshot/
Camunda BPM Data с примерами от энтузиастов. Добавлена типизация переменных.
Пример на Java
Пример на Kotlin
Для запуска выполнить:cd ~/prog/java/spring-boot/camunda_springboot_db ./run.sh
В браузере открыть: http://localhost:8080
Откроется страница:
имя/пароль: demo/demo
После ввода откроется страница:
http://localhost:8080/camunda/app/welcome/default/#!/welcome
Cocpit (админка для Camunda):
-
Immutable Java object
Что такое неизменяемый объект? Когда вы создаете новое значение для такого объекта, на самом деле создается новый объект, и старый объект остается неизменяемым. Это будет более эффективным по времени и памяти, чем изменение изначального объекта. Это обеспечивает безопасность многопоточного программирования, поскольку неизменяемые объекты могут быть разделены между несколькими потоками без риска изменений и ошибок.
-
Karaf в Kubernetes
Модульный karaf в микросервисе. Мозг в трубочку. А почему бы не кубер в bundle карафа? А может сразу windows в bundle? (были опыты запуска урезанного windows в bundle). Речь идет о модульной java. Модульная java? А это она! Karaf это реализация OSGi. OSGi - шина с плагинами (java-модулями, в терминах OSGi называется bundle), ктр. взаимодействуют между собой. Один bundle отправляет сообщение в шину через интерфейс, предоставленный шиной, а другой/другие bundle, ктр. заявляют, что могут реализовать интерфейс, обрабатывают сообщение. При этом источник даже не знает кому и сколько читателей. И еще одна фишка Karaf (может быть основная) замена функциональности без остановки всего сервиса.
-
Mockito
1. Mockito.mock() (ЭТО МЕТОД)
Метод Mockito.mock() позволяет нам создать фиктивный объект класса или интерфейса. -
Netty
Netty - удобные клиент и сервер для взаимодействия программ по сети. Можно чем угодно обмениваться (не только json).
Конспект
Пример -
Vaadin
Tutorial "Components and Layouts": https://vaadin.com/docs/v14/flow/tutorial/components-and-layouts
Для разработки Vaadin приложений, кроме java, нужен настроенный node:$ node -v v20.0.0
Описание Vaadin 8 https://vaadin.com/framework
Генерация Spring Boot в Spring Initializr https://start.spring.io/ -
Автоматизация хаоса - Camunda
Давно прочитал в журнале Компьютерра статью "Автоматизация хаоса". 1999 год!!! В google полно документов на эту тему. Пару слов хочется черкнуть от себя. В большинстве проектов, на которых приходилось работать, так или иначе возникает эта тема.
Хотя и не очень явно.
-
Виды тестирования
Виды тестирования:
1. Unit tests2. Интеграционное
- REST
- behave-restfull - интересный способ описания тестов с помощью специального языка Gerkin (Behave тестирование с помощью RestAssured проекта shop_kotlin)
- REST tests (RestAssured)
- База данных (DataJpaTest)
- Given-When-Then tests
- Эффективный подход к тестированию WEB-КОНТРОЛЛЕРОВ в Spring Boot приложениях(habr)
3. Нагрузочное
Yandex tank test
Еще тесты:
Интеграционное тестирование на Kotlin проекта ktor_shop (https://ktor.io) - REST
-
Два слова о Camel
Spring boot велик и могуч, но есть есть и другие инструменты.

Camel позволяет абстрагироваться от кода и сосредоточиться на конфигурации, взаимодействии компонент. Camel это интеграционный клей, который соединяет компоненты системы, предоставляя коннекторы. Примеры коннекторов: rest, ftp, Spring bean и еще много всяких: https://camel.apache.org/components/next/index.html#_components.
-
Динамическое создание Spring Bean в RunTime
Мои решения создания бинов с параметрами из базы данных и создания массива бинов и передачей этого массива как зависимость в другой бин.
Различные способы задания конфигурации Spring Beans (Java)
Различные способы задания конфигурации Spring Beans (Kotlin)
В задаче опроса филиалов в проекте МТС -
Интеграционное тестирование с JUnit
Предупреждение: я знаю, что JUnit для UNIT тестов и цена им небольшая. Речь о применении JUnit в ИНТЕГРАЦИОННЫХ тестах. И с другой стороны, на тех проектах, где мне приходилось работать, интеграционное тестирование проводилось вручную. Можно это дело автоматизировать.
-
Конвертирование речи в текст
Результаты поиска инструментов перевода речи в текст
Оглавление:
-
Многомодульный проект
Описан способ организации разработки, когда один из модулей (library) используется в нескольких проектах (application1, application2,... applicationN). Чаще, и возможно проще, переиспольуемый модуль разрабатывается отдельно и затем подключается как зависимость через репозиторий maven. При изменении library его maven версия получает новый идентификатор и это изменение должно быть учтено в целевых проектах. Заготовка проекта: https://github.com/cherepakhin/multi-module.
В проекте два модуля Application и Library. -
О CompletableFeature
Интересно было узнать о возможностях CompletableFeature.
Проект и описание находится тут https://github.com/cherepakhin/completablefeature_many_benchmark -
Области памяти - Stack, Heap
Stack – Каждый поток имеет свой стек, который создается в тоже время, когда создается поток. Стек (локальная или рабочая память потока) содержит фреймы, которые создаются при каждом вызове метода и хранят локальные переменные и промежуточные результаты, возвращают значения для методов и выбрасывают исключения, если это необходимо. Задается параметром Xss (default 1Mb, примеры: -Xss1m, -Xss1024k).
-
Определение Spring beans
Проект для демонстрации на Kotlin https://github.com/cherepakhin/spring_config_k
Аналогичный проект на Java https://github.com/cherepakhin/spring_config -
Покрытие тестами 100%
Задача: довести покрытие тестами до 100%. Зачем? А почему бы и нет?

-
Пример на Kotlin для конвертирования JSON массива в список объектов.
Пример на Kotlin для конвертирования JSON массива в список объектов. Дан сервис:
-
Пример работы с базой данных и списками в java
Страница 1 из 2