surgeventures/surgex

View on GitHub
lib/surgex/guide/guide.ex

Summary

Maintainability
Test Coverage
defmodule Surgex.Guide do
  @moduledoc """
  Official style guide for Elixir and Phoenix projects at Surge Ventures.

  **NOTE: Deprecated in favor of https://github.com/surgeventures/elixir.**

  The rules in this guide aim to provide a consistent, convention-driven coding experience and an
  easily readable, long-term maintainable code as a result. It's divided into the following modules:

  - `Surgex.Guide.CodeStyle`: basic code style and formatting guidelines
  - `Surgex.Guide.SoftwareDesign`: higher level application design and engineering guidelines

  Here's what you can expect from this guide:

  - **Elixir-friendly experience:** rules are written as Elixir functions with `@doc` clauses and
    compiled by ExDoc to a documentation easily browsable by anyone familiar to HexDocs

  - **One-line summary for each rule:** each rule's `@doc` starts with a descriptive one-line
    summary, which is compiled into a clean list of rules (the *Summary* section)

  - **Reasoning for every rule:** it's only fair to make the reasoning behind the rules clear for
    those who use them and leave the door open for discussions and improvements

  - **Examples for every rule:** even for the simplest rules, an examples of proper and inproper use
    are provided in order to make it clear what it's all about in a matter of seconds

  Above all rules, use your common sense to solve every coding situation in a way that's consistent,
  readable and maintainable. Follow your instincts and keep making this guide better in places where
  it lacks.
  """
end