on 7/30/02 2:17 PM, Charles Yeomans at yeomans at desuetude dot com wrote:
>>> Perhaps you need to consider refactoring your code so that it's easier
>>> to understand and trace. But I've probably I've never written a really
>>> big, complex application like yours.
>> Ya but then that gets confusing. I have hundreds of methods and having
>> hundreds more doesn't make things easier.
>
> No; the purpose of refactoring is to make things clearer and easier.
> Short methods are easier to maintain and debug.
Well, finding/tracking that method would be a problem if you have tons of
them. Some method are long, some are short. You just don't understand my
code, they need to be long and cannot be put into smaller methods. I try my
best to make as many methods possible as I already have trouble searching
for methods.
> You should keep saying it until you understand. As Joe Strout has said,
> most assertion failures mean that memory has been clobbered. This is a
> bad thing; it means that the app is in an unpredictable, unstable state
> and should be terminated. It should not be raising exceptions or doing
> much else.
I know that it is an unstable state, but I don't care as it shows me the
area the error occurred. The purpose is to show you the place that occurred,
so you can fix it. It's hosed anyways, why not show you where the error
occurred? Just as long as it shows you the area, crashing doesn't bother me
much as RB crashes 20 times a day.
Keep in mind what Tomas said:
A failed assertion can happen because of anything
where the RS programmers thought that this should not happen. That
does not always mean that the app is hosed. In fact, it's even
possible that the assertion is in error and that everything is
fine.
An Assertion error is just a verification failure that a human has
explicitly coded. Nothing magical about it.
> It would be nice if RB offered more debugging capability. Until it
> does, we have to add it ourselves in order to write reliable software.
Well it shouldn't and doesn't have to be if they add this exception. Most of
my assertion failures are errors in my code not because RB is hosed. I found
one that is just a TB call (it doesn't even crash) not anything with RB.
|