The second day of the
Martin talked about two main areas; MVC and the uses and types of MVC in use, in particular how MVC was misunderstood and how ideally it interaction with mvc should go user – controller – model – view in the classic MVC. This separation of model and view is the right way to do things and how separation of the view and controller is not often done and indeed most Uo toolkits merge view and controller.
He then went on to discuss a presentation based model and a model view presenter patterns common MVC derivatives and then finally the commonest pattern of stickitallintheview. He discussed why separation of concerns is a good thing to do from both the architectural / complexity standpoint and the testability standpoint looking specifically at the area of UI recorders and the issues with is technique
I agreed with Martin about MVC but I must admit the most interesting pattern I see around MVC is a hierarchical MVC calling another lower level MVC and so on. This seems to be a very prevalent pattern which I have never seen described.
Martin then went on to talk about architects and he defined two types; Relodus and Aritius (not sure of the spelling). I know he has blogged about this in the past and he gave us definitions of Relodus being controllers who are divorced from the developers and Aritius being hands on, communicating mentoring guys. As I said I have read Martins ideas on this before and think that there are a number of Architectural types who are disassociated from reality but that is not very much to do with them not being developers. I have seen a lot of developers who are pretty disassociated from reality and who just want to argue about languages for instance. I think that Martins model of what a good architect should be like and what they should do is very coloured by his experience which is very Agile and expert developer biased. Alas much of the world is less expert and so some of his models don’t translate.
Anyway the bottom line is that I don’t think you need to be a red hot developer to be a great architect which is where I think Martin was coming from. I have met a lot of red hot developers who are s**t architects and vice versa. I also think that you get controlling and ivory tower architects and developers, these are just a bad thing in either case.
Martin then very adroitly tied the mentoring of the Aritius architect back to best practise, patterns and thence to MVC. Very neat.
The first session I went to was a Session on DSL’s given by Microsoft’s own Alan Cameron Wills. This was similar to the one given by Steve Cook at the
The main question I have around all this modelling stuff is how we architect for the non functional requirements. It seems that MDA, DSL, all the language stuff is fine in the functional domain but no one is even vaguely interested in the non functional domain. It’s beginning to really annoy me, I hear all this stuff about new models and development process but when I actually speak to people building systems their two areas of interest and challenge are always hetrogenous systems and non functional requirmenst (security, scale perf).
Anyway the session had a lot of discussion about DLS’s, types, levels etc which was quite interesting.
In the afternoon I went to a radical computing session which was about what radical ideas there are in software that are achievable today but have not been done. The format was to come up with an idea, say what issue it overcame or need it met, what barriers to adoption there were and how these could be overcome.
We were organised into groups and had to come up with ideas. Mine were:
A measurement of Architectural quality to have some metric for the “goodness” of architecture.
Architectural rules for designing heterogeneous systems to support the creation of heterogeneous systems.
AOP for cross cutting concerns to bake non functional requirements into the language (notice a theme here?).
Hierarchical MVC as a pattern
There were a number of other ideas from around the table, notably a sensory ide (bugs that smell) and a hand held computation device.
We then took the best ideas and these were grouped with the best ideas from other groups into idea domains where we went through the process again before feeding back to the whole meeting.
This pulled out some good ideas and was an interesting session. I would have preferred longer over the idea generation, to come up with the idea and the solution in one session was pushing it a bit but the grouping of ideas showed some interesting patterns.
In the evening I had a very interesting chat with Jane Chandler of
Finally there was a beer tasting session which was great and I spent some time chatting with Benjamin, one of our