A Simple Approach to Modular Design

When I tried to learn object-oriented design, I read the classics. At least I tried to read the classics. It didn’t go that well. It wasn’t until I began practising test-driven development that I began to truly understand the principles of object-oriented design, including how to use them effectively to drive down the cost of adding features. After a while, I recognised that I had really learned the principles of modular design in general, and not just of object-oriented design in particular. Since I learned those principles this way, I also teach them this way.

This is not a class in test-driven development, although we will review the fundamentals of test-driven development. Instead, in this class we focus on how to use a small number of simple rules to generate truly flexible designs: that is, designs that actually flex as you add more features.

Course Overview

J. B. Rainsberger – A Simple Approach to Modular Design

When I tried to learn object-oriented design, I read the classics. At least I tried to read the classics. It didn’t go that well. It wasn’t until I began practising test-driven development that I began to truly understand the principles of object-oriented design, including how to use them effectively to drive down the cost of adding features. After a while, I recognised that I had really learned the principles of modular design in general, and not just of object-oriented design in particular. Since I learned those principles this way, I also teach them this way.

This is not a class in test-driven development, although we will review the fundamentals of test-driven development. Instead, in this class we focus on how to use a small number of simple rules to generate truly flexible designs: that is, designs that actually flex as you add more features.

AudienceIf you’d like to reduce the cost of adding features and fixing defects, and build designs that respond easily to change, then this course is for you. You have probably tried test-driven development before, but even if you haven’t, we’ll review the basics and help you get started.

What you’ll learn

  • How test-driven development can help you become an expert designer.
  • How flexible design, and even architectures, emerge from a set of simple design guidelines.
  • How to combine intuition with discipline to design with excellence.
  • How you can justify your design practices to your colleagues, including project managers, product owners, and especially executives.

What you’ll do

  • Ship several features of a system with the aid of an on-site customer.
  • Apply simple design guidelines with discipline and diligence. I will make sure of that.
  • Classify design approaches as “intuitive” and “mechanical” to see how these approaches support each other in helping you craft excellent designs.
  • Ask plenty of questions and get plenty of answers.

What you’ll need to bring with you

  • A computer, with a working software development environment.
  • Something to write with, and something to write on. I suggest index cards and a notebook.

What you should do before you attend

  • Install the development environment for the programming language you wish to use: Eclipse, IntelliJ IDEA, Visual Studio, vim, emacs, whatever you choose.
  • Install git.
  • Register for a github account, if you don’t have one already.
Latest News
  • BUNNY DEAL

    BUNNY DEAL

    Use Promo Code: BUNNYDEAL
    Get 10 % additional discount for Build Stuff Lithuania’17 All Tickets!
    Get 150 EUR discount for Build Stuff Mallorca Tickets!
    10 % OFF ANY COURSE!

    Deal ends on April 25th!

    Read More
    Mark Seemann: Growing Functional Software, Guided by Tests

    Mark Seemann: Growing Functional Software, Guided by Tests

    8 SEATS LEFT! Learn how to develop and test applications with F# – the .NET language with superior productivity. You’ll see comprehensive examples of how to develop a web-based application using outside-in test-driven development.

    Read More
  • Hevlin Henney: Architecture with Agility

    Hevlin Henney: Architecture with Agility

    6 SEATS LEFT! This course looks at the relationship between Agile processes and good architecture, taking in development process models, architectural styles, requirements techniques.

    Read More
    Greg Young: CQRS, Domain Events, Event Sourcing & How to Apply DDD

    Greg Young: CQRS, Domain Events, Event Sourcing & How to Apply DDD

    7 SEATS LEFT! Would you like to learn all about system building and architectures with Domain Driven Design? Join this course on CQRS, Domain Events, Event Sourcing and how to apply DDD with Greg Young!

    Read More
  • Build Stuff LITHUANIA

    Build Stuff LITHUANIA

    Build Stuff 2017 – 70+ speakers, 6 tracks, 98% international!

    Read More
    Build Stuff Mallorca

    Build Stuff Mallorca

    Coming with friend or colleague?
    We offer you “Friends Package” only for 1198 EUR!
    It includes all days 2 conference tickets, 2 nights at host hotel in twin room, lunch, coffee breaks, 2 get-together evening passes. It never been so good! www.buildstuff.es

    Read More
Why BuildStuffTraining?

The region’s go-to for training

When it comes to software development training, Build Stuff is Eastern Europe’s go-to. Find out why ours is the region’s top conference and learn what our private sessions can do for you.

The most subjects, the best teachers

The dev world is your oyster! Now you can learn it all, with classes on a huge variety of subjects taught by top professionals from all over the world!

Your training, set up from A-Z

Whatever your training needs, we’ll take care of the planning and the details, so you can focus on what’s important – the learning!