Hello | Rob Ashton
I’ve been criticised in the past for launching into the talks that I give and not giving enough of an introduction for the irrelevant details of who I actually am – so hi, I’m @robashton and I’ve joined CodeBetter to write some posts here on the subjects that are close to me and hopefully relevant to this audience.
An entire post about who I am? Yeah – well I started off writing something of actual merit with a single sentence introduction but it didn’t seem quite right – I figured that a proper post detailing some of the technologies/subjects I am actually interested in might be a better idea and if anybody is interested in anything in particular then I can push some of those posts out sooner.
This is probably what I am most known for (when ‘known’ at all), which is probably because I quite by accident did a large number of talks on it. I got involved with RavenDB the middle of last year, and started pushing changes into immediately (and frustrating Ayende with edge cases as I tried to do a lot of things that a document database is ill suited for).
My favourite personal contribution to the project is probably the dynamic indexes, which are now the primary way of accessing the read-side of the database, although the code is now unrecognisable from my initial commit of that feature.
These days my contributions are minimal as I have wandered into other areas of learning, although I do like to watch Ayende fix the really hard edge cases and pretend I’m actually helping ;-).
I’ve got some posts on this and document databases in general lined up, I’m looking forward to re-visiting it and re-applying some other learnings that are orthogonal to this topic. I’ll be speaking about this subject at NDC2011 in two separate talks, hint hint.
Testing and OO
I like testing and OO in theory as well as in practise, and the GOOS book is one of the few books to have really grabbed my attention in the past few years. I won’t claim to be particularly good at it, but after a couple of years of practising and trying to get better, more efficient, more descriptive and less brittle I think I’ve reached a point where I don’t find these things to be a complete minefield to negotiate. I practise TDD or some form of it in most all my projects these days.
I’m not a very academic person (I use this as an euphemism for being a bit dim occasionally), and some of the language and discussion being bandied about goes way over my head at times – but I accept that at face value – and know that while those discussions will always take place, somebody will distil the end-results into a digestible format because we’re all learning at different levels at the end of the day.
I have a few posts about this area in the backlog, my thoughts on tell don’t ask, where my lines are drawn over test coverage, granularity and what I think of mocks and how I compose my builders. I think that the rest of the blogosphere has these angles well covered though, so I’m in no hurry to go documenting my thoughts on the subject. (Especially as it is ever changing and in 6 months I’d look at the posts and think “what a dolt”).
Data, domains, persistence, architecture, etc
Learn by theoretical extremes, and practise in moderation? I don’t try and do any one thing here, I just try to keep things simple and coherent whilst maintaining low coupling and striving for cohesiveness. I don’t think many code-bases really warrant much more than that, and I’m bored of seeing code-bases with layer on layer of interfaces/generics that don’t add value and are promoted as being the pinnacle of good practise (because that makes it harder to persuade people that good practises don’t necessarily have to be difficult).
I’ve a few things I want to say about this, I think my first post might be one about removing all of those interfaces and learning a bit more about structural programming. I think I’ll not say anything particularly new here, but I’d be interested to see where my current thoughts stack up against everyone else.
ASP.NET MVC and Frenemies
I begrudgingly accepted a while ago that ASP.NET MVC will carry on being the de facto web framework for a time to come, and resolved that while I might use alternatives for my own projects (and some client projects where allowed and appropriate), that our best bet for not having an awful time of supporting those projects in the future is to learn from the best practises of other, ‘clearer thinking’ frameworks/libraries and help broadcast those learnings to the ASP.NET MVC users at large.
It is a lot better than what came before it, and some of the scaffolding and associated code going into it is going to be useful (and you know what – quite exciting) for those people who are either learning and/or doing simple projects ala RoR, but beyond that just like with anything else there are major issues to carrying on down a route of maintenance and testability.
I have a few posts about these kinda things, although no doubt a lot of people will disagree :-). I will be talking at DDDSW more extensively on this subject (again, hint hint).
The outside world
If we treat the browser as just another runtime, like we do .NET and Java and talk about it in that context there then there are some interesting implications for what we can do, although there are some big questions about whether we should.
I’m not one of those Ruby folk, although I do look on some of the ideas coming from that area with happiness, I like Mono and run Ubuntu on my own computers as my primary operating system for getting stuff done in my spare time.
Hopefully this is a good enough introduction to who I am and the kind of posts you can look to expect from me over the coming months (And hopefully not in a bad way).
I’d like to thank Jeremy for initially inviting me to come join the collective, Ian C for pushing it along and Brendan for putting it into action – it’s an honour to be trusted enough with a platform of this size and I hope to learn a lot from being corrected as I carry on making assertions that get challenged by this audience.