Monday, January 25, 2010
Maxim 5: No queue should be allowed to grow without bound
All queues in your system must have a finite bound on their length, otherwise you risk consuming all memory available to your process and crashing. It's not just queues that should not be allowed to grow without bound, but also all resources including strings, should have an upper bound. Setting the upper bound is sometimes a delicate business, but set it must be.
Maxim 4: Webservice client should keep a query log
Webservice client libraries should maintain a log of every service call they made, the time it took to make the call, the success code of the call, the number of retries, backoff, the error code if there was one.
It goes then without saying that Webservice server library should also keep a service log of all the calls they recieved, error codes, time to service etc.
It goes then without saying that Webservice server library should also keep a service log of all the calls they recieved, error codes, time to service etc.
Maxim 3: The default build should build your library and nothing else
You default build target should build the minimal project artifact, e.g. jar, .deb, .so. It should not run fortify, findbugs, unit tests etc. Leave a target called all for that. Let the continuous build system build those targets, don't bother humans with them.
Saturday, January 23, 2010
Maxim 2: Encrypt sequence numbers
Don't hand out sequence numbers to your clients. Instead hand out encrypted versions of the sequence numbers if you must give them a sequence number.
Friday, January 22, 2010
Maxim 1: Zero pad numbers in strings
If you store a number in a file name or any string really, then zero pad it. Why? Because some system will want to sort it alphabetically and well if you don't zero pad it then your numbers will not be in order.
Subscribe to:
Posts (Atom)