Fork me on GitHub
#keechma2016-02-16
>
bteuber09:02:01

Hi, very interesting framework! I like the way handler registrations are not global, I always felt this was a little weird in re-frame.

bteuber09:02:10

And the entity-db stuff is very exciting too - though I dislike manually having to trigger “garbage collection”. It would be nice to make reference counting work somehow, but I guess the problem are cycles like always...

mihaelkonjevic09:02:41

@bteuber: the nice thing about this approach is that it's easy for another controller to take a hold of an item before it's vacuumed

mihaelkonjevic09:02:43

in the place my order example

mihaelkonjevic09:02:53

when you go from the restaurants to the restaurant page

mihaelkonjevic09:02:11

the restaurant controller can check if the restaurant entity is already loaded

mihaelkonjevic09:02:29

and if it is it will return it immediately instead of making a req

mihaelkonjevic09:02:57

regarding the automatic vacuuming of the entity db, it could be done but I don't want to add any kind of "magical" behavior to keechma

mihaelkonjevic09:02:23

all the components are meant to be low level, so you could use them to build something more opinionated on top of them

bteuber09:02:52

right I think it’s a great starting point

bteuber09:02:16

and I’ll have to experiment more with the entity stuff in general I guess

bteuber09:02:49

maybe I’ll find out what I want on top after a while

mihaelkonjevic09:02:06

yeah, EDB is meant to be simple, and it's purposefully not complected with the rest of the framework. If there's something that works better for your model structure, you can easily swap out the EDB

bteuber10:02:50

yeah that’s something else I like, modularity between framework parts

bteuber10:02:08

without the whole “framework” notion would be rather scary, but like that it’s more of a tool collection

mihaelkonjevic10:02:43

Yeah the only frameworky part is the app-state lib which glues everything together. Stuart Sierra's talks (http://www.infoq.com/presentations/Clojure-Large-scale-patterns-techniques and https://vimeo.com/100978431) had a huge impact on the design

bteuber10:02:10

Thanks - I’ve seen the components talk but not the scaling one, will check it out simple_smile

mihaelkonjevic12:02:00

thank you simple_smile I kinda feel I should rewrite them again, there's still a lot of things I want to explain

mitchelkuijpers12:02:36

I love that you added routing, that is so important. We have very big app with re-frame bit I am definitely keeping an eye on Keechma

mitchelkuijpers12:02:56

We have a sort of homemade entitydb

mihaelkonjevic12:02:59

keechma actually started as Re/Frame and Secretary combination, but I didn't like the shared global state everywhere, and I wanted my controllers to be route driven so I finally bit the bullet and implemented it on my own

mihaelkonjevic12:02:42

also, I like how controllers allow you to encapsulate both the retrieval of the data and mutations of that data too

mitchelkuijpers12:02:04

Yes I will give it a try