Menu Menu
Workshop: Elements of Object-Oriented Design

Workshop: Elements of Object-Oriented Design

Last Saturday we had a very useful workshop with Zoran Horvat. The topic was: Elements of Object-Oriented Design.

Zoran Horvat is an architect and software designer, independent consultant and software architecture coach. Zoran has more than 15 years of experience in developing software. Since 2014 he has also been the author at, where he prepares a series of courses on design patterns. In recent years he has been devoted to studying different approaches to software architecture, primarily those that help maintain large business applications.

Zoran Horvat, speaker

Workshop objective
The objective of the workshop was to grasp which elements of design are significant, so that such elements can be properly addressed and implemented in a manner which is correct and has long-term sustainability

The workshop covered the following fields:
- Emergent Objects - Introductory lesson that shows how objects are created as a result of the need to define a certain concept more closely; this process is contrary to classic technique which analyzes requests and then models classes that implement the requests. Participants will gain an insight into how a specific design appears as a result of solving immediate problems and inabilities of the current code. Thus obtained design corresponds user demands in a better way while being more flexible on those axes that are essential to the user.

- Branching and Looping - After the introduction, the audience will be ready to move to specific refactoring which aims to simplify code and clearly highlight certain concepts. This lesson shows that looping and branching are nearly always unnecessary, since they complicate the implementation, and are almost certainly harmful.

- Mapreduce Principle - In this lesson, we will raise our prior knowledge to a higher level and introduce LINQ. We will refactor the previous code so that it includes a map-reduce pattern. Imperative structures are replaced with functional structures that show greater flexibility and readability.

- Strategies - After a longer period of refactoring code into a form that is more based on functional principles, we return to the imperative code and introduce strategies as a special source of flexibility. After this lesson, the code will be transformed completely and will almost totally differ from the code which we used at the beginning of the workshop. The audience will become aware of the principles of coding and designing which have been applied so that the code can become clearer, simpler and more accurate.

This was our first in a series of guest workshops so, if you are familiar with any other interesting speaker or if you have participated in a similar workshop, please let us know at, we would like to hear more about your experience.

Latest news
Vega IT - the First Ever Company from Serbia to Be Certified as the Freedom-Centered Culture ™
Running for Children’s Smile: The 5th IT Relay Race
21 Day Challenge 2019: The Results
Design Rush: Vega IT among Top 10 Sitecore Partners in 2019
The Most Valuable Professionals Program in 2018