keechma

Keechma stack. Mention @U050986L9 or @U2J1PHYNM if you have any questions
Ahmed Hassan 2019-06-14T07:31:46.110200Z

What are major things you found lacking in re-frame while building keechma? one is off course being routing first in keechma.

Ahmed Hassan 2019-06-14T08:08:22.111500Z

EntityDB seems more organized DB store than re-frame app-db.

carkh 2019-06-14T09:31:52.115900Z

I can't speak for mihael, but the controllers are solving the lifecycle problem for resources , like websockets for instance. Also, re-frame is a lot of event chasing to follow what's happening, that's solved neatly with pipelines and pipeline controllers. re-frame is (was?) mainly about solving the state management issue. Keechma has more functionalities via its companion libs like data loader, local css. finally re-frame is more principled maybe more theoretically sound, but keechma is a more down to earth, less ceremony, getting things done library.

carkh 2019-06-14T09:32:28.116500Z

i personally am not completely sold on the routing first part, but i can work with it

✔️ 1
carkh 2019-06-14T09:40:50.116900Z

also keechma apps are not global things like in re-frame

1
carkh 2019-06-14T10:03:16.118100Z

don't shush me ! that's a good thing ! you can have several totally independent keechma apps in a single page, that's awesome =)

Ahmed Hassan 2019-06-14T10:43:18.118900Z

It was supposed to be thinking face :thinking_face:

carkh 2019-06-14T10:43:39.119100Z

ahh =)

mihaelkonjevic 2019-06-14T11:46:39.126200Z

For me the reason why I created Keechma after using re-frame was: 1. No globals - this one is extremely important and is powering a lot of advanced Keechma patterns 2. Lifecycles - this one allows you to write apps that don’t leak memory. I was building SPAs in period when IE6 was a dominant browser and memory management is built into me as an extremely important part of building apps 3. Controllers - Based on my experience I was aware of a need to sometimes directly access the global atom, controllers allow you to bridge between your domain code and keechma code with ease. This allowed solutions like pipelines, forms and dataloader to be built because I was able to “inovate” in user-space. For 99% of problems, pipelines are great solution, and you don’t really need a direct access to app-db atom, but for remaining 1% it allows you to write code that makes sense for your app, not for Keechma 4. No globals in component deps - adding a dependency injection layer to components allows you to write independent components that don’t know about their parent OR about their child dependencies. Those are re-mappable from the outside

✔️ 2
carkh 2019-06-14T11:51:47.126800Z

yes this all makes keechma very "hackable"

👍 1