Showing posts with label ddd north. Show all posts
Showing posts with label ddd north. Show all posts

Tuesday, 15 October 2013

DDD North 2013

The third ever DDD North was every bit as good as the first two. I saw five great talks, chatted to lots of people but unfortunately didn't win anything.


Making 3D Games With MonoGame - Richard Garside (code)

This was an introduction to MonoGame, an open source implementation of XNA which is also cross platform. It covered importing models, setting up cameras and basic animation. After about thirty minutes or so I decided that MonoGame was too much like hard work for my liking. I've been attempting to learn Unity3D recently and it's possible to achieve the same results with significantly less code. Admittedly MonoGame is massively cheaper than the pro version of Unity3D but I think I'll stick with Unity3D free for now.


Scaling Systems Architectures That Grow - Kendall Miller

In this talk Kendall managed to simplify a very complex problem, scalability, into four simple points. He said to enable scalability you must:
  • Use asynchronous processes. If it's not critical, do it later
  • Cache. Don't do work you don't have to. The fastest query is the query you don't run
  • Distribution. More servers, more computing power. This is not easy so should be attempted after the first two points
Kendall also highlighted that the most significant problem when scaling is consistency, ensuring all users see the same state. 

Obviously this is a simplification of a sixty minute talk but the bullet points are worth remembering.


Cross Platform Mobile Development in C#  - Ross Dargan (code)

Xamarin was the subject of this talk. Xamarin is a framework for creating cross platform mobile applications. One of the pain points when developing cross platform is the lack of shared code. In this talk Ross demoed several ways of sharing code between platforms and highlighted their pros and cons. Essentially all business logic can be shared and much of the view model code as well. Primarily only the view code can't be shared. Each view must be created natively. So Android apps views are created using XML, WPF apps use XAML, etc. Useful stuff.


MongoDB for the C# Developer - Simon Elliston Ball (slides)

NoSQL is something I've been wanting to play with for a while and this talk showed how easy it is to start using MongoDB  Setup, basic queries, replication, storing large documents and database structure were all covered. Interestingly Simon also included a comparison with RavenDB  I think at this point I'd still favour RavenDB as the in memory database sounds useful and transactions are ACID.


Testing Crap in Web Applications Like ASP.Net MVC - Rob Ashton (slides)

Sixty minutes of rant from Rob, I expected no less! You have to concentrate hard otherwise you'll miss something. To be honest I'll still not 100% sure how to do fast UI tests in my day job, but when I left I was damn sure I wanted to try. At some point, when I find the time, I want to check out PhantomJS and coypu that were mentioned. Rob and others have convinced me that UI tests can be incredibly useful since each one covers so much code. Unfortunately in my experience they aren't easy to set up. One day I'll get it right. 

Sunday, 14 October 2012

DDD North 2012


I had a cracking day at DDD North so thought I'd write up some of my thoughts on the talks I attended.


10 practices that made me the developer I am today

Garry Shutler presented this talk. It struck a chord with me, particularly his experience of leaving university without a bunch of fairly important skills. All the topics covered were relevant. For the most part they were familiar. If I were to draw up a list of ten practices I believed made a good developer it would share many of the same points so it's nice to know someone with more experience than yourself values similar practices (it gives me a warm fuzzy feeling). There were several topics covered which I don't do and they were food for thought. You can find a brief summary of the talk here.


Async C# 5.0 - patterns for real world use

This talk was basically an introduction to C# async, or magic as I like to call it. The code looks like regular linear code, but it's not. Liam Westley covered the basic keywords, some examples and some gotchas. Interesting stuff.


BDD - look ma! No Frameworks

Out of all the talks I attended this one caused my brain to hurt the most, in a good way. In the hour Gemma Cameron introduced us to Behaviour Driven Development (which I previously knew nothing about). If I understand correctly BDD is kind of a mix of TDD and DDD. One of the important aspects of BDD is communication. Talking to people, speaking in their language, finding out what they want, working out their motivation, all with aim of making software that people actually want. Another important aspect of BDD is how you test. As I understand it the idea is to write tests than can be read by a non techy. This means that firstly the tests should be readable, using words that will be understood outside of code land, and secondly the tests should be top down, meaning they should test a behaviour rather than a method of a class. Obviously there is more to BDD than these two points, but these are the main things I took from the talk. 

To be honest I didn't leave convinced. My impression of BDD is that it's a mish mash of other things. Communication is important, but it's by no means the only software development process to promote it. What about the testing aspect? To me it sounds like a automated acceptance testing which again isn't new. I feel there is benefit from this kind of testing but my preference would be alongside unit tests rather than instead of. Another problem I had was that I can't get my head round how I would apply this to a complex example. How would I write this kind of test in my code base at work? I have no idea. With difficulty I would imagine. 

One other topic, mentioned briefly, not specific to BDD is the self shunt pattern. Apparently this is a technique which can be used rather than mocking when unit testing. It's now on my reading list.


Javascript sucks and it doesn't matter

There was a large amount of stuff covered in this talk by Rob Ashton most of which I'll not use as I don't write a great deal of Javascript, but very interesting none the less. The most useful thing I took from the talk was that qUnit isn't great for writing unit tests that have a large amount of DOM interaction, something I've previously tried to do. A much nicer way of doing it is using a headless browser called zombie.js. Another one for the reading list. Here is a summary of the talk.


C# + Powershell = happy couple

Unfortunately I was half asleep at this point in the day. Getting up at six o'clock doesn't agree with me. Still it was intersting. Jimmy covered the basics of writing your own Powershell cmdlet in C#. Turns out it's fairly straight forward and potentially very useful. I say potentially because I can't think of any useful cmdlets to write. I will though, eventually.