architecture

Jivago Alves 2020-10-30T01:00:21.038600Z

@kumarshantanu I talked about it (between other things) in this presentation https://youtu.be/4M7u2qyyAQ8 . The example I used is very simple but I was hoping to make it simpler to grasp the idea. Code is at https://github.com/jivagoalves/codebreaker Hope it's helpful.

Jivago Alves 2020-10-30T01:20:57.038900Z

Thanks for sharing!

1👍
simongray 2020-10-30T08:07:57.039400Z

I would say that any Re-frame code base would approximate this paradigm quite well.

simongray 2020-10-30T08:08:33.039600Z

That basically is the paradigm of Re-frame.

Ivan 2020-10-30T08:44:06.039900Z

I don't remember if it's spelled, but it's the same thing https://www.youtube.com/watch?v=0EX3UIl-Sd8

Shantanu Kumar 2020-10-30T08:44:50.040400Z

@simongray @ivan.kanak_clojurians You mean, FRP is much like FC-IS?

Ivan 2020-10-30T08:48:22.040600Z

my post is not about re-frame or FRP, it's about a presentation on how the functinal-core/imperative-shell (or "clean architecture") can be implemented, starting with clojure-spec in the center to define the domain, out to the supporting services that cause side-effects. ..still, not an actual non-trivial Clojure codebase - thought, tbh, I would be interested in that in any language

simongray 2020-10-30T08:49:36.040800Z

I didn’t mention FRP, I mentioned Re-frame…? I guess it has elements of FRP too, but I don’t see how that is relevant here. The thing Re-frame does well is nudging developers to mostly use pure functions for almost all application logic (events) and prefer dumb presentation components (form-1 reagent components). All side-effecting code is isolated into effects and all input that is not under your control is isolated into coeffects. The rest of a Re-frame codebase is pure.

Shantanu Kumar 2020-10-30T08:53:30.041Z

@ivan.kanak_clojurians @simongray Thank for clarifying - I don’t have much exposure to Reframe. Will go through the linked resources.

Jakub Holý 2020-10-30T10:44:15.041300Z

I hope to write more in detail about it in the future.

vemv 2020-10-30T18:49:08.043900Z

Here's a related article http://widdindustries.com/cross-platform a .cljc file tends to lend itself naturally to separate side-effects from business logic. Especially if you force yourself to have comprehensive test coverage with a test matrix that runs both jvm and node.js

1👍