Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I took over a Perl project where every SQL call was an exec to a java program which would make the query.

The largest madness was a J2EE mess where persistence was achieved by taking your current object, sending a message bean to the server, it would touch the database and return the result which was being polled for (making it synchronous). The amazing thing is that the client and the server were the same J2EE instance. So Class A could have just called Class B. Instead it was A -> turn it into a message bean -> send it to the "server" (same machine) -> unwrap it into A again -> transform it into B -> message bean it back to client -> unwrap into B.

Literally three months of 8 people ripping all of that out and replacing it with A.transform() // returns B

Oh, and at the same time, none of this was in source control. It was being worked on by 12 people up until that point. They didn't know who had the current files which were in production. So my first job was taking everyone's files and seeing which ones would compile into the classes being used in production, then checking those into source control. Up until then, they just kept mental track of who is working on which files.



Reading this gave me a thought, which is that I would like to see a series of artistic renderings of physical analogies for such sorts of Rube-Goldberg-Machine-esque software monstrosities. This one sounds like it'd be an assembly line where in each step of the process, the piece-in-progress would be packaged in a shipping box and sent through the mail C/O the person manning the next station 15 feet away.


Was there a reason they did not use DBI to call the code ?


I had been told he bragged about it being "job security" since nobody could understand what he had written. I never spoke to him directly as I was his replacement...

The java mess was a pattern copied from within the company where it was used correctly. The main product of the company was built around some very complex scheduling software. It was a black box and communication was entirely through inter-server beans. This was copied to intra-server, which makes no sense at all, and it was used everywhere.


"job security" coupled with "I was his replacement" says that his plan worked about as well as his code...


Indeed. It was quite the entry to the company for me as well. "What are you working on?" "Fixing Dave's code." "Good luck."

But my most auspicious entry to a company was where the guy I was replacing had been arrested for stealing data from a competitor. My first two days were spent recovering logs, downloads and other traces of what he had done and handing it over to the lawyers. (the circumstances were not mentioned in the hiring process)


IMHO sometimes it's fine to use messaging within an application that runs on 1 device, purely for decoupling purposes.


"I took over a Perl project where every SQL call was an exec to a java program which would make the query."

and

"Oh, and at the same time, none of this was in source control."

Owwww, that's painful! 12 people spaghetti Perl that did its DB lookups via Java and non of it in source control?

Owwww, owwww, owwww....




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: