OOP the Easy Way
Object-Oriented Programming the Easy Way: a manifesto for reclaiming OOP from three decades of confusion and needless complexity.APPropriate Behaviour
APPosite Concerns
FSF
Author Archives: Graham
APPropriate Behaviour is almost done
I just pushed another update to APPropriate Behaviour, my work on the things programmers do that aren’t programming. There’s some refinement to the existing material to be done, and a couple of short extra chapters to finish and add. But … Continue reading
Posted in advancement of the self, books
Leave a comment
As the Kaiser Chiefs might say: Ruby ruby ruby n00bie
Imagine someone took the training wheels off of Objective-C. That’s how I currently feel. I’ve actually had a long—erm, not quite “love-hate”, more “‘sup?-meh”—relationship with Ruby. I’ve long wanted to tinker but never really had a project where I could … Continue reading
On designing collections
Introduction This post explores the pros and the cons of following the design rule “Objects responsible for collections of other objects should expose an interface to the collection, not the collection itself”. Examples and other technical discussion is in Objective-C, … Continue reading
Posted in Foundation, OOP, software-engineering
Comments Off on On designing collections
On rewriting your application
I’m really far behind on podcasts. I have a long commute, and listen to one audiobook every month, filling the slack time with a selection of podcasts. It happens that between two really long books (Cryptonomicon by Neal Stephenson and … Continue reading
Posted in Business, software-engineering
Leave a comment
Rebooting the Programmer Competency Matrix
For the last couple of years, I’ve posted a self-review based on the Programmer Competency Matrix: on my own competency from 2011 and on my newer competence from 2012. This year, because writing on APPropriate Behaviour is continuing apace, I … Continue reading
Posted in advancement of the self
2 Comments
Coupling in a Cocoa[ Touch] App
This is one of my occasional “problem looking for a solution” posts. It’d be great to discuss this over on App.net or G+ or somewhere. I don’t think, at the outset of writing this post, that the last sentence is … Continue reading
Posted in AAPL, code-level, OOP
Comments Off on Coupling in a Cocoa[ Touch] App
A two-dimensional dictionary
What? A thing I made has just been open-sourced by my employers at Agant: the AGTTwoDimensionalDictionary works a bit like a normal dictionary, except that the keys are CGPoints meaning we can find all the objects within a given rectangle. … Continue reading
Posted in code-level, iPad, iPhone, Mac, OOP, performance, software-engineering
Comments Off on A two-dimensional dictionary
“You could simply do X” costs more
Someone always says it. “Could you just add this?” or “I don’t think it would be too hard to…” or if somebody else “changes these two simple things”, someone might create a completely bug-compatible, scale-compatible implementation of this other, undocumented … Continue reading
Posted in Uncategorized
Comments Off on “You could simply do X” costs more
The Liskov Citation Principle
In her keynote speech at QCon London 2013 on The Power of Abstraction, Barbara Liskov referred to several papers contemporary with her work on abstract data types. I’ve collected these references and found links to free copies of the articles … Continue reading
Posted in code-level, documentation, OOP, software-engineering, Talk
2 Comments
When all you have is a NailFactory…
…every problem looks like it can be solved by configuring a different nail. We have an obsession with tools in the software industry. We’ve built tools for building software, tools for testing software, tools for recording how the software is … Continue reading
Posted in advancement of the self, software-engineering
Comments Off on When all you have is a NailFactory…