dev guidelines update

This commit is contained in:
zzz
2015-11-19 17:49:44 +00:00
parent e01ac56d63
commit e343f7dd08

View File

@@ -1,6 +1,6 @@
{% extends "global/layout.html" %}
{% block title %}{{ _('Developer Guidelines and Coding Style') }}{% endblock %}
{% block lastupdated %}{% trans %}October 2015{% endtrans %}{% endblock %}
{% block lastupdated %}{% trans %}November 2015{% endtrans %}{% endblock %}
{% block content %}
<p>{% trans newdevs=site_url('get-involved/guides/new-developers') -%}
Read the <a href="{{ newdevs }}">new developers guide</a> first.
@@ -59,7 +59,7 @@ Ensure that you have the latest monotonerc file in _MTN.
Do not check in on top of untrusted revisions.
{%- endtrans %}</li>
<li>{% trans -%}
Ensure that you pull the latest revision before you check in.
Ensure that you 'mtn pull' and 'mtn update' to the latest revision before you check in and push.
If you inadvertently diverge, merge and push as soon as possible.
Don't routinely make others merge for you.
Yes, we know that monotone says you should push and then merge,
@@ -83,7 +83,8 @@ In some places, the coding style is different.
Use common sense. Emulate the style in the file you are modifying.
{%- endtrans %}</li>
<li>{% trans -%}
New classes and methods require at least brief javadocs. Add @since release-number.
All new public and package-private classes and methods require Javadocs. Add @since release-number.
Javadocs for new private methods are desirable.
{%- endtrans %}</li>
<li>{% trans -%}
Classes in core/ (i2p.jar) and portions of i2ptunnel are part of our official API.
@@ -107,13 +108,27 @@ Be familiar with common Java pitfalls that are caught by findbugs.
Run 'ant findbugs' to learn more.
{%- endtrans %}</li>
<li>{% trans -%}
We require Java 6 to build and run I2P.
Do not use Java 7 classes or methods.
We require Java 7 to build and run I2P.
Do not use Java 8 classes or methods anywhere.
Do not use Java 7 or 8 classes or methods in embedded subsystems (core, router, mstreaming, streaming, i2ptunnel),
as Android and embedded applications require only Java 6.
{%- endtrans %}</li>
<li>{% trans -%}
Explicitly convert between primitive types and classes;
don't rely on autoboxing/unboxing.
{%- endtrans %}</li>
<li>{% trans -%}
Don't use URL. Use URI.
{%- endtrans %}</li>
<li>{% trans -%}
Don't catch Exception. Catch RuntimeException and checked exceptions individually.
{%- endtrans %}</li>
<li>{% trans -%}
Don't use String.getBytes(). Use DataHelper.getUTF8() or DataHelper.getASCII().
{%- endtrans %}</li>
<li>{% trans -%}
Don't use String.split(). Use DataHelper.split().
{%- endtrans %}</li>
</ul>
<h3>{{ _('Licenses') }}</h3>