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.