Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
android Break up style guide by language/framework
backbone Break up style guide by language/framework
coffeescript Break up style guide by language/framework
ember Prefer components over partials
erb Break up style guide by language/framework
git Drop the branch prefix requirement
haskell Guidelines for formatting Haskell pragmas
html Break up style guide by language/framework
javascript Add JavaScript style guide
objective_c
python Break up style guide by language/framework
rails Do not put timestamps at the bottom of a migration
ruby Avoid `class A::B` definitions
sass Remove HTML tag and @extend from SCSS example
shell Break up style guide by language/framework
swift [Swift] Add guidelines for computed properties
testing Expand on why let should be avoided
README.md Add case for method definitions over 80 characters

README.md

Style

A guide for programming in style.

Use Hound to automatically review your GitHub pull requests for style guide violations.

In addition to the general guidelines below, we also have the following more detailed, language/framework-specific style guides:

Formatting

  • Avoid inline comments.
  • Break long lines after 80 characters.
  • Delete trailing whitespace.
  • Don't include spaces after (, [ or before ], ).
  • Don't misspell.
  • Don't vertically align tokens on consecutive lines.
  • If you break up an argument list, keep the arguments on their own lines and closing parenthesis on its own line. Example 1 Example 2
  • If you break up a hash, keep the elements on their own lines and closing curly brace on its own line.
  • Indent continued lines two spaces.
  • Indent private methods equal to public methods.
  • If you break up a chain of method invocations, keep each method invocation on its own line. Place the . at the end of each line, except the last. Example.
  • Use 2 space indentation (no tabs).
  • Use an empty line between methods.
  • Use empty lines around multi-line blocks.
  • Use spaces around operators, except for unary operators, such as !.
  • Use spaces after commas, after colons and semicolons, around { and before }.
  • Use Unix-style line endings.
  • Use uppercase for SQL key words and lowercase for SQL identifiers.

Naming

  • Avoid abbreviations.
  • Avoid object types in names (user_array, email_method CalculatorClass, ReportModule).
  • Prefer naming classes after domain concepts rather than patterns they implement (e.g. Guest vs NullUser, CachedRequest vs RequestDecorator).
  • Name the enumeration parameter the singular of the collection.
  • Name variables created by a factory after the factory (user_factory creates user).
  • Name variables, methods, and classes to reveal intent.
  • Treat acronyms as words in names (XmlHttpRequest not XMLHTTPRequest), even if the acronym is the entire name (class Html not class HTML).
  • Suffix variables holding a factory with _factory (user_factory).

Organization

  • Order methods so that caller methods are earlier in the file than the methods they call.
  • Order methods so that methods are as close as possible to other methods they call.
Something went wrong with that request. Please try again.