DevDevin

  Home  |   Contact  |   Syndication    |   Login
  104 Posts | 0 Stories | 20 Comments | 33 Trackbacks

News

Archives

Post Categories

Blogworthy

Design Patterns

Recommended Books

This is a huge open-source contribution from Microsoft: http://www.codeplex.com/pubsub.

The Distributed Pub/Sub Event System is a solution for cross-process and/or cross-server scenarios where a large amount of event handshaking is required and low latency is important. Basically, this architecture was designed for speed.

Even if you can't think of a usage scenario for this code-base in your stack right now, I strongly encourage you to just crack open the source and take a look. I personally think the design is a prime example of true software engineering craftmanship, which is simply a thing of beauty.

By the way, I was the one who tested this bad boy before it was released. Therefore, I can't claim rights to the elegant design, but I can claim rights to some of the quality--hopefully not the lack thereof!

 

posted on Friday, July 06, 2007 10:46 AM

Feedback

# re: Open-source Distributed Pub/Sub Event System 7/12/2007 11:09 AM Mark Lindell
Very cool project, but... Documentation is spare and comments in the code are almost non-existent. I would not call the design/code very elegant either. I see functions with >200 lines of code. That is a code smell for me. I see try/catch blocks with no exception handling. (and no comments) WTF? Also, I don't see any unit tests, Yikes!

I still think this is a great open source project and a lot can be learned from it. I just wouldn't characterize the code as "elegant". My $.02.

# re: Open-source Distributed Pub/Sub Event System 7/12/2007 3:00 PM devin
Points well-taken. What I meant by an elegant design was really at the architectural level. I think that it solves the problem with elegance in that regard. If you break it down to the documentation/commenting level then I'd agree that there is much room for improvement. The nice thing, however, is that I think the code reads very cleanly and that is probably why the author decided not to riddle comments throughout. After all, if you read some of the most well-regarded books on the subject many of them say that well-written code becomes self-documenting. The no unit tests part is a good point. I'll have to see whether I can convince someone to put those up as well. They do exist! :) Also, if you see places where there is no exception handling I guarantee you that a bug was logged, a debate ensued, and that an explanation was documented in the tracking system. Sorry that it didn't make it to the production code. Also a function with over 200 lines of code should definitely be subject to scrutiny, but these things are never absolute. I'd be interested to know which function you think needs to be refactored. Last, but not least, this is open source now so feel free to enhance it to your heart's content.

Post Feedback

Title:
Name:
Email: (never displayed)
Url:
Comments: 
Please add 7 and 2 and type the answer here: