Стандарты кодирования

Недавно мы начали определять стандарты кодирования. Очень полезно – жаль не сделали этого раньше. Это не займёт много времени, начни с простого и постепенно дополняй. Записывай только то, что может быть понятно не всем, при этом, по возможности, не забудь сослаться на существующие материалы.

У большинства программистов есть свой индивидуальный стиль кодирования. Мелкие детали: как они обрабатывают исключения, как комментируют код, в каких случаях возвращают null и так далее. В одних случаях эти различия не играют особой роли, в других могут привести к серьёзному несоответствию дизайна системы и трудно читаемому коду. Стандарты кодирования – идеальное решение этой проблемы, если они, конечно, регламентируют важные моменты.

Вот небольшая выдержка из наших стандартов кодирования:

  • Вы можете нарушить любое из этих правил, но на то должна быть веская причина и это должно быть задокументировано.

  • По умолчанию используйте стандарты кодирования Sun: http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

  • Ни при каких обстоятельствах не перехватывайте исключения без сохранения полного стека вызовов программы (stack trace), либо повторной генерации исключения (rethrow). Допустимо использование log.debug(), только не потеряйте стек вызовов.

  • Для устранения тесного связывания между классами применяйте внедрение зависимостей на основе сеттеров (Setter Based Injection) (разумеется, за исключением случаев, когда такое связывание просто необходимо).

  • Избегайте аббревиатур. Общеизвестные аббревиатуры, такие как DAO, допустимы.

  • Методы, которые возвращают коллекции или массивы, не должны возвращать null. Возвращайте пустые коллекции и массивы вместо null.