@Zellily

Зачем разбивать код на функции, если код короткий (~30 строчек) и нет повторяющегося кода?

Я пишу на Питоне для себя, когда на работе требуется быстро сгенерить из одного файла другой и т.п. Случайно попался на глаза вопрос, где человек показал пример своего кода. Код копирует файлы по определённому признаку из одной папки в другую. Код короткий. Однако среди ответов есть такой:

"Код нужно разбить хотя бы на функции, а не все в одну кучу "

Зачем? Чем он станет лучше? Код написан совершенно прозрачно и понятно. Повторяющихся кусков нет. Зачем функции?
  • Вопрос задан
  • 1322 просмотра
Пригласить эксперта
Ответы на вопрос 9
sim3x
@sim3x
Потому что так проще покрывать тестами
Ответ написан
@ozornick
Если нет необходимости повторного использования, то незачем функции.
Ответ написан
@vovaduba
www.dubos.ru
У Вас есть программа, которая копирует файлы по определенному признаку из одной папки в другую, разбитая на функции "определение определенного признака" и "копирование в другую папку", а завтра Вам надо будет сделать программу, которая будет просто копировать файлы из одной папки в другую, Вы берете готовую функцию и не паритесь с выискиванием нужного фрагмента в коде старой программы
Ответ написан
Ni55aN
@Ni55aN
Повысится самодокументируемость.
Не нужно будет в уме разбивать код на части, чтобы понять что они делают. Все равно как минимум 5-8 строк кода должны выполнять определенную задачу, а не только общую
Ответ написан
@altai2013
Повышается читаемость кода, его легче поддерживать. Проще пробежать глазами 3 строчки с вызовом функций и по их именам понять что они делают, чем анализировать 30 строк непонятного кода.
Ответ написан
@User23
Код нужно разбить хотя бы на функции, а не все в одну кучу

Это была моя цитата.
Зачем? Чем он станет лучше? Код написан совершенно прозрачно и понятно. Повторяющихся кусков нет. Зачем функции?

Лучше он станет тем что человек впервые увидевший код, сможет сразу разобраться что за что отвечает, и если надо будет вносить какие либо изменения то это нужно будет сделать в одном месте.
Если кусок кода понадобиться еще где то использовать необходимо будет вставить только название функции, а не копипастить экран текста.
При использование функций, в разы легче находить и исправлять ошибки.
Ответ написан
@nApoBo3
Задача декомпозиции упростить поддержку и развитие кода. Если поддержка и развитие не планируется, то декомпозиция не нужна.
Код еще не написан: разбить, поскольку так проще тестировать и разрабатывать.
Код уже написан, но будет развиваться: разбить, иначе очень скоро ваш код обрастет дублированием, а ошибки в нем искать будет весьма затруднительно. При большом объеме код сможете поддерживать только вы, разобраться в нем будет не просто, внесение изменений потребует глубокого понимания всего кода.
Код уже написан, работает, не содержит ошибок и не будет развиваться: не разбивать, поскольку это трудозатраты которые ничего не дадут.
Ответ написан
zolt85
@zolt85
Программист
Ответы были бы более конкретные или бы их не было бы вообще, если бы мы увидели код.
Иначе все ответы можно расценивать как "диванную аналитику".
Я считаю...
Ответ написан
Комментировать
alexsandr0000
@alexsandr0000
Программист C#/C++/C
Если это один криво-корявый, но работающий проект, о котором вы забутите сразу после сдачи, то можете не париться. И если вы занимаетесь только созданием такого рода проектами, то можете не читать дальше и не тратить свое время.
А вот если проект нужно будет поддерживать (по опыту могу сказать, что выполняет та или иная функция забывается уже через месяц) или над ним работают другие люди, или вы хотите уйти спокойно в отпуск, в котором вы не хотите что бы вас тревожили, то лучше конечно же писать так, чтобы в функции выполнялась одна операция или по крайней мере если их несколько, то это как-то должно отражаться в ее названии и конечно же она должна быть задокументирована (практически все IDE позволяют это делать без особого напряга).
Хороший код легко читается и понимается, а самое главное на добавление (изменение, удалении) новой функции в нем тратится гораздо меньше времени, чем в криво-корявом коде.

Конечно криво-корявый код используется повсеместно и может без проблем работать годами, до тех пор пока не надо что-то поменять ...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы