gecko-dev/docs/code-quality/coding-style/coding_style_java.rst
Sylvestre Ledru f9328d2021 Bug 1613526 - Create a code quality documentation and move the appropriate docs r=ahal
This for a few reasons:
* The summary becomes the landing page for code quality:
  https://firefox-source-docs.mozilla.org/tools/static-analysis/summary.html
* I don't think we need a full code quality category
* Closer to the source-code-doc
* All the files at the same place

Differential Revision: https://phabricator.services.mozilla.com/D61767

--HG--
rename : tools/lint/docs/coding-style/coding_style_java.rst => docs/code-quality/coding-style/coding_style_java.rst
rename : tools/lint/docs/coding-style/coding_style_other.rst => docs/code-quality/coding-style/coding_style_other.rst
rename : tools/lint/docs/coding-style/coding_style_python.rst => docs/code-quality/coding-style/coding_style_python.rst
rename : tools/lint/docs/coding-style/format_cpp_code_with_clang-format.rst => docs/code-quality/coding-style/format_cpp_code_with_clang-format.rst
rename : tools/clang-tidy/docs/summary.rst => docs/code-quality/index.rst
rename : tools/lint/docs/create.rst => docs/code-quality/lint/create.rst
rename : tools/lint/docs/index.rst => docs/code-quality/lint/index.rst
rename : tools/lint/docs/index.rst => docs/code-quality/lint/lint.rst
rename : tools/lint/docs/linters/codespell.rst => docs/code-quality/lint/linters/codespell.rst
rename : tools/lint/docs/linters/cpp-virtual-final.rst => docs/code-quality/lint/linters/cpp-virtual-final.rst
rename : tools/lint/docs/linters/eslint-plugin-mozilla.rst => docs/code-quality/lint/linters/eslint-plugin-mozilla.rst
rename : tools/lint/docs/linters/eslint-plugin-spidermonkey-js.rst => docs/code-quality/lint/linters/eslint-plugin-spidermonkey-js.rst
rename : tools/lint/docs/linters/eslint.rst => docs/code-quality/lint/linters/eslint.rst
rename : tools/lint/docs/linters/file-perm.rst => docs/code-quality/lint/linters/file-perm.rst
rename : tools/lint/docs/linters/file-whitespace.rst => docs/code-quality/lint/linters/file-whitespace.rst
rename : tools/lint/docs/linters/flake8.rst => docs/code-quality/lint/linters/flake8.rst
rename : tools/lint/docs/linters/l10n.rst => docs/code-quality/lint/linters/l10n.rst
rename : tools/lint/docs/linters/license.rst => docs/code-quality/lint/linters/license.rst
rename : tools/lint/docs/linters/lintpref.rst => docs/code-quality/lint/linters/lintpref.rst
rename : tools/lint/docs/linters/mingw-capitalization.rst => docs/code-quality/lint/linters/mingw-capitalization.rst
rename : tools/lint/docs/linters/perfdocs.rst => docs/code-quality/lint/linters/perfdocs.rst
rename : tools/lint/docs/linters/rstlinter.rst => docs/code-quality/lint/linters/rstlinter.rst
rename : tools/lint/docs/linters/rustfmt.rst => docs/code-quality/lint/linters/rustfmt.rst
rename : tools/lint/docs/usage.rst => docs/code-quality/lint/usage.rst
rename : tools/clang-tidy/docs/index.rst => docs/code-quality/static-analysis.rst
extra : moz-landing-system : lando
2020-02-11 09:11:44 +00:00

69 lines
2.4 KiB
ReStructuredText

=================
Java Coding style
=================
- We use the `Java Coding
Style <https://www.oracle.com/technetwork/java/codeconvtoc-136057.html>`__.
Quick summary:
- FirstLetterUpperCase for class names.
- camelCase for method and variable names.
- One declaration per line:
.. code-block:: java
int x, y; // this is BAD!
int a; // split it over
int b; // two lines
- Braces should be placed like so (generally, opening braces on same
line, closing braces on a new line):
.. code-block:: java
public void func(int arg) {
if (arg != 0) {
while (arg > 0) {
arg--;
}
} else {
arg++;
}
}
- Places we differ from the Java coding style:
- Start class variable names with 'm' prefix (e.g.
mSomeClassVariable) and static variables with 's' prefix (e.g.
sSomeStaticVariable)
- ``import`` statements:
- Do not use wildcard imports like \`import java.util.*;\`
- Organize imports by blocks separated by empty line:
org.mozilla.*, android.*, com.*, net.*, org.*, then java.\*
This is basically what Android Studio does by default, except
that we place org.mozilla.\* at the front - please adjust
Settings -> Editor -> Code Style -> Java -> Imports
accordingly.
- Within each import block, alphabetize import names with
uppercase before lowercase. For example, ``com.example.Foo`` is
before ``com.example.bar``
- 4-space indents.
- Spaces, not tabs.
- Don't restrict yourself to 80-character lines. Google's Android
style guide suggests 100-character lines, which is also the
default setting in Android Studio. Java code tends to be long
horizontally, so use appropriate judgement when wrapping. Avoid
deep indents on wrapping. Note that aligning the wrapped part of a
line, with some previous part of the line (rather than just using
a fixed indent), may require shifting the code every time the line
changes, resulting in spurious whitespace changes.
- For additional specifics on Firefox for Android, see the `Coding
Style guide for Firefox on
Android <https://wiki.mozilla.org/Mobile/Fennec/Android#Coding_Style>`__.
- The `Android Coding
Style <https://source.android.com/source/code-style.html>`__ has some
useful guidelines too.