[Lazarus] Circular references and code quality
Martin
lazarus at mfriebe.de
Tue Oct 4 20:53:54 CEST 2011
On 04/10/2011 16:41, Jürgen Hestermann wrote:
> > In other words: It's nicer to work with ten 3000 lines units than
> with one big 30.000 lines unit.
>
> Why that? I would prefer the one unit including everything over having
> multiple files (i.e. when searching for something). If it has no other
> impact than I would always vote for having lesser files instead of
> cluttering all into many files.
This sounds, as if units were to be split at random: Like start a new
unit every 3000 lines... (Well I am exaggerating of course).
What belongs together into one unit, is major part of the design, and
the size of units will be dictated by this. If you let your design being
dictated by fixing the unit size, then you got an issue.
And btw, if the size of a file (not unit) is a problem: include files.
Still you should aim, for keeping as little as possible in a unit. It
will improve code, by making sure, each class, has the minimum
dependencies possible. Intruducing unecesary dependencies, by adding to
much knowledge about other things into a class, is likely to cause
problems at some time.
>
>
> > 2. classes were split instead of using parameterization. Instead of
> adding a parameter to many methods, an abstract class and multiple
> descendants are defined. This almost always duplicates code, but the
> code itself has far less if-then-else blocks. OTOH it can create more
> if-then-else outside the split classes.
>
> Code is much more readable (understandable) when if-then-else blocks
> and no OP-methods (like descendants) are used. You see all relevant
> code in one block and there is no need to gather it from multiple places.
I do disagree. I really do disagree.
In fact, there are man y effort, to reduce "IF" blocks in code. Patterns
like "State" or "visitor" for example.
More information about the Lazarus
mailing list