Really excited to announce that the LJC Book Club is partnering with developer.press to give away 10 iBook copies of their latest book: Clojure Made Simple - Introduction to Clojure by John Stevenson.
Original post and details here:
http://ljcbookclub.wordpress.com/2013/04/06/clojure-made-simple-ibook-give-away/
Hopefully this will be a regular thing and we will have more books to give away on a regular basis. Not that they aren't really already, the price is $4 which was £2.66 when I last checked! Really great to see books becoming more accessible!
Saturday, 6 April 2013
Functional Programming for the Object Orientated Programmer
Having finished our first book (The Well-Grounded Java Developer), the LJC Book Club has now started our new book: Functional Programming for the Object Orientated Programmer.
To keep things consistent, Ged and I will be keeping all the Skimmer's Guides on the LJC Blog from now on. I've drafted the first one and hopefully it will be available soon.
So far I have found the book a little slow, I'm dying to learn it all already! The functional style of coding combined with the old school command line style coding is bringing back strong memories of when I first started coding with Haskell xD
During the course of this book, we will be doing a load of exercises and I will be sharing all my code on GitHub (https://github.com/arkangelofkaos/fp-oo). Hopefully over the course of reading this book the quality of the code I produce will increase as well ;) However I am in dire need of a fully functioning IDE! My goal for next week is to try to get my old ultimate version of IntelliJ 11 fully set up and ready, I need my autocomplete and formatting back :P
In any case, so far the book is great aside from the slow start. I got so sucked into it that I've accidentally read ahead already. My immediate goals are to learn how to do recursion and pattern matching properly in Clojure, can't wait!
Thursday, 21 March 2013
LJC Event - Trisha Gee's Design Talk
Tonight I managed to attend an awesome talk by Trisha Gee entitled: What do you mean, backwards compatibility?
Overall I found the talk to be a fantastic insight into software design and has inspired me to read into a load of other topics :)
Overall I found the talk to be a fantastic insight into software design and has inspired me to read into a load of other topics :)
Lessons
- Setting "Design Goals" gives you good guidance without being overly prescriptive.
- Remember good design is supposed to help you produce good code.
- An example is immutability, it is good design for achieving the goal of thread safe code.
- "Design is a Process, not an Artefact"
- Design documentation is supposed to enable good change, i.e. UML can highlight concepts that need to be readdressed.
- However documentation is out of date as soon as it is written, code should be self descriptive and design should stand out.
- Great API design has "User Empathy"
- You heard of achieving high performance though "Mechanical Sympathy", well now we have the "User Empathy" too ;) Heard it here first :P
Further Reading
- Domain Driven Design - aren't we doing this already? I need to read more!
- Fluent Interfaces - this is more than just method chaining, can this be used outside of building?
- Strategy Pattern - not something I used much but potentially very useful, too many if statements!
- Behaviour Driven Development - So this is all the TDD practices I've been learning without knowing it? Awesome! I want to learn this properly!
Feedback
- Finally some feedback on Trisha's actual talk...
- The talk could do with a stronger introduction and focus more on design, it isn't really focussed on the MongoDB Java Driver and I don't think that is a bad thing!
- Really love the Monsters/Safe Houses analogy, gave really good structure to the talk and it is a beautifully simple analogy.
Subscribe to:
Posts (Atom)