Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Mastering Iterative Object-oriented Development in C#
Rating: 4.5 out of 5(361 ratings)
2,344 students

Mastering Iterative Object-oriented Development in C#

with practices of Emergent Design
Created byZoran Horvat
Last updated 1/2019
English

What you'll learn

  • How to create effective object models even in the most complex projects
  • How to write code iteratively, in very small chunks
  • How to produce clean and extensible code

Course content

8 sections60 lectures4h 38m total length
  • Introducing Iterative Development4:38

    Explore how iterative development and emergent object-oriented design guide building a flexible, maintainable object model through class design, method design, data structures, and an arithmetic-expression task.

  • Introducing the Development Environment1:52

    Apply iterative development techniques to build a .NET Core console app in Visual Studio 2017 that lets users enter numbers, form a valid arithmetic expression, and explore emergent object-oriented design.

  • The First Glimpse of Iterative Development4:42

    Explore how iterative development adds features one by one without breaking existing functionality, from single operations to entire projects, using a read problem statement flow as an example.

  • Adding the First Feature4:31

    Prompt the user for input numbers, read the console line, split it into whitespace-separated segments, filter well-formed integers, convert to a list of ints, and construct a ProblemStatement.

  • Preparing for the Complex Algorithm Implementation4:16

    Master iterative object-oriented development in c# by incrementally building a complex algorithm, using an empty implementation, a solve method, and an expression type to read input and evaluate arithmetic expressions.

  • Handling Simple Cases First4:47

    Apply iterative object-oriented development in c# to implement Solve, building arithmetic expressions from input numbers starting with simplest cases. Extend Expression with constructor and ToString while preserving behavior via FirstOrDefault.

  • Designing the Algorithm4:22

    Leverage iterative development to design an addition-based expression engine, using a combining queue and a set of known expressions while ensuring disjoint input numbers.

  • Implementing the Algorithm Iteratively7:29

    Develop the algorithm iteratively by building a combining queue for expressions, enabling combinable expressions via a binary add operation, constructors, and tracking used numbers.

  • Summary1:50

    Define the sample app requirements and apply iterative development to implement them with tiny iterations that require only one line, or two at most, of code per requirement.

Requirements

  • Intermediate understanding of object-oriented design
  • Working knowledge of C# and .NET will help, but it is not mandatory

Description

Iterative development is one of those agile techniques that so often turn into their opposite: blinded by the very iterations, developers cannot see the upfront design they are implicitly following. Isn’t there anything we can do to improve iterative development?

In this course, you will see how a complex object-oriented design can grow iteratively, in very small steps. In every step, we will be adding one complete feature to the program, while at the same time paying due attention to principles of good object-oriented design. The end result will be a complex application which is still flexible and extensible - exactly the way we always wanted our object-oriented code to be.

In four and a half hours of this course, you will learn how to control design of classes, design of complex algorithms, and how to recognize and implement data structures.

After completing this course, you will know how to develop a large and complex domain model, which you will be able to maintain and extend further. And, not to forget, the model you develop in this way will be correct and free of bugs.

Who this course is for:

  • Intermediate or senior programmers who would like to improve their skills in object-oriented design
  • Programmers interested in iterative development style