I was recently working in a section of an app that really made me think, "is this good code?". Specifically, in the business logic section there was a single class for a major "functional object", the class was just over 4700 lines of code (with very very little documentation, I would guess less than 1% of the total). Is that bad? Should that be split up over some sort of Object_FunctionalArea.cs type of breakout, or does that muddy the water so to speak? Generally, I feel that keeping classes in a more "manageable" size of less than 1000 lines, and when I start approaching that number, I normally feel that I need to re-visit the architechture of the item.
Along the same lines, running across a SPROC that was just under 500 lines made me cringe. You can assume that this is a single shot line of functionality with almost no chance of re-use. I understand that this happens, but normally something in the DB that is this large, smacks of business logic (that should IMHO be placed in the BLL) that needs to be stripped down, and broken out into smaller functions. I understand that at times, there is no way around this, but that should be the exception, not the rule. I hope that I am not the only person thinking along these lines, but I digress. What are your thoughts?