Encapsulating Sub-Systems with Protocols

2016-09-15 Thread Cameron Barre
Has anyone used protocols to create explicit boundaries between the bigger pieces of their systems? We want to track/control the interactions between these sub-systems and are considering using protocols to define public APIs. Is this good practice? Would it be better to simply create our API l

Re: Encapsulating Sub-Systems with Protocols

2016-09-15 Thread Gregg Reynolds
On Sep 15, 2016 3:20 PM, "Cameron Barre" wrote: > > Has anyone used protocols to create explicit boundaries between the bigger pieces of their systems? Absolutely. Depending on what you mean by "boundaries between bigger pieces". Clojure itself, for one. Also core.matrix, if I'm not mistaken.

Re: Encapsulating Sub-Systems with Protocols

2016-09-15 Thread James Reeves
On 15 September 2016 at 20:50, Cameron Barre wrote: > Has anyone used protocols to create explicit boundaries between the bigger > pieces of their systems? We want to track/control the interactions between > these sub-systems and are considering using protocols to define public > APIs. Is this go

Re: Encapsulating Sub-Systems with Protocols

2016-09-15 Thread Christopher Small
I've used protocols this way. In fact, this pattern meshes quite well with Stuart Sierra's Component lib/pattern. By building system components around protocols, subsystems/components can be made swappable. This is rather integral to the current design of Datsys actually. Of course, as other's

Re: Encapsulating Sub-Systems with Protocols

2016-09-15 Thread Sean Corfield
Take a look at Stuart Sierra’s talk “Clojure in the Large” from Clojure/West: https://www.infoq.com/presentations/Clojure-Large-scale-patterns-techniques He talks about several techniques for managing boundaries, including protocols. Sean Corfield -- (970) FOR-SEAN -- (904) 302-SEAN An