• Stars
    star
    2,867
  • Rank 15,826 (Top 0.4 %)
  • Language
  • Created about 9 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An organized learning path on Clean Code, Test-Driven Development, Legacy Code, Refactoring, Domain-Driven Design and Microservice Architecture

This study path is released under the CC BY-SA 4.0 license

Introduction

Welcome to this study path, or if you like, the learning path. Is a path about software development practices and design principles. It's open and freely accessible to everyone who wants to dig into topics like Clean Code, Test-Driven Development, Refactoring, Clean Architecture, Legacy Code, Domain-Driven Design, Microservices, and much more.

The materials are all organized in sections based on specific topics. There is no order to follow. You can skim through all the sections, look for anything specific, follow only a few sections, or just start reading from the very beginning to the end. It's your choice!

I am willing to keep this study path always updated, and I would invite you to contribute to this project by submitting any material you believe will improve it.

Why this study path? Few years ago I worked as a mentor for an intern in Agile Software Development, and I wanted to provide a clear path to follow. At that time, the study was covering Clean Code, Test-Driven Development, and other few topics. By the time, with the support of other people, we enhanced the study path with more and more content!

Enjoy!

Getting Started

Session 1: SOLID and Clean Code

Session 2: Test-Driven Development

Session 3: Refactoring

Session 4: Working with Legacy Code

Session 5: Testing, Design and Test-Driven Development

Session 6: Practice with a new Programming Language

Principles and Practices are not dependent on any particular programming language, rather they act as support or enabler to learn and get comfortable with programming languages and tools we never used before.

Now that you have learned something about the good principles and practices of software development, try to grab a new programming language which you never used before and try to repeat some of the Code Katas you already have done previously:

If you are looking for more Code Katas to learn and practice with your new programming language, try to give a look at Kata-Log.

Session 7: The Clean Architecture

Session 8: Domain-Driven Design

Session 9: Microservices

Session 10: Further topics

Recommended Readings

This section provides a list of recommended books readings that have not been mentioned directly in this study path, but of significant importance.

More Repositories

1

diaspora-replica

Automates and manages Diaspora* through Vagrant, Puppet and Capistrano.
Ruby
25
star
2

ex_chat

A simple chat server written in Elixir as an example of Websocket usage
Elixir
22
star
3

daily-activity-log

Ready-to-go project to start your daily activity log
XSLT
18
star
4

greeting-service-kata

A Code Kata intended to practice TDD Outside-In.
13
star
5

daily-activity-log-concept

An attempt to create a standard format to share our daily activity log around the Internet
13
star
6

joebew42.github.io

SCSS
8
star
7

elixir-playground

Learning Elixir with Clean Code, TDD and Refactoring
8
star
8

elixir_cqrs_es_example

Elixir
7
star
9

twitch

Propose a content for the next episode or send a feedback for the Twitch Channel.
6
star
10

the-gui-todo-kata

A GUI application Kata :)
5
star
11

dropwizard-sample-app

Sample App built with Dropwizard.io
Java
5
star
12

bewmacs

Personal emacs configuration
Shell
4
star
13

GildedRose

Maven version of the GildedRoseKata
Java
4
star
14

learning-javascript

My journey learning something about JavaScript
JavaScript
4
star
15

ex_twitch_pomobot

Elixir
4
star
16

cwatch

A lightweight program to monitor the events of the file system through the inotify kernel library and triggers user defined commands based on event type.
C
4
star
17

elixir_absinthe_playground

An example of GraphQL and Elixir
Elixir
3
star
18

scala-katas

some katas in scala
Scala
3
star
19

ex_twitch

An Elixir client implementation for the new Twitch API
Elixir
3
star
20

elixir_mostly_adeguate_guide

Examples from "Mostly Adeguate Guide" written in Elixir
Elixir
3
star
21

elixir_bank_account

Elixir
3
star
22

dependency_injection_in_elixir

Elixir
3
star
23

akka-http-simple

a simple http service in akka http, slick and flyway
Scala
2
star
24

elixir_rabbitmq_consumers

Elixir
2
star
25

maestro_v1

Python
2
star
26

phoenix_blog

A playground application written in Elixir/Phoenix
Elixir
1
star
27

fizzbuzzkata

the fizzbuzz kata, an attempt
Java
1
star
28

daily-activity-log-to-rss-workflow

Groovy
1
star
29

gilded-rose-kata-go

practice on go
Go
1
star
30

node-tdd-example

JavaScript
1
star
31

puppet-diaspora

puppet module for install diaspora*
HTML
1
star
32

daily-activity-log-to-rss

Reads Daily Activity Log URL as RSS feed
Python
1
star
33

simple_board

A simple board web application written in Elixir/Phoenix Framework
CSS
1
star
34

gossiping-bus-drivers-kata

The Gossiping Bus Drivers Kata
Java
1
star
35

dotfiles

... and other stuffs
Vim Script
1
star
36

poker_hands_elixir

An attempt to solve the Poker Hands Kata in Elixir
Elixir
1
star