This is in no way a comprehensive discussion on Java and OO Best
Practices. This is a subset of the knowledge we pass around with each
other. All of this is subject to programmer opinion and there’s a lot
more that needs to be learned.
- duplicate code
Have you ever copy-pasted your code?
Follow the “Once and Only Once” rrule.
- accessible fields
Tight coupling, corruptible, inflexible.
Should have accessors and mutators.
Problems with threading.
- large class
A class should only be doing one thing. Follow the “one
- large method
– using magic literals
– unnecessary class/instance variables
If it’s only used in one method, make it local
- Initializing strings with “new”
– Using floats and doubles for currency calculations
– Returning null
– Subclassing for functionality
– Muffling exceptions
– Unexceptional exceptions
– Excessive use of switches
– Middle man: methods that just delegate to other classes. Case of over-design.
– validate your parameters
– abstract or final
– create local copies to prevent corruption (hmm… good for multithreading, but heck slow)
– String, string buffer
– favor immutability (now, there’s a thought…)
Note to self: should have webcam-based project that tracks red laser pointer.