[et_pb_section fb_built=”1″ disabled_on=”off|off|off” admin_label=”Header” _builder_version=”3.10.1″ parallax=”on” max_width_last_edited=”on|desktop” custom_padding=”0||0|0px|false|false” top_divider_height=”0px”][et_pb_row custom_padding=”27px|0px|0|0px|false|false” _builder_version=”3.10.1″][et_pb_column type=”1_2″ _builder_version=”3.0.47″][et_pb_text _builder_version=”3.11.1″ text_font=”||||||||” text_font_size=”17px” text_line_height=”1.9em” header_font=”|300|||||||” header_font_size=”60px” header_font_size_tablet=”40px” header_font_size_phone=”32px” header_font_size_last_edited=”on|phone” header_line_height=”1.4em” header_2_font=”Roboto|300|||||||” header_2_font_size=”50px” header_2_line_height=”1.2em” header_4_font=”|600|||||||” header_4_text_color=”#666666″ header_4_line_height=”2em” max_width=”136%” custom_margin=”|||” locked=”off”]

Hands-on Workshop:

Design Patterns with Spring and Java8

[/et_pb_text][/et_pb_column][et_pb_column type=”1_2″ _builder_version=”3.0.47″][et_pb_image src=”https://lh3.googleusercontent.com/BTobJfP6mT6Cq6U9Iubp0drOQDphHNmeqjDy3Q2pIfJgsMs9F7zEieVmRSzDmvx8Yfo-qO20-ciJ6eqFwWiQvJOhiXzZn5wwMzDxQqi60HxBBY6mjog2pU67fpzWvVxaaNnBeuPmAW8XJ-yKzeh53pUli2_m672ueoBqzg2n2SAaRcByHd1_rKGq7AuEguatzC00_LDslrQM_23ykShO50j3kuMl2zv4V1gGZ49NhCONAi06Nd3Jcbqu3tbCb7HQo7zUGFS4H1RI9WZaype-TeyKSKMUuHiaE_mONSu39Rsq1UeFhviB8A5fV_x0CtEvx2Z0tL7A1sfaT887htsvpe8IOklfehUGwz__mQ9koTmv_ofAN9N2wOxI858UNbBipUjRsFL5bQYh3HY9F1cvLeX-b17ZkRWD6lINwLl_nxwbhY8XnKxcj42di3H5PuvjTxL8g-ODH3P9Y90BBO-Ia6H59xLEfCwtKc-7ZNPwJgMWWL6s_8TtiBriMGGpgX5l1dnxvfuJH7TgHWxr9nk4Y0sKUcZqOWKV2A00EkgrUfNhkF–jTN1wbiq-edyqf1TLon0MZhk0sKMYsAY5SKWBKT5PQe_9jjK_kEO_FZHcAJPpXf5Rcm5Neb8o6mVyOhZx5sExYYsF2tI3Dd9czQkwwjKISEFhyHVgMh3ECBoO5KMhFUpMRWRO_PgGmLcYz52-1AVrY_py6q3aDixuA=w1000-no-tmp.jpg” _builder_version=”3.17.6″ border_radii=”on|0%|0%|0%|0%” max_width=”80%”][/et_pb_image][/et_pb_column][/et_pb_row][et_pb_row custom_padding=”27px|0px|46px|0px|false|false” _builder_version=”3.10.1″][et_pb_column type=”4_4″ _builder_version=”3.0.47″][et_pb_text _builder_version=”3.11.1″ text_font=”|300|||||||” header_font=”||||||||” header_4_font=”||||||||”]

The purpose of this course is to help developers design well-crafted code.

Meaning expressive, concise design that is also flexible and testable. The course is a mix of theory, brainstorms and hands-on exercises designed to teach developers practical techniques they can immediately apply to real-world projects.

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row custom_padding=”0|0px|0|0px|false|false” _builder_version=”3.10.1″][et_pb_column type=”1_3″ _builder_version=”3.0.47″][et_pb_text _builder_version=”3.11.1″ text_font=”Sansation|300|||||||” link_font=”||||||||” ul_font=”||||||||” ol_font=”||||||||” quote_font=”||||||||” header_font=”||||||||”]Why this workshop?

Design Patterns are a powerful weapon. So powerful that in the wrong hands it can get you to horrible overengineered code. Mastering the underlying principles and knowing why, how, the cost and nuances of applying a pattern can have a huge impact on code quality on the long run.

Since the classic GoF book, design patterns have evolved dramatically: many have died, a few amazing ones were born while others became incredibly simple to implement with Spring and Java 8. However, the underlying principles never changed. We will take a Software Craftsmanship approach to those principles, always aiming for clean, maintainable and testable design.

Designing simple code is hard! Redesigning existing code is even harder but often imperative when facing legacy, or when you aim for a minimalistic emerging architecture. You should attend to this workshop if you want to:

By solving a series of exercises with Java 8 and Spring Framework, you will learn how to:

Hundreds of developers have followed this training until now. For the last 4 years, split in 2 sessions, a simplified version of this training is also part of the “OOP” (aka “Java”) 2nd year Faculty Course in the CS Department of Politehnica Bucharest. In short, this is the ‘most wanted’ (and most refined) topic from Victor’s training curricula.
[/et_pb_text][/et_pb_column][et_pb_column type=”1_3″ _builder_version=”3.0.47″][et_pb_text _builder_version=”3.11.1″ text_font=”|300|||||||” custom_margin=”|||65px”]

What will you learn?

  1. Design Principles and Concepts:
    • SRP
    • DRY
    • KISS
    • YAGNI
    • SOLID
    • Beck’s Rules of Simple Design
  2. Singleton – a stateful, burdened life, vs other lifestyles
  3.  Adapter – the anti-corruption layer of DIP
  4. Decorator and Proxy – the “magic” of Spring
  5. Facade and an approach to evolutionary architecture
  6. Observer and event-driven Spring components
  7.  Iterator and Stream – as a concept
  8. Strategy and Chain of Responsability – an application of SRP
  9. Command and asynchronism
  10.  Template Method and its death by….
  11. Passing-a-block – the best of functional programming
  12. Anti-Patterns and some workarounds
  13. Final test + awards

The course is a mix of slides, brainstorms and a lot of exercises distilled from real problems, implemented with Spring and Java 8.

[/et_pb_text][/et_pb_column][et_pb_column type=”1_3″ _builder_version=”3.0.47″][et_pb_text _builder_version=”3.11.1″ text_font=”Sansation|300|||||||” link_font=”||||||||” ul_font=”||||||||” ol_font=”||||||||” quote_font=”||||||||” header_font=”||||||||”]Who is the trainer?

Victor is one of the most appreciated technical trainers in Bucharest, well-known for the passion he puts in every minute of his classes. His training experience is impressive: over the past 5 years he trained 1K+ developers over 150 days of in-house sessions held at 18 companies. Today, he is regularly called by companies of all sizes to help bringing Software Craftsmanship ideology and eXtreme Programming practices to their technical culture.

After 14 years of professional career, Victor is currently Lead Architect at IBM, where he practices and preaches eXtreme Programming, crafting code and coaching others each day. He is Associate Professor at Politehnica University (UPB) and a key community member, after organizing the largest 3 Bucharest JUG meetups in history. Victor has become internationally renowned by his passion for Clean Code and Java 8 and is now frequently invited to speak at many conferences around the world. His personally commitment is helping developers grow their passion for code.

On victorrentea.ro you can find out more about him, see his best talks, slides, articles, and other goodies.

 

Who is it for?

Enthusiast developers that have:

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section][et_pb_section fb_built=”1″ admin_label=”Speakers” _builder_version=”3.10.1″ background_color_gradient_direction=”121deg” background_size=”initial” background_position=”top_left” custom_padding=”0|0px|54px|0px|false|false”][et_pb_row custom_padding=”0|0px|27px|0px|false|false” _builder_version=”3.8″][et_pb_column type=”4_4″ _builder_version=”3.0.47″][et_pb_text _builder_version=”3.11.1″ text_font=”|300|||||||”]

