There are times when you start a project, and you understand exactly what it has to do, you know the inputs, and the outputs. You might know even some of the inner logic in between, but you can't get your head around it.
That is, not to know how to do it. Not to know where to start from and where you are targeting to. This problem arises almost always you are dealing with something new, something you have never done before and perhaps have ever seen.
That's been the case for me in some projects I've worked on, some times it took me a while to get the right idea, after hours/days/weeks struggling with the logic and the results verification.
In my first days, I would do the verifications by hand, a tedious process where I would reply all the steps in order to verify that everything is working as expected. If something got broken, I would fix it and then start the tedious process again.
This was painful, and exhausting, that loop trapped me for months. I thought that someone else would have found a way to get this done without that much effort. Then I started reading about testing techniques, leading to best practices, disciplines....a hole world of professionalism and engineering is out there, you just have to seek it.
The concept that fit for my problems was TDD, it applied for the situations I experienced and its scope is what I was looking for, the cycle looks like this:
with automated tests and frameworks, and the most important....you know that you are done when you can't think on more tests to write!!!
I strongly suggest you to give it a try, it's a discipline that will make you a better, more responsible developer, and also will provide you a way of building targeted products in a safe way.
Showing posts with label tdd. Show all posts
Showing posts with label tdd. Show all posts
May 12, 2012
April 10, 2012
SE books you must read: Agile Principles, Patterns, and Practices in C#
As a disclaimer, I'm a Java developer, but this book can't be left aside. If you are a follower of the Clean Code movement this is the right book for you. Perhaps the most 'engineer-oriented' book written by Robert C. Martin and Micah Martin.
It covers several concepts about agile development, design patterns, programming, anti-patterns and some code katas to have fun with.
[ Agile Principles, Patterns, and Practices in C# ]
It covers several concepts about agile development, design patterns, programming, anti-patterns and some code katas to have fun with.
[ Agile Principles, Patterns, and Practices in C# ]
April 3, 2012
Binary tree implementation on Ruby
I was having fun comparing the code I did in my early programming attempts in Java, and thought about how much would it take to rewrite it now, but in Ruby.
As an initial attempt, I took the widely known Binary tree, I started with the test cases and then implemented the code for them, here's the result.
I can say that it took at least ~50% less effort compared to the Java implementation, and it looks good :-)
As an initial attempt, I took the widely known Binary tree, I started with the test cases and then implemented the code for them, here's the result.
I can say that it took at least ~50% less effort compared to the Java implementation, and it looks good :-)
October 19, 2011
Test Driven Development: Small tutorial
Some weeks ago I did a TDD presentation and for that matter I prepared a small tutorial of how to do it.
Details
Details
- I used Robert Martin's approach to TDD.
- The example idea was taken from James Shore.
- The QueryString(built in the tutorial) component is a simple HTTP parameters parser.
Subscribe to:
Posts (Atom)