Skip to content

Latest commit

 

History

History
95 lines (81 loc) · 5.26 KB

README.md

File metadata and controls

95 lines (81 loc) · 5.26 KB

Useful Coding Knowledge.

I've put together this repository of markdown files, going into many aspects of coding. Note: this is a progressively updated repository, so there is no order to how I add things, see the table of contents below.

Please feel free to contribute to anything I've not listed, or examples to markdown files!

Important Principles

Here lies a collection of Markdown files going over good principles to keep in the back of your mind while developing.

  1. Keep it simple, stupid
  2. Don't repeat yourself!
  3. You aren't gonna need it
  4. Seperation of Concerns
  5. Dependency Injection
  6. Composition Over Inheritence
  7. Law Of Demeter
  8. Single Responsibility Principle
  9. Open/Closed Principle
  10. Fail Fast Principle
  11. Liskovs Substitution Principle
  12. Principle of Least Astonishment
  13. Single Source of Truth
  14. Convention over Configuration

Hotwords (and what they mean!)

  1. Concurrency
  2. Parallelization
  3. Scalability
  4. Containerization
  5. DevOps
  6. CI/CD (Continuous Integration, Continuous Deployment)
  7. Agile Methodology
  8. Test Driven Development
  9. Behaviour Driven Development
  10. Inversion of Control
  11. Dependency Injection
  12. Reactive Programming
  13. Service Oriented Architecture
  14. Cryptography

Design Patterns

For each of these design patterns, I've given examples where applicable. I will be building on these for different languages. for most of the examples, I've used NodeJS and/or Java. I will be looking at adding in examples for different languages. I've also added the pros and cons for each pattern.

> Architectural Patterns
  1. Micro-Service
  2. Event Driven Architecture
  3. Layered Architecture Pattern
  4. MVC (Model, View, Controller)
  5. MVVM (Model, View, ViewModel)
  6. DDD (Domain-Driven Design)
> Behavioural Patterns
  1. State Pattern
  2. Strategy Pattern
  3. Observer Pattern
  4. Iterator Pattern
  5. Command Pattern
  6. Chain of Responsibility Pattern
  7. Inversion of Control (IoC)
  8. Mediator
> Concurrency Patterns
  1. Balking Pattern
  2. Double Checked Locking Pattern
  3. Guarded Suspension Pattern
  4. Iterator Pattern
> Creational Patterns
  1. Abstract Factory Pattern
  2. Builder Pattern
  3. Factory Method Pattern
  4. Prototype Pattern
  5. Singleton Pattern
  6. Container Pattern
  7. Multiton Pattern
> Structural Patterns
  1. Adapter Pattern
  2. Bridge Pattern
  3. Composite Pattern
  4. Decorator Pattern
  5. Facade Pattern
  6. Proxy Pattern

CI/CD

  1. Index
  2. Git
  3. Docker
  4. Kubernetes