Зміст курсу
C++ Умовні оператори
C++ Умовні оператори
Техніка Варти
Оскільки застосунки стають дедалі складнішими, зростає ймовірність виникнення багів та помилок. Щоб боротися з цим, розробники звертаються до різних методів і практик для забезпечення якості коду. Однією з таких технік, яка набула популярності в останні роки, є техніка варти
Пам'ятаєте глави, в яких обговорювалося використання вкладених операторів if
? Хоча іноді вони необхідні для забезпечення коректної поведінки, є ситуації, коли їх краще уникати.
Наприклад, ми хочемо створити програму, яка буде перевіряти:
- Чи користувач є студентом.
- Чи користувач має підписку.
- Чи користувач має підключений.
Якщо і тільки якщо всі ці вимоги задовольняються, виведіть результат:
В іншому випадку, виведіть у консоль конкретний крок, на якому процес ініціалізації завершився невдачею.
Otherwise, log in the console the specific step where the initialization process fails.
Ви можете досягти бажаного результату, використовуючи вкладені оператори if
, але такий підхід може зробити код важким для розуміння і складним для модифікації, коли вам потрібно буде додати нові умови. Подивіться на фрагмент коду.
without_guard_clause
#include <iostream> int main() { // You can change them to false and see how output will change bool isStudent = true; bool isPremium = true; bool isConnected = true; if (isStudent) { if (isPremium) { if (isConnected) { std::cout << "Is student\nIs premium\nIs connected"; } else std::cout << "You don't have premium\n"; } else std::cout << "You are not connected\n"; } else std::cout << "You are not a student\n"; }
Щоб ефективно застосовувати техніку варта, важливо пам'ятати, що ми можемо завершити виконання програми у будь-який момент за допомогою ключового слова return
. У цьому підході ми змінюємо наші умови на протилежні, тобто якщо користувач не є учнем, ми негайно виводимо повідомлення і завершуємо програму. Це зроблено для того, щоб уникнути вкладеного дерева if
і непотрібного виконання коду, коли він не має ніякої мети.
with_guard_clause
#include <iostream> int main() { // You can change them to false and see how output will change bool isStudent = true; bool isPremium = true; bool isConnected = true; if (!isStudent) { std::cout << "You are not a student\n"; return 0; } if (!isPremium) { std::cout << "You don't have premium\n"; return 0; } if (!isConnected) { std::cout << "You are not connected\n"; return 0; } std::cout << "Is student\nHas premium\nIs connected"; }
The Clause Guard Technique is a powerful tool in the arsenal of software developers striving for code reliability, flexibility and safety. By implementing it developers can reduce the amount of errors, improve code maintainability, and enhance overall software quality.
Дякуємо за ваш відгук!