cross-post from bbv blog
When software projects grow both in age and size the developers often struggle with the structure of the code. It gets more and more difficult to find the class you have to change for a new requirement. In this post, I’ll show you how we organize our code and how we derive our structure directly from the requirements.

.NET, Agile, Architecture, Clean Code, Methodology, Test Driven Development
Agile, Architecture, Clean Code, TDD
Some time ago, Patrick Smacchia (NDepend lead developer) offered me a NDepend Pro license to play around. NDepend is a tool providing a lot of features. The feature that impressed me from the very start is visualizing dependencies. Not just dependencies from classes to classes, or assemblies to assemblies; no from everything to everything. Like for example all assemblies that use somewhere the method Foo of class Bar. It works for assemblies, namespaces, types, methods and fields.
But, what’s all this fuss about?
Keeping a code base and its design as simple as possible over a long period of time is very difficult. It happens just too quickly that we loose the overview of how things are sticked together. And this is the moment when NDepend with its quick and easy dependency visualization comes to the rescue.

.NET, Clean Code, Software, Why I like ...
Clean Code, NDepend
This is the start of a series of posts about Clean Code. I’m going to pick some topics from my cheat sheets about Clean Code and Clean Test Driven Development and explain them in more details.
Today’s topic is
Nested code should be more specific or handle less probable scenarios than unnested code.

Clean Code
Clean Code
Updated: new version available!
I have compiled two cheat sheets about clean code (the ones mentioned in my post about Code Quality!).
The first covers clean code – code that is easy readable and keeps changeable. The second is about Test Driven Development. Both cheat sheets list principles, patterns, practices and smells.
You can download them here – Clean Code Cheat Sheet V1.3, Clean TDD Cheat Sheet V1.2.
Take a look!
I’d like to read your feedback in the comments section…

(just an unreadable preview
– click on link in text above)
.NET, Agile, Test Driven Development
.NET, Architecture, Clean Code, Design, TDD, Test Driven Development, unit testing
I’m going to speak about code quality (see my short version of the presentation) at the conference BASTA!
BASTA! is mainly focused on .NET technology and gives you the opportunity to see and speak with a wide range of technology experts.
If you have any feedback of what you are missing in my short presentation, please write a comment here or on the post with the presentation. The short version takes about 30 minutes and my speak at BASTA! is scheduled for 1 hour and 15 minutes. I will mainly show real life examples of the theory shown in the short version. But if you want to here something specific, ask for it
I’ll probably will publish the long version on this blog, too – for all of you not joining the conference.
So long…
.NET, Agile, Announcement
.NET, Agile, Clean Code, Conference, Test Driven Development
Yesterday, I found an interesting page (in German) describing some of the most important patterns and practices in software development: http://www.clean-code-developer.de/
Although I’m not a fan of wrist bands (see the linked page to see for yourself), I like the page for its short description of patterns and practices like:
- Don’t repeat yourself
- keep it simple stupid
- single responsibility pattern
- separation of concerns
- interface segregation principle
- dependency injection principle
- Liskov substitution principle
- open close principle
- law of Demeter
- principle of least astonishment
- you ain’t gonna need it
- use a version control system
- issue tracking
- continuous integration
- automated tests
- mocking
- code coverage
- test first
- reviews
- and some more

Architecture, Software
Architecture, Clean Code, Design, Development, Patterns, Practices