On Tue, 16 Apr 2013 10:10:13 +0200, Graham Allan <[email protected]> wrote:

API vs Inline comments are a good line to divide across, but I suggest a
different distinction: whether the audience is in your team or not.

The difference between withing and outside of the team can be useless in some contexts. It's ok when there's a carefully build team, with low turnover. But often there's not such a thing, and in this case you should comment for your co-workers as they weren't co-workers. Also consider the case in which a large corporate is partitioned in "islands", where you can talk of a cohese team, but just one per island. Often they deeply differ in knowledge of the technology and processes. Most of the produced software stays inside the original island, but often it "leaks" outside. Even in this case, while in the same corporate, you should comment as it is wasn't the case.

I'm following this thread and reading things that I second, but most of the discussion about commenting depends on details on how the team has been built, maintained, etc... A theme that has not been dealt (unless I've lost something) and that it's very important and hard to manage is the mapping of business rules into code. I see corporates where business rules are very complex (I'm not in the position of analyzing them, because it's not my business, but often they are overcomplex), but at the same time well understood by a restricted bunch of people who are not developers, or anyway are not OO developers. This often get translated into overcomplex code, especially when you need optimizations (people who define business rules usually don't deal with optimization). Optimization is sometimes dealt "internally" by developers, other times by means of ad-hoc slightly changes of the business rules, with the agreement of business people. The result is that you have a sort of hybrid territory, in which you have artifacts that must be directly consumed by developers, but at the same time validated by business people, unfortunately the two groups of people speak different languages. This area is extremely hard to document - in fact, often this stuff is "maintained" by "oral tradition". Sure, you can do a lot to improve things: tests, as usual, are good not only for developing but also to document business rules, and use DSL that can be at the same time consumed by programmers and directly validated by business people, but in the end I expect a good deal of inline comments here.


--
Fabrizio Giudici - Java Architect @ Tidalwave s.a.s.
"We make Java work. Everywhere."
http://tidalwave.it/fabrizio/blog - [email protected]

--
You received this message because you are subscribed to the Google Groups "Java 
Posse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/javaposse?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to