|
OO-Design and UML Training by Allen Holub
The best in-house Object-Oriented-Design and Java training available. www.holub.com |
Goodies
This page references various useful tools: software, diagrams, etc., for the most part created by Allen. A few goodies are available only to subscribers of the mailing list. (These are marked with a
button. Click to subscribe.)
You should also check out the various documents in the
Software and
Articles sections.
Design-Pattern Goodies
[Top]
Holub on Patterns
This page is the main page for Allen's book Holub on Patterns: Learning Design Patterns by Looking at Code. It contains various pattern-related links, and also provides links to the source code from the book: The Game of Life and an Embedded SQL intepreter. You can also purchase a signed copy of the book.OO-Design Goodies
[Top]
An OO Reading List
Unfortunately, no single book can possibly cover OO Design and programming in real depth. Consequently, I've put together a reading list that provides broad coverage of the various topics that compmrise the OO-Design field. The list is not comprehensive; I've tried to list only the best books in a given category. Reading all the books on the list will certainly give you a broad understanding of what OO Design and Programming are all about, however. I'll be tweaking this list periodically.
[Top]
UML Quick Reference
The Unified Modeling Language (UML) has won the OO-design notation wars. It both amalgamates and expands the notations of Booch and Rumbaugh (OMT) in a way that I find pretty useful. This UML Quick Reference summarizes the parts of notation that, in my humble and completely unbiased opinion, are actually useful. I've also included my own extensions and modifications to UML, necessary because the standard occasionally doesn't present ways to do essential things. (Surprisingly, a modified UML is still UMLI think of UML as a nonstandard, since it gives the implementer so much flexibility that you could have two fully compliant implementations that look completely different.)
[Top]
UML Templates for Visio
I've put together Visio templates for the parts of UML that I use most often. (I used them to make the shapes in the quick reference, above.) You can get a copy here.
Java Goodies
[Top]
Java Order-of-Precedence and Hierarchy Charts
When programming, I've found the following charts to be useful:
| Java Order-of-Precedence: | Shows operator precedence and associativity for Java. |
| Swing Hierarchy | A class-hierarchy chart for the Swing Classes. |
| Collection Hierarchy: | A class-hierarchy chart for the Collection and Map classes |
[Top]
Programming Rules of Thumb
This document lists 160-some programming rules of thumb. It is essentially the table of contents for my book Enough Rope to Shoot Yourself in the Foot (McGraw-Hill, 1995). The book was written with C/C++ in mind, but most of the rules apply to programming in general and OO programming in other languages (such as Java) in particular. You should go get the book if you want to see why the rules are what they are and to see detailed explanations for each rule. Bear in mind that all of these are just rules of thumb. There are always exceptions.
Miscellaneous Goodies
[Top]
IBM's Santa Teresa Laboratory
This article,
from IBM Systems Journal,
sumarizes the classic (perhaps the only) formal study done on the development
of office buildings expressly for use by programming teams. It's a must read for anyone
who's putting together office space for programmers to use. It's cited in
Tom Demarco's Classic Book,
Peopleware,
which, along with
The Deadline,
are the two best books on management that I know of.
(The file is a 3.3Mb .pdf file that contains a scanned image of the original article. I didn't run it through an OCR program because IBMs copyright notice requires that the file be distributed "without alteration," but it will take a while to print as a consequence. It's well worth the wait.)
[Top]
Falling Debris
Here's the full Ariane 5 Failure Report from the European equivalent of the NTSB. It describes why the rocket blew up back in the Summer of 1996. To make a long story short: someone forgot to catch an exception thrown in response to a float-to-int-conversion overflow. This report should be required reading for all programmers. It makes abundantly clear why you should care about software design. I stole it from James Gosling's web page, but I've seen it other places as well.
[Top]
Bill Gates, the T-Shirt
Unfortunately, this great T-shirt has been involuntarily removed from production due to pressure from Microsoft lawyers, but here's what it looked like.
[Top]
JavaScript Menu Bar
The menu bar that I'm using in the header is from TwinHelix. This is a great menu implementation---easy to use if you know even a tiny amount of JavaScript, and extremely flexible.
[Top]
Spam Bait (The "Get-Even" Department.)
This link goes to a CGI on the detritus.org website that generates email addresses of known spammers. The "harvester" spiders that search the web for email addresses will find this link, and by visiting it, will not only add their own address to their own mailing lists, but will also add the addresses of thousands of other spammers. The spammers then spam themselves. This doesn't stop the spam, of course, but it does drive up their cost of business and helps overload their servers. Feel free to copy this link to your own web page.
ComputerWorld also has a good list of anti-spam links and strategies.
