How To Write Unmaintainable Code
Roll Your Own
©1997-2003 Canadian Mind Products.
You are here : home : Java
Glossary : unmaintainable code : Roll Your own.
You've always wanted to write system level code. Now is your chance. Ignore the
standard libraries and write your own. It will look great on your resumé.
-
Roll Your Own BNF
: Always document your command syntax with your own, unique, undocumented brand
of BNF notation. Never explain the syntax by providing a suite of annotated
sample valid and invalid commands. That would demonstrate a complete lack of
academic rigour. Railway diagrams are almost as gauche. Make sure there is no
obvious way of telling a terminal symbol (something you would actually type)
from an intermediate one -- something that represents a phrase in the syntax.
Never use typeface, colour, caps, or any other visual clues to help the reader
distinguish the two. Use the exact same punctuation glyphs in your BNF notation
that you use in the command language itself, so the reader can never tell if a (...),
[...], {...} or "..." is something you actually type as part of the
command, or is intended to give clues about which syntax elements are obligatory,
repeatable or optional in your BNF notation. After all, if they are too stupid
to figure out your variant of BNF, they have no business using your program.
-
Roll Your Own Allocator
: Everyone knows that debugging your dynamic storage is complicated and time
consuming. Instead of making sure each class has no storage leaks, reinvent
your own storage allocator. It just mallocs space out of a big arena. Instead
of freeing storage, force your users to periodically perform a system reset
that clears the heap. There's only a few things the system needs to keep track
of across resets -- lots easier than plugging all the storage leaks; and so long
as the users remember to periodically reset the system, they'll never run out
of heap space. Imagine them trying to change this strategy once deployed!
You can get an updated copy of this page from http://mindprod.com/unmainrollyourown.html