WorkTechnical requirements:

A personal laptop with your favorite IDE, JDK 8+, working Maven (connected to central) and Git. You will be asked to clone a repository several days before the workshop.

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row custom_padding=”0|0px|27px|0px|false|false” _builder_version=”3.8″][et_pb_column type=”4_4″ _builder_version=”3.0.47″][et_pb_text _builder_version=”3.16.1″ text_font=”|300|||||||”][/et_pb_text][et_pb_button button_url=”https://romania.voxxeddays.com/product/standard-price-combo-conference-design-patterns-workshop-pass/” url_new_window=”on” button_text=”Buy combo ticket ” button_alignment=”center” _builder_version=”3.19.5″ custom_button=”on” button_text_size=”20px” button_text_color=”#ffffff” button_bg_color=”#18b9f0″ button_border_width=”8px” button_border_color=”rgba(0,0,0,0)” button_border_radius=”0px” button_letter_spacing=”0px” button_font=”|700||on|||||” button_use_icon=”off” box_shadow_style=”preset1″ custom_margin=”40px|||” button_text_color_hover=”#ffffff” button_border_radius_hover=”100px” button_letter_spacing_hover=”3px” locked=”off” button_text_size__hover_enabled=”off” button_one_text_size__hover_enabled=”off” button_two_text_size__hover_enabled=”off” button_text_color__hover_enabled=”on” button_text_color__hover=”#ffffff” button_one_text_color__hover_enabled=”off” button_two_text_color__hover_enabled=”off” button_border_width__hover_enabled=”off” button_one_border_width__hover_enabled=”off” button_two_border_width__hover_enabled=”off” button_border_color__hover_enabled=”off” button_one_border_color__hover_enabled=”off” button_two_border_color__hover_enabled=”off” button_border_radius__hover_enabled=”on” button_border_radius__hover=”0px” button_one_border_radius__hover_enabled=”off” button_two_border_radius__hover_enabled=”off” button_letter_spacing__hover_enabled=”on” button_letter_spacing__hover=”0px” button_one_letter_spacing__hover_enabled=”off” button_two_letter_spacing__hover_enabled=”off” button_bg_color__hover_enabled=”off” button_one_bg_color__hover_enabled=”off” button_two_bg_color__hover_enabled=”off”][/et_pb_button][/et_pb_column][/et_pb_row][et_pb_row custom_padding=”27px|0px|0|0px|false|false” _builder_version=”3.8″][et_pb_column type=”4_4″ _builder_version=”3.0.47″][et_pb_text _builder_version=”3.9″ text_font=”||||||||” text_font_size=”20px” text_line_height=”1.9em” header_font=”||||||||” header_2_font=”Roboto|300|||||||” header_2_font_size=”50px” header_2_font_size_tablet=”40px” header_2_font_size_phone=”32px” header_2_font_size_last_edited=”on|phone” header_2_line_height=”1.2em” max_width=”700px” max_width_last_edited=”on|desktop” locked=”off”]

Speaker

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”3.8″][et_pb_column type=”4_4″ _builder_version=”3.0.47″][et_pb_team_member name=”VICTOR RENTEA” position=”Independent Technical Trainer + Architect @ IBM” image_url=”https://lh3.googleusercontent.com/D6VBAwRU3trne4STNsEGiu1NjXRtupdCl1F6jSQx6QGLUh_B2immbYMjLziYBYi-N6syT670p_LAxhr-3Legvq6dHUIiuvVCkloobRupl1qXZhWDF27ISZXfHyi_PGD6es__eBz7ZJDtytQ0VeD5M0Y1TIyt7tneZ_dGeYDm15xRYajGpb__xfqynV6PAWm1LjGt14SYKMTEPLnp7UoL5lQ2dgEpxS2l9bIDmbLKuKAosI3cmIKMtMJfwQH578kEFCFz6ndNQtYSreIsBrVbt1W5w4wpeyKZKLYy6M0xycTQIJ3-AWqi2BUp1625yDGXXxKz_6HBlGjWNevPw84epDSu78LtDN8ohgTDvNokysndkHUDvW_LegiJ3GDPH5aS1oZh6YMzx2c3kLddLAXiJ4p_IhHT1YltcGr09gdGnVrHaE-G0-FBeZ_mOqiNCnkxh5hZKdsWtVfoFY0YpoNzEIfYbHL6H4NqGK12qw8YeKiDi6tG2CIsUxVoLrO4FEXBjx4xo7S_9lazPNDaRNymAQWCt0E8yQ3mFtW4xNlSgvpX3xKh09IH2wxz5rbh3TwyrYllnYvHKLOUqy2G18uTeIoSH4UwKIpHbOli8So=w1000-no-tmp.jpg” _builder_version=”3.17.6″ header_level=”h5″ header_font=”Roboto||||||||” header_font_size=”24px” header_line_height=”1.2em” body_font=”||||||||” body_font_size=”16px” body_line_height=”1.9em” border_radii_image=”on|100%|100%|100%|100%” text_orientation=”left” animation_style=”zoom” animation_direction=”bottom” animation_delay=”150ms” animation_intensity_zoom=”10%” locked=”off”][/et_pb_team_member][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”3.11.1″][et_pb_column type=”4_4″ _builder_version=”3.11.1″][et_pb_button button_url=”https://romania.voxxeddays.com/bucharest/2019-03-20/#speakers” url_new_window=”on” button_text=”SEE ALL OUR SPEAKERS” button_alignment=”center” _builder_version=”3.17.6″ custom_button=”on” button_font=”||||||||” button_use_icon=”off” box_shadow_style=”preset1″ button_text_color_hover=”#ffffff” button_bg_color_hover=”#18b9f0″ button_text_size__hover_enabled=”off” button_one_text_size__hover_enabled=”off” button_two_text_size__hover_enabled=”off” button_text_color__hover_enabled=”on” button_text_color__hover=”#ffffff” button_one_text_color__hover_enabled=”off” button_two_text_color__hover_enabled=”off” button_border_width__hover_enabled=”off” button_one_border_width__hover_enabled=”off” button_two_border_width__hover_enabled=”off” button_border_color__hover_enabled=”off” button_one_border_color__hover_enabled=”off” button_two_border_color__hover_enabled=”off” button_border_radius__hover_enabled=”off” button_one_border_radius__hover_enabled=”off” button_two_border_radius__hover_enabled=”off” button_letter_spacing__hover_enabled=”off” button_one_letter_spacing__hover_enabled=”off” button_two_letter_spacing__hover_enabled=”off” button_bg_color__hover_enabled=”on” button_bg_color__hover=”#18b9f0″ button_one_bg_color__hover_enabled=”off” button_two_bg_color__hover_enabled=”off”][/et_pb_button][/et_pb_column][/et_pb_row][/et_pb_section]