Такие правила приняты в нашей компании. Они позволяют делать код более читаемым и аккуратным, избегать ошибок, связанных с разными стилями написания кода у людей, работающих над проектом, и в будущем легко редактировать его.

Имена файлов, пакетов

  • В именах пакетов используются только строчные буквы.
  • Имена Java-классам даются согласно стандартной нотации Java.
  • Имена классов должны быть существительными, первые буквы всех слов — заглавные.
  • В именах web-папок и файлов используются только строчные буквы. Слова в многословных названиях разделяются подчеркиванием.

Имена методов, переменных

  • Названия методов должны быть глаголами, первая буква должна быть строчной, первые буквы внутренних слов — заглавные.
  • Имена переменных должны начинаться со строчной буквы, внутренние слова — с заглавной.
  • Имена констант составляются из всех заглавных букв, разделенных на слова символом подчеркивания.

Отступы, длина строки, переносы строк

  • Отступы должны составлять строго 4 пробела (не знак табуляции).
  • Длина строки не должна превышать 80 символов.
  • Если длина выражения превышает длину строки, то необходимо разбить его на несколько строк согласно следующим правилам:
    1. перенос после запятой;
    2. перенос перед оператором;
    3. необходимо использовать отступ 8 пробелов для обозначения второй строки разделенного выражения. Последующие строки выравниваются по второй строке либо добавляются новые 8 пробелов для обозначения вложенности.
      int result = function1(longExpression1,
         function2(longExpression2,
         longExpression3));

Расположение блоков, операторов, пробелы, скобки

  • Определение переменных нужно располагать в начале блока, а не «ждать» первого использования переменной. Инициализация должна производиться, по возможности, сразу.
    void myMethod() {
        int count = 0; // beginning of method block
        if (condition) {
            int int2; // beginning of "if" block
            ...
        }
    }
  • Между именем метода и скобками для списка параметров нет пробела.
    getStaffList(String name)
  • Параметры разделяются пробелом.
    getStaffList(String name, int count)
  • Пробелы окружают любой оператор.
  • res = getCount();
    (a > 10) ? b : c;
  • Ключевое слово и следующая за ним скобка ( должны разделяться пробелом.
    while (b < 100){
        …
    }
  • Открывающаяся скобка { располагается на той же строке, что и сигнатура метода/заголовок if, while-блока и т.п.
  • Закрывающаяся скобка } выровнена по строке начала данного блока.
    public Collection getStaffList(String name) {
        Collection contacts = Contact.getList(name, RoleHelper.ROLE_AGENT, null,
        AccessLevel.getStaffDiaryEditLevel(), 0, MAX_NUMBER);
        return ListHelper.getLabelValueList(contacts);
    }
  • Методы разделяются пустой строкой, объявления свойств класса располагаются по одному на строку.
  • На строке располагается только один оператор.
    if (b) {
        return result;
    }

Структурирование кода

  • Методы должны быть короткими, и выполнять только одну задачу (к примеру, почти любой цикл уже достоин того, чтобы вынести его в особый метод).
  • Имена методов должны быть самодокументированными.
  • Шаблоны ООП должны применяться для структурирования и облегчения восприятия.

Стандарт разработан на основе “Code Conventions for the Java Programming Language” by Sun (http://java.sun.com/docs/codeconv/) с учетом принятых в коллективе практик.

 

Читать далее

Как мы работаем

Гибким графиком ИТшников не удивить. В последние годы все больше крупных фирм предпочитают плавающий график работы фиксированному. Безусловно, очень удобно добираться на работу и с работы не в час пик, не тратя безумное количество времени и сил на дорогу, иметь возможность синхронизировать график работы со второй половиной… Мы в этом вопросе не являемся исключением. Гибкость […]

ЛАР улетел в трубу

Начнем, пожалуй, с главного — покажем короткое промо-видео, которое Google «скреативил» по нашему заказу , а затем расскажем, как это было. Кстати, добавляйтесь в круги команды ЛАР в Google+, ну или подписывайтесь на страницу в Facebook, как вам удобнее. Все мероприятие проходило в «Аэро» (стрелковый клуб «Медведь»), именно там с недавних пор стоит аэротруба. С информацией о стоимости, отзывами от […]