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

"Functional core, imperative Shell" #1

Open
tiye opened this issue Sep 22, 2014 · 0 comments
Open

"Functional core, imperative Shell" #1

tiye opened this issue Sep 22, 2014 · 0 comments

Comments

@tiye
Copy link
Member

tiye commented Sep 22, 2014

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant