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

Category Archives: software-engineering
I published a new book!
Executive summary: it’s called APPropriate Behaviour, head over to the LeanPub site to check it out. For quite a while, I’ve noticed that posts here are moving away from nuts and bolts code towards questions about evaluating my own performance, … Continue reading
Posted in advancement of the self, books, Business, code-level, Responsibility, software-engineering
Comments Off on I published a new book!
Surprising ARC performance characteristics
The project I’m working on at the moment has quite tight performance constraints. It needs to start up quickly, do its work at a particular rate and, being an iOS app, there’s a hard limit on how much RAM can … Continue reading
Posted in code-level, performance, software-engineering
Comments Off on Surprising ARC performance characteristics
Object-Oriented callback design
One of the early promises of object-oriented programming, encapsulated in the design of the Smalltalk APIs, was a reduction – or really an encapsulation – of the complexity of code. Many programmers believe that the more complex a method or … Continue reading
Posted in code-level, OOP, software-engineering
Comments Off on Object-Oriented callback design
An apology to readers of Test-Driven iOS Development
I made a mistake. Not a typo or a bug in some pasted code (actually I’ve made some of those, too). I perpetuated what seems (now, since I analyse it) to be a big myth in software engineering. I uncritically … Continue reading
Posted in books, Responsibility, software-engineering, TDiOSD
Comments Off on An apology to readers of Test-Driven iOS Development
Does that thing you like doing actually work?
Genuine question. I’ve written before about Test-Driven Development, and I’m sure some of you practice it: can you show evidence that it’s better than (or, for that matter, evidence that it’s worse than) some other practice? Statistically significant evidence? How … Continue reading
Posted in advancement of the self, documentation, software-engineering
Comments Off on Does that thing you like doing actually work?
What’s a software architect?
After a discussion on the twitters with Kellabyte and Iris Classon about software architects, I thought I’d summarise my position. Feel welcome to disagree. What does a software architect do? A software architect is there to identify risks that affect … Continue reading
Posted in Responsibility, software-engineering
2 Comments
Inheritance is old and busted
Back when I started reading about Object-Oriented Programming (which was when Java was new, I was using Delphi and maybe the ArcGIS scripting language, which also had OO features) the entire hotness was inheritance. Class hierarchies as complicated as biological … Continue reading
Posted in code-level, OOP, software-engineering
Comments Off on Inheritance is old and busted
On Null Objects
I’ve said before, NSNull is an anti-pattern. It’s nice that we have the nil object, which allows us to have a stand-in for any object that doesn’t do anything. Unfortunately, it’s not a universal stand-in. You can’t add nil to … Continue reading
Posted in code-level, OOP, software-engineering
3 Comments
Illuminative-C
In addition to being a mildly accomplished software engineer, I’ve done some studying and armchair research in the field of ancient languages and palaeography. What happens if we smoosh those fields together? In a very slight way, art historian and … Continue reading
Posted in advancement of the self, books, code-level, documentation, PCAS, software-engineering, UI
Comments Off on Illuminative-C
On community
This is a post that had been boiling for a while; I talked a little about the topic when I was in Appsterdam earlier this year, and had a few more thoughts which were completely supplanted and rearranged by watching
Posted in AAPL, advancement of the self, books, Business, iDeveloper.TV, iPhone, Mac, NSConf, OOP, Responsibility, software-engineering, Talk, WebObjects
Comments Off on On community