Урок 14. Почему функции полезны и как их эффективно использовать

   ⁄ 

 Обновлено 16 Авг 2017

  ⁄   

Теперь, когда мы уже знаем, что такое функции и основные их возможности, давайте более внимательно рассмотрим то, почему они полезны.

Зачем использовать функции?

Начинающие программисты часто спрашивают: «А можно ли обходиться без функций и весь код помещать непосредственно в функцию main()?». Для простых примеров — можно, для средних и выше, где кода будет больше 30 строк – полезнее будет использовать функции. Они имеют ряд преимуществ, которые делают их чрезвычайно полезными в нетривиальных программах.

 Структура – как только программы стают больше и сложнее, сохранять весь код внутри main() становится очень трудно. Функция — это как мини-программа, которую мы можем записать отдельно от основной. Это позволяет разбивать сложные задачи на более мелкие, простые и кардинально снижает общую сложность программы.

 Повторное использование — после того, как функция объявлена (написана), ее можно вызывать много раз. Это позволяет избежать дублированного кода и сводит к минимуму вероятность ошибок копирования/вставки. Функции также могут использоваться совместно с другими программами, уменьшая объем кода, который нужно писать с нуля каждый раз.

 Тестирование — поскольку функции убирают лишний код, то его остается меньше для тестирования. И так как функция — это самостоятельная единица, то нам будет достаточно протестировать её один раз, чтобы убедиться в работоспособности и можно будет повторно использовать много раз (до тех пор, пока мы не внесем изменения в саму функцию). Это уменьшает объем кода, который нужно тестировать и облегчает поиск ошибок.

 Модернизация — когда нужно расширить или внести изменения в программу, с помощью функций можно внести изменения в одном месте и они автоматически будут применяться при каждом вызове этой функции.

 Абстракция — для того, чтобы использовать функцию, вам нужно знать её имя, что вводится, что выводится и где она живет. Вам не нужно знать, как это работает. Это супер полезно для создания кода доступным для использования другими людьми (к примеру можно привести стандартную библиотеку С++ и всё, что в ней находится).

Каждый раз, когда вы используете std::cin или std::cout для ввода или вывода данных, вы используете функцию, представленную в стандартной библиотеке, которая соответствует всем указанным выше критериям.

Эффективное использование функций

Одна из самых больших проблем, с которой сталкиваются новички (помимо изучения языка программирования) – научится где, когда и как эффективно использовать функции. Вот несколько основных руководящих принципов при написании функций:

 Код, который появляется более одного раза в программе, как правило, лучше переписать в виде функции. Например, если обрабатывается ввод или вывод от пользователя несколько раз одним и тем же способом, то это отличный вариант для создания функции.

 Код, который имеет отдельный набор вводов и выводов. Например, если у нас есть список вещей, которые нужно отсортировать, то код для сортировки можно записать в виде функции, даже если она используется только один раз. Вводим несортированный список, выводим отсортированный.

 Функция должна выполнять одну (и только одну) задачу.

 Когда функция становится слишком длинной, сложной или непонятной – хорошим тоном будет разбить её на несколько подфункций. Это называется рефакторинг (refactoring).

Как правило, при изучении C++ вам предстоит написать много программ, которые будут включать эти три подзадания:

1. Получение данных от пользователя

2. Обработка данных

3. Вывод результата

Для простых программ (меньше, чем 30 строк кода) частично или всё из этих подзаданий можно записать в main(). Для более длинных программ (или просто для практики) каждое подзадание является хорошим примером для написания индивидуальной функции.

Новички часто комбинируют обработку ввода и вывод результата в одну функцию. Тем не менее, это нарушает правило «одного задания». Функция, которая обрабатывает значение, должна возвращать его в caller, а дальше пускай уже caller решает, что делать.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (39 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в:
Подписаться на обновления:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *