Ensure each class,
interface, method, variable,
and object has a clear
purpose.
Completeness
Provide the minimum functionality
that any reasonable user would
expect to find and use. Create
complete documentation
Consistency
Similar entities look,behave the
same; dissimilar entities
look,behave differently. Create
and apply standards
Robustness
Provide predictable documented behavior
in response to errors and exceptions. Do
not hide errors and do not force clients to
detect errors.
Formatting Conventions
Indent nested code
Specify the amount of
space and use of tabs
Break up long lines
Split long expressions
Include white space
not just between lines
Naming conventions
Use meaningful names (Including
constants instead of literals)
Question excessively long names
Join the vowel generation
(don't shorten by taking
vowels out)
Use familiar names
(for the target domain)
Do not use names that
differ only in case
Capitalize only the first
letter in acronyms
package Names
Use the reversed,
lowercase form of your
organization's Internet
domain name as the root
qualifier for your package
names
Use the same name for a new version of
a package, but only if that new version is
still binary compatible with the previous
version, otherwise, use a new name
Use a single, lowercase
word as the root name of
each package
method Names
Use lowercase for the first word and capitalize
only the first letter of each subsequent word
that appears in a method name
Use verbs when naming
methods
Follow the JavaBeans™
conventions for naming property
accessor methods
type Names
Same name for a new version of a
package, but only if that new version is still
binary compatible with the previous version,
otherwise, use a new name
Use nouns when naming
classes
Use nouns or adjectives
when naming interfaces
Pluralize the names of
classes that group related
attributes, static services, or
constants
field Names
Use uppercase letters for
each word and separate each
pair of words with an
underscore when naming
constants
When a constructor or "set" method
assigns a parameter to afield, give that
parameter the same name as the field
variable Names
Use nouns to
name variables
Pluralize the names
of collection
references
Use lowercase for the first word
and capitalize only the first letter of
each word in variable name
Establish and use a set of
standard names for trivial
"throwaway" variables
Other conventions
Documentation
conventions
Programming conventions
Do not repeat statements or
expressions, replace with
methods
Packaging conventions
Basic Tools
Integrated Development Environment
System that combines an editor with
language specific support tools, including
a debugger
Standard basic features are:
Debugger
Code Completion
Automatic Indentation
Syntax highlighting
Complication error highlighting
Automate common tasks
The master should always work:
Updates to working copies
Changes quickly updated to repository
Commit triggers build and test
System largely automated
Build results often promiently
communicated to developers
Revision Control
Manga sharing of code between team etc.
Integration in IDE allows to
see changes made even in
the editor
Going back and forth between revisions
Build systems
Generally powerful scripting
environments, that do other
stuff to.
Automate various tasks related
to building software
"Target"s allow a user to
specify what needs to be
done
Standard systems:
Ant - java
Maven - java project
management
Make - For C/C++ (unix)
Static analyzers
Compilers are designed
to translate software into
executable code
Most languages don't enforce
conventions neither do
compilers.