A Computer Science Geek. I've involved in a variety of disciplines, Game Dev, Android Dev, FullStack Web Dev, Ai, Prolog, MatLab (Octave), ... etc. But mastered zero of them. So I'm actually a GEEK :D
Location
Cairo, Egypt
Education
Faculty of Science, CS & Statistics, Helwan University
Hmm...
I hadn't read "The Paragmatig Programmer" before, despite reading about it from Twitter a long time ago.
I'll add it to my list.
Obviously, there are two different approaches in applying TDD. I have two references for the one I mentioned here (that leads to a messy structure of the program, and follows agile principles as well. Minimalistic and simplicity are essential in Agile Development); the first one is Meyer's book, while the second is one of Robert Martine lectures.
In "Agile! The Good, The Hype, and The Ugly" book, page 9, Meyer says:
Refactoring is particularly necessary in connection with test-driven development: a process consisting solely of adding a code element for every new test would yield programs with a messy, ad-hock structure; refactoring is necessary to maintain a clean design.
In this TDD demo, Uncle Bob demonstrates how should we apply TDD in our projects. If you watched this demo, it definitely would be clear for you, how TDD creates code with a messy structure. https://youtu.be/58jGpV2Cg50&t=2630s
Eventually, I'd like to share this debate between Robert Martine and Jim Coplien with you. It leads us to believe that agile proponents have a different perspective on TDD, which is the one used in this article to define TDD. youtu.be/KtHQGs3zFAM
I hope everything is clear now.
Cheers.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Thanks for the great article!
Could you maybe elaborate this? In my experience and what I've read, applying TDD improves the design. Like the Tip 69 of Pragmatic Programmer says:
Design to Test
Start thinking about testing before you write a line of code.
and Tip 66:
Testing Is Not About Finding Bugs
A test is a perspective into your code, and gives you feedback about its design, api, and coupling.
What do you think?
Hmm...
I hadn't read "The Paragmatig Programmer" before, despite reading about it from Twitter a long time ago.
I'll add it to my list.
Obviously, there are two different approaches in applying TDD. I have two references for the one I mentioned here (that leads to a messy structure of the program, and follows agile principles as well. Minimalistic and simplicity are essential in Agile Development); the first one is Meyer's book, while the second is one of Robert Martine lectures.
In "Agile! The Good, The Hype, and The Ugly" book, page 9, Meyer says:
In this TDD demo, Uncle Bob demonstrates how should we apply TDD in our projects. If you watched this demo, it definitely would be clear for you, how TDD creates code with a messy structure.
https://youtu.be/58jGpV2Cg50&t=2630s
Eventually, I'd like to share this debate between Robert Martine and Jim Coplien with you. It leads us to believe that agile proponents have a different perspective on TDD, which is the one used in this article to define TDD.
youtu.be/KtHQGs3zFAM
I hope everything is clear now.
Cheers.