Skip to content

A collection of markdown files going over principles, concepts and more on software engineering. This repository will constantly have content added.

Notifications You must be signed in to change notification settings

Hudsxn/useful-coding-knowledge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A collection of markdown files going over principles, concepts and more on software engineering. This repository will constantly have content added.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published