Skip to content
This repository was archived by the owner on Jan 24, 2018. It is now read-only.
This repository was archived by the owner on Jan 24, 2018. It is now read-only.

"Functional core, imperative Shell" #1

@tiye

Description

@tiye

This quote comes form a video when I was views resources about React:
https://www.destroyallsoftware.com/talks/boundaries
It's says values are the boundaries of a system that is good for testing ang debugging(I forgot the original words). I think that's a lot like what people do in Haskell, when have a pure functional core of the program, and uses Monads to deal with side-effects that we really need in real world.

Also I watched a speech given bu Pete Hunt comparing Flux to REST in design:
https://www.youtube.com/watch?v=IVvHPPcl2TM
After that I begin to understand that is really a wise design which I didn't realize before. I don't know how to express that but you can watch that video and get you own.

Here is my plan of NimboDB inspired by these two videos:

  • divide server side code into layers: event receiver, logic core, syncing task
  • logic core is though not functional but kept away from network and database
  • event receiver listens to requests via WebSocket and call functions is logic core
  • syncing task cares about sending data to database and clients

It's quite blur yet, I will test that in other projects before code this into the repo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions