Ревизия кода на 01.04.2006: Инспектор: Игорь Зиновик Файл: attr_description.c - не запускался скрипт форматирования - строка 4: спустить db.h ниже и прокомментировать - строка 13: массив структур g_attr_description не инициализирован - строка 18: нет описания add_rec_to_array - строка 50: сложно СРАЗУ заметить изменяется ли счётчик i, сложное выражение - строка 64: выражение ( attr_num <= 0 ) || ( attr_num > range ), лучше выглядит так (attr_num <= 0) || (range < attr_num) - аргументы оператора return не взяты в скобки Файл: build_index.c - нет стандартной шапки (автор, описание файла) - строка 6: нет поясняющего комментария к функции build_index - строка 6: тип возвращаемого значения на одной строке с функцией - аргументы оператора return не взяты в скобки Файл: common_db_function.c - строка 10: FIXME не исправлен - строка 62: FIXME не исправлен - строка 56, 59: нет пустой строки после break - строка 95-160: имя для переменой i может быть лучше, например attr_index или attribute_idx - строка 109: функция - строка 165: нет поясняющего комментария к функции universal_key_extractor функция не реализованна - строка 172: нет поясняющего комментария к функции close_databases - дескрипторы баз данных могут оставаться открытыми при неудачном завершении функции open_databases смотри строки 109, 117, 138 - аргументы оператора return не взяты в скобки Файл: filtrate.c - нет стандартной шапки (автор, описание файла) - строка 8: нет поясняющего комментария к функции filtrate - аргументы оператора return не взяты в скобки Файл: ngfilter.c - строка 30: нет поясняющего комментария к функции main - строка 38: нет пробелов перед и после оператора = - строка 42: объявить как static struct option - строка 106: возврат вызова open не проверяется на ошибки - строка 141: нет поясняющего комментария к usage - строка 161: нет поясняющего комментария к help - строка 181: нет поясняющего комментария к version - неправильное выравниевание операторов Файл: ngindex.c - строки 28,29: PROGRAM_NAME и VERSION не являются макро определениями - строки 36-38: комментарий не полон - строки 151-179: нет комментариев - строки 151-179: дополнительная информация выводится в не зависимости от флага g_verbose Файл: print_records.c - строка 29: нет поясняющего комментария к функции print_records - строка 39: опечатка "lenght" - в целом довольно большой (~284 строки) и сложный метод Файл: process_conditions.c - строки 4-7 и строки 14-17: повторное включение - строки 4-7: не упорядочены в соответствие со стилем кодирования - строка 11: очень длинная строка - строка 35: нет поясняющего комментария к функции process_conditions - строка 39: l плохое имя для переменной которая хранит значение длины строки - строка 52: ошибка "ngfiler.conf" - строка 55: ошибка "ngfiler.conf" - строки 87, 88: комментарий не подтверждается кодом (про true) - строка 94: цикл с пустым телом нуждается в комментарии, иначе строки с 91 по 94 можно воспринять как бесконечный цикл - строки 97-107: можно собрать в отдельный метод, это может уменьшить сложность метода - строка 113: цикл с пустым телом нуждается в комментарии, иначе строки с 91 по 94 можно воспринять как бесконечный цикл - строка 136: цикл с пустым телом нуждается в комментарии, иначе строки с 91 по 94 можно воспринять как бесконечный цикл - строка 156: 49 - магическое число - строки 169, 170 и 175, 176: необходимо упрощение - переменную conditions token следует объявить так const char *condtions_token = " \t\n" или так #define CONDITIONS_TOKEN " \t\n" - в целом очень сложный метод, явно нуждается в декомпозиции на несколько маленьких методов, используются сложные конструкции, магические числа, глубокая вложенность операторов if, сложен для понимания, отладки, тестирования - аргументы оператора return не взяты в скобки Файл: process_template.c - нет стандартной шапки (автор, описание файла) - строки 4-7: не упорядочены в соответствие со стилем кодирования - строка 10: нет поясняющего комментария к функции process_template - аргументы оператора return не взяты в скобки Файл: rec_description.c - нет стандартной шапки (автор, описание файла)