C#:
Организация кода в функции
Как:
Представьте, что у вас есть код, который несколько раз выводит приветствие. Без функций это беспорядок. С функциями — аккуратно.
// Без функций - повторения
Console.WriteLine("Привет, Эми!");
Console.WriteLine("Привет, Боб!");
Console.WriteLine("Привет, Чарли!");
// С функциями - чище
void Greet(string name) {
Console.WriteLine($"Привет, {name}!");
}
Greet("Эми");
Greet("Боб");
Greet("Чарли");
Вывод одинаковый, но вторая версия намного аккуратнее.
Подробнее
Ещё во времена ассемблера для перехода к различным участкам кода использовали GOTO — это было хаотично и сложно для отслеживания. Функции — это значительный шаг вперёд, как организованные ящики в инструментальном ящике. Альтернативы? Конечно. У вас есть методы, которые являются функциями в контексте класса. Затем есть лямбды и инлайн-функции для быстрых разовых задач.
Что касается реализации — маленькие, сфокусированные функции — это золото. Их проще тестировать и отлаживать. Большие функции с множеством обязанностей могут стать монструозными, получив сомнительный титул «спагетти-код». Придерживайтесь одной задачи на функцию; вы поблагодарите себя позже.
См. также
Для дополнительной информации о функциях и лучших практиках смотрите:
- “Чистый код” Роберта Мартина: принципы, помогающие держать ваши функции в порядке.
- “Рефакторинг” Мартина Фаулера: способы улучшения существующего кода.
- Руководство по методам C# от Microsoft: https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/methods