#summary Considerations when developing and reviewing source code.

= Sweeping Guidelines =

  # 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 and concrete.
    * no unneccesary indirection; keep hierarchies shallow
    * put String constants directly in code 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


= Particular considerations =


  # 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? Be very selective about putting information on these channels. Quite possibly never use them for communicating information.
  # Watch out for autoboxing and varargs producing undesireable behaviour.
  # Consider public and final modifiers on classes and methods.
  # Add javadoc