/playground

Playground for Software Engineering Concepts e.g. DSA, TDD, SOLID, Design Patterns, and others

Primary LanguageJavaMIT LicenseMIT

Playground for Software Engineering Concepts

A curated collection of hands-on examples and implementations to learn and apply various Software Engineering concepts, powered by Java.

Licence Java 17

Contents

Data Structures

The data structures are the way to organize and store data in a computer so that it can be used efficiently. The data structures are used to make working with data easier. Read Data Structures README to see the complexity of each data structure.

Algorithms

SOLID Principles

Test-Driven Development

Test-Driven Development (TDD) is a software development process of writing tests before writing the actual code.

Kata is a simple coding exercise that help you practice TDD.

Katas

Design Patterns

Solutions to recurring problems and are formalized best practices that the programmer can use to solve common problems when designing an application.

Creational

  1. Abstract Factory
  2. Builder
  3. Factory
  4. Prototype
  5. Singleton

Structural

  1. Adapter
  2. Bridge
  3. Composite
  4. Decorator
  5. Facade
  6. Flyweight
  7. Proxy

Behavioural

  1. Chain of Responsibility
  2. Command
  3. Interepter
  4. Iterator
  5. Mediator
  6. Memento
  7. Observer
  8. State
  9. Strategy
  10. Template method
  11. Visitor