Background Image
Table of Contents Table of Contents
Previous Page  63 / 94 Next Page
Information
Show Menu
Previous Page 63 / 94 Next Page
Page Background

Scrum и XP: заметки с передовой

63

Чтобы это всё заработало, пришлось потратить

уйму времени

, но, поверьте мне, это того стоило.

Совместное владение кодом (Collective code ownership)

Мы выступаем за совместное владение кодом, хотя ещё не все наши команды внедрили у себя эту

практику. На собственном опыте мы убедились, что парное программирование и постоянная смена пар

автоматически увеличивают уровень совместного владения кодом. А команды, у которых совместное

владение кодом на высоком уровне, доказали свою высочайшую надёжность. К примеру, они никогда не

проваливают спринты из-за того, что у них кто-то заболел.

Информативное рабочее пространство

У всех команд есть доступ к доскам и незанятым стенам, которыми они действительно пользуются. Во

многих комнатах стены завешаны всякого рода информацией о продукте и проекте. Самая большая проблема

у нас – постоянно накапливающееся старье на стенах. Уже подумываем завести роль "домработницы" в

каждой команде.

Хотя мы и поощряем использование доски задач, еще не все команды внедрили их (см. стр. 43"Как мы

обустроили комнату команды")

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

Недавно мы начали определять стандарты кодирования. Очень полезно – жаль не сделали этого раньше.

Это не займёт много времени, начни с простого и постепенно дополняй. Записывай только то, что может быть

понятно не всем, при этом, по возможности, не забудь сослаться на существующие материалы.

У большинства программистов есть свой индивидуальный стиль кодирования. Мелкие детали: как они

обрабатывают исключения, как комментируют код, в каких случаях возвращают null и так далее. В одних

случаях эти различия не играют особой роли, в других могут привести к серьёзному несоответствию дизайна

системы и трудно читаемому коду. Стандарты кодирования – идеальное решение этой проблемы, если они,

конечно, регламентируют важные моменты.

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

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

быть задокументировано.

По умолчанию используйте стандарты кодирования Sun:

http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Ни при каких обстоятельствах не перехватывайте исключения без сохранения полного стека

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

использование log.debug(), только не потеряйте стек вызовов.

Для устранения тесного связывания между классами применяйте внедрение зависимостей на

основе сеттеров (Setter Based Injection) (разумеется, за исключением случаев, когда такое

связывание просто необходимо).

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

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

пустые коллекции и массивы вместо null.

Устойчивый темп / энергичная работа

Множество книг по Agile-раз аботке программного обеспечения утверждают, что затянувшаяся

переработка ведёт к падению продуктивности.

После некоторых не вполне добровольных экспериментов на эту тему, я могу только согласиться с этим

всем сердцем!