Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
9.23 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

504m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Глава 20. Рецензия на отстрелClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Глава 19. Спецификации

При рецензировании код сравнивается со спецификацией. Специ% фикации тоже требуют тщательного рецензирования.

Контрольный список

Во многих процессах рецензирования участвует контрольный список – набор характеристик хорошего (удовлетворительного) кода, наличие которых нужно проверить. Если код не отвечает этим критериям, зна% чит, он не прошел рецензирование. Списки различаются в деталях, объеме и предметной области.

На следующей странице представлен пример такого списка. Он может быть вам полезен при рецензировании. В отличие от существующих спи% сков, в нем нет систематического перечисления всех проблем, которые могут возникнуть во всех языках; он просто помогает направить процесс рецензирования и определить, когда перейти к следующему этапу.

Контрольные вопросы

Подробное обсуждение этих вопросов можно найти в разделе «Ответы и обсуждение» на стр. 675.

Вопросы для размышления

1.Почему программы пишут командами? В чем преимущества отно% сительно самостоятельной разработки?

2.Зависит ли количество рецензентов от объема рецензируемого кода?

3.Какие инструменты полезны при рецензировании кода?

4.Когда нужно рецензировать код – до или после обработки утилита% ми проверки исходного кода?

5.Какая подготовка нужна перед совещанием по рецензированию?

6.Как отличить замечания рецензентов, которые нужно реализовать сразу, от тех, которые нужно взять на заметку для следующего про% екта?

7.Как провести виртуальное совещание по рецензированию?

8.Насколько полезны неформальные рецензии кода?

Вопросы личного характера

1.Подвергается ли рецензированию код в вашем проекте? Достаточ# но ли проводится рецензирований?

2.Есть ли у вас программисты, чей код считается выше того, чтобы быть рецензируемым?

3.Какой процент вашего кода когда%либо проходил рецензирование?

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

Контрольныеm

вопросы

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

505Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рецензирование кода

Контрольный список

Эта форма поможет вам рецензировать код.

 

 

 

 

 

О коде

Кто рецензировал:

 

 

Имя модуля:

 

 

Дата:

 

 

Версия:

 

 

Язык:

 

 

Автор:

 

 

Количество файлов:

 

 

Автоматизированная проверка

Код компилируется без ошибок

Код компилируется без предупреждений

Существуют тесты блоков

Тестов достаточно (есть граничные случаи и т. п.) Код проходит тесты

Проект

Код полный (относительно спецификации)

Выбор алгоритмов хороший

Оптимизация необходима и уместна Отсутствие функций ясно помечено в коде

Общие замечания о коде

Стиль

Структура кода понятна

Соответствует правилам проекта

Есть хороший открытый API Имена выбраны хорошо

Защитное программирование

Доступ к массивам защищен (С/С++)

Типы выбраны правильно

Все входные данные проверяются Особенности компилятора не используются

Общие комментарии

Код хранится в системе контроля версий Код прошел тестирование с помощью средств:

 

Название средства

 

Результаты

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Перейти к след. разделу

 

Прекратить рецензирование

 

 

 

 

 

Общие замечания о структуре кода

Код хорошо структурирован

Есть проектная документация Код соответствует документации

Перейти к след. разделу

Прекратить рецензирование

Общие замечания о качестве кода

 

Обработка ошибок

Ошибки регулярно проверяются

Логика проверяется операторами assert

Исключения проверяются

Ошибки распространяются, не скрываются Утечки ресурсов нет

Существует многопоточность

Потоки безопасны Взаимоблокировки исключены

Структура

Избыточности в коде нет Дублирования кода нет

Перейти к след. разделу

Прекратить рецензирование

 

 

Обзор на уровне команд

 

 

Заполните таблицу, оценив проблемы

 

 

 

 

 

 

 

 

от 0 (косметические изменения) до 5 (нужно исправить) баллов

Файл

Строка Проблема

 

 

 

 

 

 

Серьезность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

Записать результат рецензирования

Вывод:

Работу выполнить к (дата):

Код хороший

 

 

Доработать и проверить

Назначен проверяющий:

 

Доработать и снова рецензировать

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha