Hi All.
I've just got kicked off this god-awful contract, and it was hell!
Look, I get Interfaces, and I get Generics. I get Inheritance. But dammit, code should be maintainable!!! It's no good rooting around for a couple of hours trying to find where this damn object is getting its behaviour from! What's the bleeding point? And when you have interfaces inheriting off other interfaceS (plural! - I didn't even know you could do that?!) in a non-trivial application can you imagine how difficult it is?
The architect has forms - he calls them `gui`s - inheriting off generic classes, off generic interfaces, and the like:
This is because he has two other layers: he calls them `renderers` and `helpers` which are used to display the `gui`s, because, in his architecture, forms - er, `gui`s - don't know how to display themselves!vb.net Code:
Partial Class Form1 Inherits SomeDamnClassGui(Of T) .... End Class Public Class SomeDamnClassGui(Of ISomeInterface) Inherits Windows.Forms.Form ... End Class Public Interface ISomeInterface Inherits ISomeOtherCottonPikinInterface Sub MustDoThis() End Interface Public Interface ISomeOtherCottonPikinInterface Sub MustDoThat() ReadOnly Property WithThis() As String Property ToThat() As ICollection(Of IYetAnotherDamnInterface) End Interface Public Interface IYetAnotherDamnInterface(Of T) Sub ScreamOutLoud() End Interface
So, the helper goes to a worker, which goes to the data layer, which tells the worker, which tells the helper which tells the renderer which tells the gui how to show itself! And what is meant to be the payback for this convoluted fiasco? Maintainability!!
You got to be kidding me! Maybe I'm a crummy programmer after all, but I couldn't make heads or tails out of this sushi mush. Why not call forms frmThis and frmThat, so that we can tell them apart from ucThis (usercontrolThis) and ucThat; or txtSpecialThis - which even a newbie would immediately suspect is a textbox?
And when I asked the moron, what's the point of this convolution to the database, he said, indirection! WHAT THE HECK DO YOU THINK A DATASET'S FOR??
And bear in mind - I wrote it down - there are 92 projects in this solution, 781 classes and 67 interface code files (there are up to a dozen interfaces in each code file!!!)
Over the weekend, I decided to tell the agent that I wanted out and sent her an email. I called this morning and she said she'd look into it. This afternoon I'm called into the managers office and told to bugger off, because I'm incompetent! I hadn't done this; I hadn't done that! I was more than half again as slow as the next slowest consultant. Yada yada yada!!
Yeah. I'm sure it had nothing to do with me calling the architecture demented!
Or is it just me?
