BAY AREA SCALA ENTHUSIASTS
              WELCOME TO TWITTER!
  HELP YOURSELF TO BEER AND SUCH IN THE KITCHEN.
ROBEY
                    STEVE




        ALEX

               TWITTER’S SCALA HEADS
STYLE GUIDELINES
IMPORTS

ENUMERATE ALL         ALL IMPORTS MUST BE
IMPORTS               AT THE TOP OF THE
                      FILE
 USE WILDCARDS FOR
 MORE THAN SIX

 USE BRACE NOTATION
 FOR MULTIPLE ITEMS
 IN A PACKAGE

 AVOID “RELATIVE”
 IMPORTS
IMPLICITS



AVOID THEM!

THEY MAKE DEBUGGING CONFUSING

DOCUMENT THOROUGHLY IF YOU HAVE TO USE THEM

RESTRICT TO THE SMALLEST POSSIBLE SCOPE
REFLECTION (JAVA)



AVOID IT!

SLOW

POTENTIALLY CONFUSING
COMMENTS


MANDATORY

VSCALADOC

SCALADOC EVERY CLASS AND NON-TRIVIAL METHOD

WRITE IN PASSIVE VOICE, EX:

  “RETURNS A LIST[STATUS] OF 20 STATUSES FOR THE
  GIVEN USER.”
WHITESPACE



2 SPACES, NO TABS

NO TRAILING WHITESPACE

KEEP LINES TO 100 COLUMNS MAX
LOGGING



USE ONLY JAVA.UTIL.LOGGING.LOGGER

NOTHING GOES TO STDOUT/STDERR

NAME THE LOGGING OBJECT/VARIABLE “LOG”
PROJECT LAYOUT



MAVEN CONVENTIONS FOR DIRECTORY STRUCTURE, EX:

  SRC/[MAIN|TEST]/[SCALA|JAVA]/COM/TWITTER/FOO

DEPLOY JARS

USE ANT + IVY AS THE BUILD SYSTEM
VARIABLE NOMENCLATURE



DON’T EXCESSIVELY ABBREVIATE VARIABLE NAMES

  IT’S OKAY TO USE I, J, K, ETC. FOR INDICES

USE “RV” FOR TEMPORARY RETURN VALUES
THANKS FOR COMING!

TwitterOct2008.pdf