Git Product home page Git Product logo

solid's Introduction

solid

A walk-through of improving an example "Message Store" to demonstrate SOLID principles.


Tutorial

There is documentation to read in the code if you want to go at your own pace. Otherwise you can follow the tutorial in the associated gitbook here โš ๏ธ (Work in Progress)

Getting started

After cloning the repo, you can run the final example using make run.

Example:

git clone [email protected]:diversemix/solid.git
cd solid/message-store
make run

Exercises

Some thoughts on exercises - to be talked about with the team.

  1. Use the class CompositeStoreWriter defined in the file composite-store-writer.ts to replace the use of the decorator pattern to use the composite pattern.
  2. Create an implementation of ICacheLogger and use it to replace the cache's use of IStoreLogger.
  3. Reading from a non-existant file in the FileStore class can throw an error, come up with a solution that will log this within the current architecture.
  4. Create an implementation of IStore that saves the messages into a sqlite in memory db.
  5. Implement the Factory Pattern to switch on which implementation of IStore to use.
  6. Create tests for the implementations of IStore.

solid's People

Contributors

diversemix avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.