Goldberg
Вряд ли бы понял, где была ошибка. Я её не видел.
Goldberg
До классов пока не добрался, сам уже начинаю конечно в своем написанном коде путаться
Не сказал бы, что твой код хорошо структурирован.
Во-первых, функции должны называться императивно (имя в виде приказа). А grooming - это существительное. Сразу возникает вопрос “груминг что?”. А вот groom_data() звучит как “причесать данные!”, и сразу понятно при каких обстоятельствах мы вызываем эту функцию (данные не причёсаны) и что мы получим после выполнения функции (данные причёсаны).
Во-вторых, у тебя функции заставляют думать. То есть ты читаешь функцию и не можешь её понять сходу, не подумав хорошенько об алгоритме, не разложив в голове всё на несколько ветвей, - это признак запутанного кода. Когда видишь такой признак, это значит, что надо ещё провести декомпозицию (выделить внутри функции ещё функцию - подфункцию функции), так как, скорее всего, функция переполнена кодом и содержимое другой функции вставлено напрямую в функцию, хотя должно лежать в отдельной функции. Так ты раскладываешь функцию на много функций, пока не получишь ясную цепочку функций, ни одна из которых не заставляет тебя думать об алгоритмах и при этом всё прекрасно и правильно выполняется.
В общем осваивай технологию структурного программирования, которая называется технология разработки “сверху вниз”.
Описание метода “сверху вниз” с примеромОписание разбиения функции на подфункцииОписание приёма декомпозицииtags: structured paradigm