This lesson is in the early stages of development (Alpha version)

Components and Services

Overview

Teaching: 5 min
Exercises: 0 min
Questions
  • How does software design apply to components and services?

Objectives
  • At the end of this module you should have a basic understanding of how to design components and services.

Layer 3: Components and Services

We will not talk much about this layer as it highly depends on the type of software you are developing. However, the basic principles we’ve talked about before apply here as well.

As a general rule, it’s typically a good strategy to start with the KISS principle (keep it simple stupid) and then increase the complexity as it becomes necessary. For instance, if you build a web application to present data and you don’t know yet how many users you will have or how much data, start with one app on one server. If it turns out that there are too many requests for your application to handle, you can then start thinking about extracting parts of the code into their own services. However, if you already know that you’ll have enough requests to potentially overwhelm one application, then you should design your system in a way that will make it easy to scale it when needed.

Key Points

  • The basic principles discussed before apply for components and services as well.

  • Loosely couple your components and services.

  • Use standards when possible.