Skip to content

Instantly share code, notes, and snippets.

@samkrishna
Last active December 14, 2015 11:09
Show Gist options
  • Save samkrishna/5077007 to your computer and use it in GitHub Desktop.
Save samkrishna/5077007 to your computer and use it in GitHub Desktop.
Metastructure, not Infrastructure

So I was listening to the latest episode of Core Intuition today and at one point Daniel Jalkut started talking about upgrading not his infrastructure, but his personal skillset.

When I heard him talk about that, I thought metastructure.

One thing that's been consuming me for the last few weeks is the notion of the MOVE programming model. MOVE stands for Models-Operations-Views-Events.

Pretty cool sounding, huh? For me it was amazing. And amazingly obvious that the hole was related to Events.

Conrad Irwin is right that the Controller layer gets too much code stuffed into it. However, it's not really clear (to me) where the Events are wired up.

And then it hit me: Event Dispatchers. Which would change the acronym from MOVE to MOVED (Models-Operations-Views-Event Dispatchers).

Given that we live in the age of Multi-Core, it makes far more sense to have this MOVED model be the pervasive way to develop. Operations and block-closures should be de rigeuer for all the multi-core-aware software that needs to be built (or rebuilt). It's definitely going to require some real thinking differently.

My first thought is that as much as possible, unless the code really needs to be synchronously sequenced, put all operations in blocks. Or, in NSOperation subclasses. The EventDispatcher(s) can hold the NSOperationQueue as well.

Now, I'm sure I'm going to make A LOT of mistakes here. But it's really worth trying out. Thankfully I have a plan....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment