OlegWorld / ip_filter

0 stars 0 forks source link

Code Review from AndreyK #1

Open deepdivenow opened 6 years ago

deepdivenow commented 6 years ago
  1. Довольно понятный красивый код.

  2. Функцию фильтрации можно написать в одном экземпляре.

  3. Хоть в нашем задании и небыло указания обрабатывать корректность ввода, но при вводе адреса начинающегося с '.' программа падает с непонятным сообщением.

  4. При подаче на вход программе ~100к строк программа падает в корку. $ time cat input100.tsv | ./bad_filter > /dev/null Put lines Sort lines Segmentation fault (core dumped)

  5. Строка сортировки черезмерно сложная: std::sort(ip_pool.begin(), ip_pool.end(), [](const ip_address & lhs, const ip_address & rhs) { return std::tie(lhs[0], lhs[1], lhs[2], lhs[3]) >= std::tie(rhs[0], rhs[1], rhs[2], rhs[3]); }); Можно исправить на сорт с двумя аргументами и ислользовать стандартную функцию сравнения с используемыми вами классами. (она и ускорит выполнение программы)

OlegWorld commented 6 years ago

Спасибо за ревью. Практически по всем пунктам критики согласен.