📜 ⬆️ ⬇️

JPoint 2016 Student Day - the first reports



Exactly one month later, on Sunday, April 24th, a Java conference for students of JPoint Student Day will be held in Moscow. Two weeks ago I wrote about this conference - what it is, what to expect, and whom we expect to see at it. In total, there will be about two dozen reports at the conference, half of them have already been announced . Let's look at them together.

Here they are:

')
Not bad for a student event?

Speakers - authoritative as to the selection: Nikita Lipsky - developer of virtual machines, Roman Elizarov - world-class multithreading expert and Java Champion, Anton Arkhipov - Java Champion, guru of classical cooling and bytecode modification (JRebel), Victor Gamow - Senior Solutions Architect at Hazelcast, most popular in-memory data grid etc. About each of our speakers can talk for a long time.

Let me remind you that this conference is for students and teachers. If you are among the first or second - welcome under the cat, where I will tell you more about these reports.






lipsky Nikita Lipsky, Excelsior - JVM: a short course in general anatomy

Speaking of Java, we mean at least two things: JVM (Java virtual machine) and Java bytecode that runs on this machine. The internal structure of a JVM is not easy, but it is very important to understand what parts it consists of, what part it is responsible for and how it all works together, at least in very general terms. This knowledge will help you in understanding how your program works and how you can improve its work.

In this report, we will not crawl into the intestines of a particular JVM implementation, however, we will show where the JVM has intestines, as well as where its liver, heart, kidneys, brain and other organs are located and why. Report overview, for primary and intermediate levels.





elizarov Roman Elizarov, Devexperts - Multi-threaded Programming - Theory and Practice

Multi-core processors are used in all servers, workstations and mobile devices. Writing multi-threaded programs is necessary to ensure vertical scalability, but, unlike single-threaded programs, they are much more difficult to debug and test to ensure correctness. It is important to understand exactly which guarantees are given by one or another language and library constructions when they are multi-threaded and which pitfalls can violate the correctness of the code. The report will contain a brief introduction to the theory of multithreaded programming.

We consider the theoretical models that are used to describe the behavior of multi-threaded programs. The concepts of sequential consistency and linearizability (with examples) will be considered and it will be explained why this all-programmer needs. It will show how these concepts are applied in the Java memory model with examples of code leading to unexpected results from the point of view of a person who is not familiar with it.





gamov Victor Gamov, Hazelcast - Distribute and Conquer: An Introduction to Distributed Systems

There is a lot of information, and it is becoming more and more. Willy-nilly, we have to deal with the notorious "distributed computing." What to do? Replicate data? How to distribute calculations? Each approach has its advantages and disadvantages, as well as the obvious ones, and those that do not always lie on the surface.

Hazelcast (open source in-memory data grid) provides many tools for organizing distributed computing. After a brief introduction and review of terms based on code examples, Victor will show how to use Hazelcast for distributed data processing.





arhipov Anton Arkhipov, ZeroTurnaround - Baytkod for inquisitive

Java programs consist of classes, and classes consist of bytecode (bytecode). Any normal Java programmer, when he first sees baytkod, will be puzzled: “What is this ?! How do you even read this? What can be done about it? ”

If you are wondering what the Java compiler does with the Java source code, come to the lecture and we will look at the basics of working with bytecode, how to read it, and what tools exist for working with it.





chuyko Dmitry Chuiko, Oracle - Black Tag, StampedLock and his friends. How not to break the pirate code

The runtime and the standard Java library provide many opportunities for streaming code security in the open sea. Parallel execution has known pitfalls and ways to circumvent them. Before sailing, it is helpful to know why different implementations of Lock are needed, what they have in common, how to shorten critical sections, and how to politely return a label back. And how it will help different teams to simultaneously manage one ship.

Keywords: Concurrency, StampedLock, AbstractQueuedSynchronizer, atomic operations, synchronization.





dudarev Mikhail Dudarev, Licel - Java Security from A to Z

All the things that I would like to hear about Java Security, if I were told about this:






polishchuk Victor Polishchuk, Infopulse - Web application of which I dreamed

Here is what Victor writes:

I have been working on web applications since my Java career began. I suffered with all these Struts, JSF, Spring MVC, GWT, etc. But times have changed, more ready-made client tools, new specializations and potential threats have appeared. I want to talk about the price we pay when developing a web application in Java. And also offer solutions that can save the project or another. After all, understanding the problem is half the solution.

I know as it is impossible. I tried to create a “perfect creation”. And after several years of torment, I think I found the “ideal”. I hasten to share.





bugaenko Yegor Bugaenko, Teamed.io - Object Oriented Lies

Author's announcement:

OOP in its Java version, to my great regret, was created by those who understood the idea poorly. If you program as recommended, for example, by the Spring Framework, you will forever be among those who work for money. Really love OOP and Java and enjoy every line of code will be possible only if you do everything differently. In my book Elegant Objects, I summarized what exactly needs to be done differently.

In the report I will review the main points. Public static methods are a great evil in themselves and should be completely excluded. In no case should getters / setters be present in your classes. Singleton, MVC and ORM are not design patterns at all, but your worst enemies. NULL, as a keyword, must be forgotten. All this will be discussed on examples of Java code, with a constant return to the theory of OOP.





frankel Nicolas Fränkel, hybris - Refactoring your legacy code for better maintainability

Although the code of any application is usually written once, it is then read by developers dozens or even hundreds of times throughout the life of the application. Therefore, how simple it will be to support it later depends on the way the code is written. However, for various reasons, code that comes from the hands of developers is not always distinguished by good maintainability. Therefore, it is necessary to be able to rewrite this code when there is time.

In this report, Nicolas will show methods and tools to help you refactor code in a safe way.






Conference site with all the information: http://students.javapoint.ru/

A professional conference for students with experts of this level is a unique phenomenon not only for Russia. We studied, we know. I can responsibly state that in the world such events can be counted on the fingers of one hand.

And this is not only the merit of our team. Let's be frank, you and I are just very lucky that many world-class Java experts speak Russian.

Source: https://habr.com/ru/post/280049/


All Articles