In a recent Clojure Developers Barcelona event we did the Lights Out Kata in ClojureScript using Reagent (a minimalistic ClojureScript interface to React.js) and Figwheel (which builds your ClojureScript code and hot loads it into the browser as you are coding).
We did mob programming and REPL-driven development.
Once at home I went on working on the kata.
This is the resulting code:
First, the core namespace where everything is initialized:
The lights-view namespace which contains the code to render all the components:
Finally, the lights namespace which contains all the business logic:
You can check all the code in the everything-in-client branch of this GitHub repository.
As usual it was a great pleasure to do mob programming with the members of Clojure Developers Barcelona.
Thanks!
Record of experiments, readings, links, videos and other things that I find on the long road.
Registro de experimentos, lecturas, links, vídeos y otras cosas que voy encontrando en el largo camino.
Tuesday, August 16, 2016
Monday, August 15, 2016
Kata: Bank Account in Clojure using outside-in TDD with Component and Midje
I did the Printing Account Statement subset of the Bank Account kata in Clojure using Component and Midje.
I started the kata in a Barcelona Clojure Developers event.
The truth is that, since I was learning how to use the Component library, I didn't use TDD.
Instead I worked on the REPL to get everything in place and make it work.
Then I wrote the tests I would have liked to write if I had used outside-in TDD with Midje.
I find that, when I'm learning something new, it works better for me what Brian Marick describes in these tweets:
This is the acceptance test I would have started with:
Then I would have written this unit test for Account:
And these are the ones for InMemoryTransactions, ConsoleStatementPrinter and NiceReverseStatementFormat:
You can check the rest of the tests and code in this GitHub repository.
Doing this kata I learned and practiced how to use Component.
I also learned how to use Midje's defrecord-openly and provided macros to mock protocols which helped me correct something I did wrong in another kata.
I started the kata in a Barcelona Clojure Developers event.
The truth is that, since I was learning how to use the Component library, I didn't use TDD.
Instead I worked on the REPL to get everything in place and make it work.
Then I wrote the tests I would have liked to write if I had used outside-in TDD with Midje.
I find that, when I'm learning something new, it works better for me what Brian Marick describes in these tweets:
Now I'll show you the tests I actually wrote afterwards, in the order I would have written them doing outside-in TDD.(6) the immediately-following writing of tests to capture what I've learned counts as Schön-style reflection on just-prior practice.
— Brian Marick (@marick) July 26, 2016
This is the acceptance test I would have started with:
Then I would have written this unit test for Account:
And these are the ones for InMemoryTransactions, ConsoleStatementPrinter and NiceReverseStatementFormat:
You can check the rest of the tests and code in this GitHub repository.
Doing this kata I learned and practiced how to use Component.
I also learned how to use Midje's defrecord-openly and provided macros to mock protocols which helped me correct something I did wrong in another kata.
Thursday, August 11, 2016
Interesting Talk: "Turning the database inside out with Apache Samza"
I've just watched this very interesting talk by Martin Kleppmann
Tuesday, August 2, 2016
Interesting Paper: "'Claro!': An Essay on Discursive Machismo"
I've just read this wonderful paper by Diego Gambetta
this great paper talks about how "Claro!" attitudes in communication, "characterized by strong opinions on everything from the outset of discussion", and the set of beliefs about knowledge behind them can make impossible to get to positive results in group deliberative processes.
A very interesting concept I got to know through Ignacio Sánchez-Cuenca's La desfachatez intelectual. Escritores e intelectuales ante la política book.
Unfortunately, "Claro!" attitudes are widespread in our culture...
A very interesting concept I got to know through Ignacio Sánchez-Cuenca's La desfachatez intelectual. Escritores e intelectuales ante la política book.
Unfortunately, "Claro!" attitudes are widespread in our culture...
Interesting Talk: "Doing data science with Clojure: the ugly, the sad, the joyful,"
I've just watched this interesting talk by Simon Belak
Subscribe to:
Posts (Atom)