- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Sometimes, one should use the preview properly. Correct URL: http://penisland.net
And no, it's not spam.
Admin
Is that morse code at the bottom of the fish-looking one? It almost spells out "S.O.S." in long and short class/module names. Poor thing.
Poor people whose continued employment is contingent upon being able to interact with some or all of this poor thing.
CAPTCHA: ratis. Felis Ratis, is your taxonomic nomenclature... ah, forget it.
Admin
Admin
MY GOD! IT'S FULL OF MODULES!
Admin
Reminds me of some graphs representing neural networks in SNNS (Stuttgart Neural Network Simulator.)
Admin
Who hasn't created a diagram like this?
Admin
It looks more like something the cat would cough up!
Admin
Your image looks like a collection of class diagrams from (possibly) a single assembly, which is a completely different thing from the article, which is a dependency graph for multiple assemblies. I'm not sure which is worse, but they both suck. At least deployment is easier for yours.
Admin
And don't get me started on our deployment process. That's another bag of WTFs entirely.
Admin
Diagrams like that are the kind of garbage that they teach in Business Information Systems classes. Anyone coming from that kind of background has no business being an architect.
Admin
When Rube Goldberg looks at your solution and says, "isn't that a bit much?", you've not come up with something which should be celebrated.
Time to get work refactoring.
Admin
You seem to have quite a bunch of WTFs at hands. Why don't you go and submit some to TDWTF? That is, assuming you haven't already done that.
Admin
Reminds me the hidden dimensions of the string theory.
Admin
Having lots of intra-assembly dependencies is a good thing, though. It means you're using OOP. Just keep the abstractions to a minimum and it should be easily controlled.
Admin
Here's the link to the Dependency Plotter program that was used to create the post's image. http://www.drewnoakes.com/code/dependancyanalyser/
Admin
Admin
Admin
Captcha: plaga. To naprawde jakas plaga :/
Admin
Looks like an Angler Fish
Admin
Admin
Thanks to my superior PHP skills, I was able to simplify your framework to a single function call. You're welcome.
Admin
Bzzt! It's obviously something the cat horked up!
Admin
That looks like the contents of my shorts after giving Cthulhu the hairy eyeball.
Captcha - "genitus" ... I'm still laughing
Admin
Is that by any chance a certain bank's 'Furball'? ;-)
Admin
TRWTF is that the 'helper class' IEnterpriseAuthenticationProviderFactoryManagementFactory (.NET environment assumed) named as being an interface (prefixed with 'I')
Admin
Look at it this way... in some circles this could be considered art.
Admin
That's a relief! I thought I saw a programmer jumping of a bridge.
Admin
That's a relief! I thought I saw a programmer jumping of a bridge.
Admin
IT'S NOT A TOOMA!
Admin
That looks like our database dependency graph (before the tools gave up on drawing it).
Admin
Sorry, but at first sight, this actually looks like a pretty well-organized dependency structure. Don't overestimate the possibilities of mapping out moderately nonplanar graphs onto the 2D plane.
The WTF is in thinking that dependency graphs can be expected to be planar.
Admin
hahahah, you sir, made my day
Admin
It's the script from "Syriana 2"
Admin
Ergonomic spaghetti?
Admin
It's a schooner
You Dumb Bastard. It's not a Schooner... it's a Sailboat!
A schooner is a sailboat, stupid head
Admin
Are you sure that the dependencies don't look bad due to the diagramming tool? Its layout engine may be exacerbating the problem. For instance, something near the bottom is depended on by nearly everything. Is this your logging framework? Or something similar? Maybe just leave it off the diagram. I am not saying that your architecture doesn't need work. Just that this diagram might be overstating the case a little (in my experience they generally make the problem look a lot worse than it really is for any reasonably large system).
Admin
The answer isn't that complicated - but for many, the discipline required is difficult.
I maintain the concept of a 'level' of a library.
Level 0 libraries use no custom dependencies. They frequently have 'core' in their name.
Level 1 libraries can use level 0 libraries, but otherwise cannot use custom dependencies.
You can hopefully see where this is going.
Also note, if you're distributing your libraries for others to use, one should also avoid using any library someone else made that uses your libraries - unless you're going to take the time to incorporate this library into your own set, such that you're maintaining it, treat it as level infinity. Move functionality from that library to your own, if you have the blessing of that library's author. But that author almost certainly won't be tracking your dependencies, and you won't be tracking his/hers, so don't touch it.
Likewise, if one of your dependencies starts using your libraries, drop it like the plague it is.
Most of the times I've initially thought a cyclical dependency would be helpful, I've found there's actually a way to do it better leveraging polymorphism, such that your libraries that would've been depending on each other are depending on the same lower level library.
The rest of the time, further reflection has shown my perceived need was flawed at its conception - not only did I not need a cyclic dependency, but I didn't even need anything that worked like a cyclic dependency.
Note: I'm not claiming that there's never a need: there's a great deal of things I have not seen that do exist. I just haven't seen them. But if you follow a discipline like this, you will at the very least be aware if you're creating a cyclic dependency mess, and will thus most likely create a much smaller problem when you do decide to dip into the dark side.
Also note that I'm not claiming any of the earlier respondents who tried answering this question were wrong, merely that it would be possible to follow their advice and still get off the wrong track without realizing it.
Admin
Very nice!
Admin
link is dead...
Admin
What is a good tool to create these kind of diagrams?
Admin
Ah. Classic spaghetti fortress.
Admin
Oh my lord.