Ayende @ Rahien

It's a girl

A code base has its own style

Here is an observation, once a code base has reached a certain size, either in time or in size, it usually takes on a style and identity of its own. This is far more than just a coding style that I am talking about. I don't care where you put the braces. I am talking about the repeated patterns that you see over and over in side that code base.

An example would be Castle-inspired projects. You are far more likely to see things named SmartXYZ or IAbcAware, with the usual implications that there are there.

What are the styles that you have noticed?

Comments

Nate Kohari
09/28/2007 12:13 PM by
Nate Kohari

My own code seems to always include type triplets: an interface (IService), the abstract base class (ServiceBase) and the standard implementation (StandardService). Interaction is based on the interface and inheritance is based on the abstract base class.

I don't necessarily like it -- the Base suffix in particular can be obnoxious. :) I just started doing it that way, and it stuck.

Scott Allen
09/28/2007 02:07 PM by
Scott Allen

I'm looking at code now with a string pattern - that's the worse.

i.e.

Session["magic"]

dataSet["magic"]

Cache["magic"]

Everywhere I look, I see string literals.

Francois Tanguay
09/28/2007 02:57 PM by
Francois Tanguay

Definitely,

We come up with conventions such as:

  • FindXYZ methods will return null while GetXYZ methods will throw.

  • TryXYZ will return bool and out value

  • All DTOs are suffixed with the Data keyword.

... and it goes on and on....

Surprisingly, those are never documented although they come through naturally by pairing...

Joe Ocampo
09/28/2007 03:54 PM by
Joe Ocampo

Favorite design pattern syndrome!

Seems the teams really groks one pattern and uses the hell out of it for everything! Not that this is a bad thing but it is funny to see how many XYZstrategy classes there are in the solution.

nichols.mike.s AT gmail.com (Mike Nichols)
09/28/2007 04:34 PM by
nichols.mike.s AT gmail.com (Mike Nichols)

I see alot of this in dealing with presentation problems such as patterns that have worked for deeply nested collections that are written to the view without letting the view have any significant code. For example, I am using Observer alot to stick inside a repeater to deal with collection item presentation from the presentation layer.

I always try to suffix the objects that either are employing a pattern or are parts of a bigger pattern with standard names for these so that I can know how to relate to it.

Comments have been closed on this topic.