Meetup JUG.CY March 31 with Ivan Ponomarev, Synthesized and Ilya Chernov, Wrike
Details
There will be two technical topics on meetup and of course, you can ask questions of our guests and have a lot of networking.
The meetup will be in the Cyprus Wrike Office in Nicosia, so please read and accept the visitor rules.
Participation is completely free, but places are limited, please check in if you plan to attend the meeting, we can't let you into the building if you are not on the list.
Ivan Ponomarev, Synthesized - Don't Invent Data for Integration Tests - Synthesize It
Somewhere around 2017, TestContainers changed the way we write integration tests, making it possible to run them everywhere Docker runs. Now we are making another step forward by getting rid of the necessity to maintain test data factories and initialization scripts for RDBMS-related tests, substituting them with synthesized data. Less code, tests easier to write leads us to more tests written and more quality.
Additional info: In this session I demonstrate how tests codebase can be reduced at least twofold by using synthetic data instead of initialization scripts or fixture factories, making it significantly easier to write and maintain such tests. The talk is targeted for backend Java/Kotlin engineers who utilize relational databases.
Ilya Chernov, Wrike - Caching Spring context in tests: how to speed up testing process
In Wrike we have a few big spring contexts that are used in tests and managed by custom code. These big contexts are great in CI/CD because they allow you to save time by caching them. But in local development it's nothing but frustration because of how much time it takes to initialize a context to run a bunch of tests. Can we somehow eliminate this context initialization process and save our time and focus?
If you think about it, we can also reuse the Spring context in local development. The context itself does not change much during development, so you can cache the spring context in some way after test execution, do not shut down the JVM after test execution, and run the next tests in the same JVM with cached context. Okay, now you can rerun tests ignoring the Spring initialization step, but how do we update our code? With the help of the hotswap feature!
In this talk, Ilya will introduce the IntelliJ IDEA plugin that allows you to do all this with DCEVM and save a ton of time. Also will demonstrate how you can write custom plugins for HotSwapAgent and why you may want to do so.
About the speakers:
Ivan Ponomarev (@inponomarev), Staff software engineer at Synthesized, lecturer at Mainor University (Tallinn).
Over 20 years in IT, he writes code and manages projects from refining ERP systems to building real-time Internet data monitoring systems. Periodically shares his experience at conferences and meetups.
Ilia Chernov (@il_chernov), Backend developer at Wrike.
Works on task and project automation. In commercial development for almost 5 years. Interested in different technical sides of IT (frontend, DevOps, ML). Currently experimenting with and learning Reinforcement Learning.
