One other point I should have expanded more. Viewing your domain model as a
state machine responding to a sequential list of commands allows you to easily
isolate time as just another property. I have a [:set-time {:now ….}] which
emits a [:time-set {:now …}] which opens the door to so many things. Of course,
you can’t ever to a (Date.) anywhere instead you need to check the denormalised
time store, but ok. A lot of our domain is about reacting to things over time
so now I can start the domain without time changing then issue a [:set-time…]
and then inspect the domain and so on. Very very powerful.
> On 15 Jul 2015, at 22:14, Johanna Belanger <[email protected]> wrote:
>
> I am always eager to hear anything and everything about your experience with
> this. Especially downsides. =)
>
> I haven't done ES yet. My hydration code is definitely not that lovely. What
> do you think about ES vs Datomic? (Probably not the right thread for that
> question, huh?)
>
> On Sunday, July 12, 2015 at 8:20:54 AM UTC-7, Colin Yates wrote:
> My latest project uses a CQRS and event sourcing design and the power it
> gives, coupled with Clojure is just fantastic. Hydrating an object becomes
> (merge {} (event-store/load ar-id)) - just fantastic.
>
> I too find a lot of sympathy between CQRS, event sourcing, FRP and Clojure
> which I keep meaning to blog about, but my todo list is a mile long. Still,
> highly recommend that architecture. Lots of downsides; everything is a trade
> off, but conceptually, yeah, it gets a lot right.
>
>> On 12 Jul 2015, at 05:34, Matt Bailey <ambit...@ <>gmail.com
>> <http://gmail.com/>> wrote:
>>
>> Johanna,
>>
>> I noticed you mentioned CQRS. In my work, we use CQRS heavily, specifically
>> the Axon framework for Java (utilizing Spring and Hibernate). I got into
>> Clojure through watching Rich Hickey's talks and figured that any language
>> that he wrote had to be good.
>>
>> It's remarkable to me how cleanly the concepts applied in CQRS map to
>> concepts in Clojure. The funny thing is that CQRS would never be necessary
>> if it wasn't for languages like C# and Java.
>>
>> It can be discouraging to see people's eyes glaze over when you talk about
>> code as a series of transformations on the input. Many people limit their
>> understanding of code to a very procedural style with ifs, elses and "helper
>> methods" that have side effects.
>>
>> Sorry I don't have any words of wisdom on how to evangelize Clojure, but I
>> am glad to see someone else noted the parallels between CQRS and a more
>> functional style of programming.
>>
>> Cheers!
>> -Matt
>>
>> On Saturday, July 11, 2015 at 2:47:31 PM UTC-7, Johanna Belanger wrote:
>> That's really cool, thanks!
>>
>> On Saturday, July 11, 2015 at 5:27:37 AM UTC-7, juvenn wrote:
>> Hi Johanna,
>>
>> I don’t know if it'll work for your team, but I find Shaun Le Bron's
>> "Interactive guide to Tetris in ClojureScript” the most succinct and
>> beautiful way of showing power of Clojure and ClojureScript.
>>
>> https://github.com/shaunlebron/t3tr0s-slides
>> <https://github.com/shaunlebron/t3tr0s-slides>
>>
>> Have fun!
>> --
>> Juvenn Woo
>> Sent with Sparrow <http://www.sparrowmailapp.com/?sig>
>>
>> On Saturday, 11 July, 2015 at 1:24 pm, Johanna Belanger wrote:
>>
>>> I ended up giving him a brief description of Clojure, with stress on its
>>> ability to do heavy lifting with very little code, and sent him a link to
>>> Neal Ford's talk "The Curious Clojurist"
>>> <https://www.youtube.com/watch?v=bxLnpgnDApg>. We'll see what happens.
>>> Thanks everyone for your advice.
>>>
>>> On Thursday, July 9, 2015 at 3:20:23 PM UTC-7, Johanna Belanger wrote:
>>> Hi :)
>>>
>>> I've recently broached the subject of Clojure with another dev in my
>>> organization, and his response was basically "What's Clojure"? and I'm not
>>> sure how to answer that in a way that might inspire him. "It's a
>>> dynamically-typed functional Lisp with persistent immutable data structures
>>> that runs on the JVM" doesn't seem like it will grab his interest. =)
>>>
>>> I work primarily in .NET, and he does enterprise Java. I don't know him
>>> well enough to know how happy he is with it. He did express interest in
>>> learning .Net.
>>>
>>> I came to an appreciation of Clojure through
>>>
>>> -CQRS (the power of decomplection!)
>>> -Sussman and Abelson's SICP class at MIT online (the power of homoiconicity
>>> and functions!)
>>> -the death of Silverlight (alternatives to Javascript in the browser?)
>>>
>>> By the time I found Rich Hickey's talks (eg Simple Made Easy) I was pretty
>>> well primed to love Clojure. I've been using it for little personal
>>> projects and prototyping for a couple of years, but I haven't put it in
>>> production because no one else here knows it.
>>>
>>> Could anyone tell me how they got from enterprise Java to Clojure?
>>>
>>> Thanks very much,
>>> Johanna
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@ <>googlegroups.com
>>> <http://googlegroups.com/>
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+u...@ <>googlegroups.com <http://googlegroups.com/>
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> <http://groups.google.com/group/clojure?hl=en>
>>> ---
>>> You received this message because you are subscribed to the Google Groups
>>> "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to clojure+u...@ <>googlegroups.com <http://googlegroups.com/>.
>>> For more options, visit https://groups.google.com/d/optout
>>> <https://groups.google.com/d/optout>.
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to [email protected] <>
>> Note that posts from new members are moderated - please be patient with your
>> first post.
>> To unsubscribe from this group, send email to
>> [email protected] <>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> <http://groups.google.com/group/clojure?hl=en>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <>.
>> For more options, visit https://groups.google.com/d/optout
>> <https://groups.google.com/d/optout>.
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to [email protected]
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> <http://groups.google.com/group/clojure?hl=en>
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected]
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout
> <https://groups.google.com/d/optout>.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.