#Considerations when developing and reviewing source code

= Introduction =

Considerations when developing and reviewing source code.

= Philosophy =

# Don't introduce code provisionally. Only insert code that is being used for a purpose. Corollary: Develop using vertical slices, instead of horizontal slices. 
# Each CL does one thing. Don't insert refactorings into functional changes and vice-versa.
# Aim for small CLs. 
# Don't send out "try-things-out" CLs.
# Make CLs direct. eg. no unneccesary indirection eg. put the String constant in instead of having unnecessary finals declared.
# Prefer plain/idiomatic/obvious over clever.
# Name things!     
## make specific exception classes
## don't use "abstract" in class name
## don't use "impl" in class name
## name sub-blocks of code by converting to methods

= Explicitly check these properties of the code =


# Is the code thread safe? Read your code and check whether your code behaves well when multiple methods of an instance are executing simultaneously. Avoid settors to make classes immutable.
# Was equals considered? 
# Was hashCode considered?
# Were exceptions considered? Are exceptions scoped precisely and accurately?
# Was toString considered? toString is helpful for testing and debugging.
# Does the code call exit? Don't call exit as it makes code un-libifable and means shutdown sequenceing is not understood.
# Please provide sufficient tests.
# BufferedImage is TYPE_INT_RGB
# Gui use done with SwingUtilities.invokeLater () so that SwingUtilities.isEventDispatchThread() 
# Usually if a class uses Random, it is parameterizable on Random
# Was use of System.out and System.err considered? It's not a good 
# Watch out for autoboxing and varargs producing undesireable behaviour.
# Consider public and final modifiers on classes and methods.
# Add javadoc
