May 2007 Archives
Even if you are not into .NET, WinForms etc. this series by Jeremy D. Miller is a great one to follow. Posts so far:
- Preamble
- The Humble Dialog Box
- Supervising Controller
- Passive View
- Presentation Model
- View to Presenter Communication
- Answering some questions
- What's the Model?
- Assigning Responsibilities in a Model View Presenter Architecture
- Domain Centric Validation with the Notification Pattern
- Unit Testing the UI with NUnitForms
- Event Aggregator
Plus, as a bonus, you will notice that Jeremy is not afraid of using really long function names:
void CloseTheScreenWhenTheScreenIsDirtyAndTheUserDecidesNOTToDiscardTheChanges()
And I'm mentioning this not to make fun of Jeremy.
Jeff Atwood: Programming Tip: Learn a Graphics Editor.
Erkan Yilmaz tagged me with a few questions regarding testing. However, I'm not a tester, I just happen to be interested in some areas of testing, e.g. unit testing & test-first-coding.
Could you tell something about your first tests?
I started getting interested in unit testing in the late 90s when XP came up. Still not 100% sure about where unit testing ends and acceptance testing begins.
What would you like to highlight as an important thing of testing - from your personal experiences?
As far as unit testing & test-first-coding is concerned, the most important aspect is "Just doin' it even if you think you can't do it".
Why is testing not trivial?
Testing is always hard for a software developer because his/her brain knows about the inner workings of the code and therefore it requires an enormous amount of discipline to thoroughly test the code.
Test-first-coding is hard because it requires to change your mind set from testing as an afterthought to testing before you start coding.
What do you do after testing at work?
Coding :-)
How do you think testing will evolve in the next 13 years?
Most of the kind of testing I'm interested in very much depends on the way the code is structured. So I would guess that the most interesting things will happen round tools & patterns which enable testable code.