HTCondor Project List Archives



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-devel] MyString::GetCStr deprecated



There is so much material to here,  I hardly know where to begin.

What I like about the Joel article is that
class-that-must-not-be-named at least is attempting to tell the truth
about itself.  Whoever named YourInsensitiveString clearly was clearly
on the right track, but think we can do even better.

For starters, why is it "My" string?  Does this mean that nobody wants
to claim responsibility for writing this class?  Perhaps it would be
much more accurate to call it NotMyString to disclaim ownership, or
perhaps NotYourFathersString to indicate that it really doesn't do
what you think it should.  Or, perhaps a Condor Master might indicate
to an apprentice that ThisNotTheStringYouAreLookingFor because you
really should be using C++ strings in new code.

It might add clarity to name classes after their authors, such as
ToddsStringOfQuestionableLength or DougsHashTableOfDespair.  However,
we already know that naming modules gets you into trouble very
quickly, because revision control doesn't work on things not in the
respository.  For example, condor_shadow.jim was dutifully preserved
for years after several Jims had been checked in and out.  There still
remains a condor_starter.V5 and a condor_starter.V6.1 in the
repository.  Five points to anyone who can explain which starter was
used in Condor V6.2.  (It's a trick question.)

Of course, all of these things can be tracked with revision control so
that you know who is perpetrating crimes upon the code.  But, the
savvy developer knows ways to trick "cvs blame" to hide their tracks.
In order of use over the years:

- Check in all code as user "condor" with a comment of "Fixed another
one of Todd's bugs."

- Create a branch, change one line of code in each of one hundred
files, let it languish for nine months so that it is hopelessly out of
sync from the trunk, then throw up your hands and give it to Derek to
do the merge.

- If, despite all your efforts, the repository still records what you
have done, convince the entire time to switch to a *new* version
control system so that the entire checkin history is lost.

Doug  : )


On Tue, Feb 24, 2009 at 2:53 PM, Greg Thain <gthain@xxxxxxxxxxx> wrote:
> Douglas Thain wrote:
>>
>> This article seems relevant to the discussion.
>> See about the third paragraph from the end.
>>
>> http://www.joelonsoftware.com/articles/fog0000000069.html
>>
>>
>
> So, you are suggesting that we rename "MyString" to something worse? :-)
>
> -Greg
>
>
>