Skip to main content


Showing posts from October, 2012

Recommended Reading 2012

Here is my updated reading list for 2012. We might have missed something so if you think we should be reading it, let us know.ProcessThe Toyota Way - Jeffrey LikerThe Goal - Eli GoldrattXP Explained - Kent BeckThe Pragmatic Programmer- Andrew Hunt and David ThomasThe Clean Coder - Robert C. MartinCodeClean Code - Robert C. Martin Test-Driven Development by Kent BeckRefactoring - Martin FowlerRefactoring Workbook - William WakePatterns of Enterprise Application Architecture - Martin FowlerHead First Design Patterns - Freeman, et alGrowing Object-Oriented Software, Guided by Tests - Steve Freeman and Nat Pryce97 Things Every Programmer Should Know- Kevlin HenneyPro ASP.NET MVC x+ - Steve SandersonFramework Design Guidelines - Brad Abrams and Krzysztof Cwalina

MVC is Broken

If you look up the definition of MVC or Model View Controller, it will hail the definition as being able to change your front end without affecting other parts of the application and vice versa. This sounds great in theory, however this claim is nothing more than a blatant lie.A failing of the architectural pattern comes from the whole codebase being tied to a specific stack. Take ASP.NET MVC. The domain logic will most likely be in C#. Therefore your models will be in C#. Your controllers will be in C#. Your views will be a mixture of C# and some form of a templating language. If you want to change your stack to the "next big thing" you are forced to take a big bang approach. ASP.NET MVC won't be around forever. Being tied to a specific technology feels wrong. Therefore this coupling means your designers are forced to use the templating language that your framework supports. This should be a flexible option that should be easy to chang…

Codeweavers Code Retreat

Last week we had @kevinrutherford in to run a coderetreat. It was the first retreat I've taken part in personally, the same applying to much of the team. The day was to focus on one challenge - Conway's Game of Life though each iteration would introduce new constraints.Iteration 1The four rules of simple code were discussed, aka "Extreme Normal Form".Passes testsCommunicates intentNo duplicationNothing unncessaryOur first run through was somewhat of a disaster. We became too obsessed with how the grid was to be stored. This meant we spent a long time messing around with arrays and multidemionsal arrays in C#. Both are somewhat tedious and not something we use often, therefore we concluded a more "grid agnostic" approach would be needed. After all, there is nothing stating the grid need be a square, fixed layout.Iteration 2The concept of Arrange, Act, Assert or AAA was discussed.Arrange - set up pre conditionsAct - do something on the sub…