In the three weeks that have passed since the
previous publication about Joker, we announced several new speakers and reports, which I will discuss in this post.

- Andrey Solntsev aka asolntsev will tell about the pros and cons of the Play Framework (we will talk about the branch 1.3);
- Vladimir Sitnikov aka vladimirsitnikov will show what to do if you got an error like OutOfMemory;
- Nicolas Frankel will add a story about mutation testing to the Spring Boot for DevOps story;
- Anton Keks aka antonkeks and Andrey Solntsev aka asolntsev will show us the Ping-pong Programming technique - a hybrid of programming and TDD;
- Finally, our debutant Tagir Valeev, aka lany, will show some of the things that HotSpot does with an example of comparing the performance of the Stream API and Collections API.
')
Details - as always under the cut.
Andrey Solntsev is known to many readers as one of the organizers of Tallinn Devclub, as an excellent speaker and as a developer of the
Selenide framework for automatic testing of UI on the web. In addition, Andrei is a developer of Codeborne, in which he and his colleagues over the past 4 years have made several large projects on the Play Framework (version 1.2-1.3, they decided not to switch to the Scala version), including the
well-known Internet bank . Andrei's talk about what pros and cons of a RoR-like Play he and his colleagues found.
Vladimir Sitnikov , the most experienced Performance Engineer from NetCracker, will tell you what to do if you stumble upon a non-trivial OutOfMemoryError. The report will consider examples of insidious OOM and approaches to the analysis of their causes. The knowledge gained will allow students to learn how to confidently parse memory dumps and avoid code patterns that lead to leaks.
Nicolas Frankel will tell us about mutation testing. Usually, when people talk about the quality of automatic testing in a project, then it comes to Code Coverage type metrics in the most diverse meanings of this term. However, if there is another approach based on modification of the bytecode. Relatively speaking, let's take and hack a couple of instructions in the bytecode of the class under test: let's replace plus by minus, more by less, 5 by 6, etc. If after this our tests begin to fail, it means, ok, the tests will probably really check something. But if not, then we have problems. At the end of the report, Nicholas will show a demo at
PIT .
By the way, a couple of years ago Gleb
gvsmirnov Smirnov
told about PIT on Joker. It will be very interesting to compare these two reports.
Tagir Valeev , known in
Habré as
lany , debuts on Joker with a story about performance testing. Yes, benchmarks, where do without them. Examples of using the new-fashioned Stream API will be taken as guinea pigs, which will chase against similar examples on the classic API (Collections). As we like, there will be a lot of intestines, JIT optimizations, inlineing and all that. The report will teach you to avoid some mistakes when writing benchmarks, use and interpret the diagnostic options of HotSpot JVM and better understand how your code is executed.
Anton Keks and Andrey Solntsev in their
Codeborne for many years
they have been
boiled off as much as they can by a bunch of the most modern modern development practices: Agile, XP, TDD, Pair Programming and many other
buzzwords . One fun trick is ping-pong, a method where two developers (Pair Programming) throw pieces of code. First, I write a new test (TDD) and ask you to modify our code so that this test starts to pass. Then we change roles, and you write for me a new falling test, and my task is to make it work. In general, really ping pong! Naturally, the guys will show Live Demo and talk about the pros and cons of this approach.
In general, not a single hardcore. Have fun too!
All other information about the conference is on its
website .
As always, I am waiting for your questions in the comments.