Skip to content

Latest commit

 

History

History
90 lines (61 loc) · 4.37 KB

Java.md

File metadata and controls

90 lines (61 loc) · 4.37 KB

Руководство по оформлению Java-кода

Содержание:

  • Пакеты
    • Правила именования пакетов
      • Согласованность чисел в именах пакетов
  • Классы
    • Тестирование классов
  • Константы
  • Комментарии

Пакеты

Для предназначены пакеты? Каждый пакет предназначен для описания какой-то конкретно функциональности.

Например, есть проект поисковой системы. Что значит поисковая система? Что значит написать поисковую систему? Это значит, что нужно написать:

  • парсер,
  • сканирование веб-сайтов,
  • получение доменных имён сайтов,
  • получение их ссылок,
  • система оценки того или иного ресурса или каждой страницы по отдельности.

По оценке это отдельная функциональность, по сканированию это другая функциональность и т.д.

Правила именования пакетов

Согласованность чисел в именах пакетов

Не рекомендуется:

  • com.github.gusenov.java.controllers
  • com.github.gusenov.java.dao
  • com.github.gusenov.java.dao.accessors
  • com.github.gusenov.java.dao.impl
  • com.github.gusenov.java.model
  • com.github.gusenov.java.services
  • com.github.gusenov.java.utils
  • com.github.gusenov.java.helpers

services и controllers написаны во множественном числе. model написан не во множественном числе.

Или они все должны быть написаны во множественном числе (что собственно и нужно, чтобы так было) или же все должны быть написаны в единственном числе, но это уже будет некорректное название.

Рекомендуется:

  • com.github.gusenov.java.controllers
  • com.github.gusenov.java.dao
  • com.github.gusenov.java.dao.accessors
  • com.github.gusenov.java.dao.impl
  • com.github.gusenov.java.models
  • com.github.gusenov.java.services
  • com.github.gusenov.java.utils
  • com.github.gusenov.java.helpers

Классы

Каждое название класса должно отвечать само за себя. Для чего оно предназначено.

Тестирование классов

Класс обычно представляет собой существительное, это модель некой концепции. В отличии от класса, метод моделирует некое действие. Поэтому test добавляется к имени классов как суффикс и к имени методов как префикс.

Не рекомендуется:

  • TestMyClass.java

Рекомендуется:

  • MyClassTest.java // потому что the MyClass test
    • testCalculate() // потому что test [the] calculate [method]

Константы

Констант в коде не должно быть. Их необходимо выносить из кода.

Комментарии

В коде не должно быть вообще комментариев. Комментарии могут быть в каких-то местах очень сложно алгоритмических. Если же в коде написано множество коментариев это говорит о том, что он непонятный. Комментарии засоряют исходный код и он становится менее читабельным. Код должен быть написан таким образом, чтобы он был легко читаемым.

Список использованных источник