First Pass Completed: Rough Draft TDD Demonstration Videos 131
As promised, I’ve made a complete sweep through a series of videos. You can find all of them: here.
These videos include several warts and false starts. Depending on the interest and feedback, I’ll redo these at some point in the future.
Question: Should I repeat this series in C#, or some other language? Some people have expressed interest in this. It’s probably 15 hours of work in C#, so I’d need to know it was worth the effort. What’s your opinion on that?
Some Rough Draft TDD Demonstration Videos 203
I’m doing a series of videos on TDD. The ultimate result will be a much more polished version with embedded slides, and such. But as a part of the development process, I’m creating scratch videos.
Much of what you see in these videos will be in the final versions, but those are far in the future relative to this work.
Hope you find them interesting.
Comments welcome.
Here is what is already available:- Getting started
- Adding Operators
- Removing violation of Open/Closed principle
- Removing duplication in operations with a combination of the Strategy pattern and the Template Method pattern
- Adding new operators after the removal of duplication.
- Reducing coupling by using the Abstract Factory pattern, Dependency Inversion and Dependency Injection
- Adding a few more operations
- Allowing the creation of complex “programs” or “macros” by using the Composite pattern – and avoiding Liskov Substitution Principle inherent in the GoF version of the pattern
- Driving the calculator via FitNesse + Slim
Anyway, that’s the plan. I’ll try to add each of these videos over the next few weeks.
Injecting Those Dependencies 171
Last week I was teaching a class with a good group of C++ developers in Chicago. They were up on C++, current standardization efforts, virtual machines, performance analysis and tuning. At one point I mentioned a metric for virtual method dispatch on the JVM and one of the students used my numbers to work backwards to determine the number of instructions on different processors.
I was teaching our Working Effectively with Legacy Code class. Michael Feathers usually teaches this class, but he was busy (probably working with legacy code somewhere, which, ironically, is why he wrote the book – to solve the problem once and for all and to stop working with legacy code).
Developer Certification WTF? 571
Watch the following video. It will convince you that we have to do something about the horrible state of software engineering.
Bad Code from unclebob on Vimeo.
How could any team of disciplined professionals have produced a wretched mess like that? Clearly they were ignorant of good practices. Clearly they were inexperienced novices. Clearly their priorities and values were all wrong. If only they had been taught good coding practices, and good development skills. If only we could have gotten to them before they made such a horrible mess.
What we need to do is create a certification program that provides developers with the knowledge and skills that they need. This program will involve a course that teaches good development practice, and a certification that they are now knowledgeable developers. They can use that certification to prove to their employers and their fellow professionals that they are worthy of being considered true and clean software developers.
That’s what we need. Right?....
One way to configure FitNesse for team Development 510
Here are some notes (and instructions) on a way to configure FitNesse for use in a team environment: Page Hierarchy For Team Development.
Comments and suggestions welcome.
Updated ConTest Instructions 80
Just updated the instructions for using ConTest – a tool to assist in testing concurrent applications for Java. Check them out here: ConTest Instructions
DotNet Development Using Parallels Is No Longer Painful 204
Because of the travel involved with being an Object Mentor, my main computer is my laptop, a MacBookPro. I have to be able to work wherever I happen to be, whether I’m at home, at Object Mentor Galactic Headquarters, or in a plane, train, or automobile. We’re allowed to buy whatever we want, and we all have independently settled on Macs, running OS X. I’ve developed on lots of different platforms over the years, but I find that OS X is the most productive development environment that I’ve ever used.
Getting Started in Objective-C with XCode 237
As I mentioned in a previous previous blog, I wrote up some notes on getting started practicing TDD using XCode and Objective-C. I’m intending to write a bit more, so the top level of the overall tutorial path starts here: A First Objective-C Project
If you just want to see the details of getting started: XCodeProjectSetup
The biggest change from the previous blog is an embedded video demonstration. If you’re just interested in the video: Getting started
Want to seem more? Something in particular? Let me know.
Comments welcome.
Is TDD Language Neutral? 119
I don’t think that it makes sense to say “teach a TDD class in several languages simultaneously”. TDD is a language-independent technique.
What follows is a slightly changed version of my response. What I’m wondering is this: Do you think the practice of TDD is fundamentally impacted by your programming language?
Read on for my response. You might want to add a comment before reading my response to avoid “group think.”
Rudimentary TDD with XCode and Objective-C 170
- Java
- JavaScript
- C++
- Objective-C