Приветствую Вас ГостьВторник, 14.05.2024, 14:33

Каталог статей


Стив Макконнелл "Совершенный код". Последовательность операторов

Операторы, следующие в определенном порядке

Проше всего организовать такие выражения, для которых важен порядок следования.

Если последовательность выполнения действий имеет значение, организуйте код так, чтобы зависимости были очевидными:

  • Называйте методы так, чтобы зависимости были очевидными
  • Используйте параметры методов, чтобы сделать зависимости очевидными
  • Документируйте неявные зависимости с помощью комментариев

Пример:

‘ Рассчитываем расходы. В каждом методе используется переменная класса
’ expenseData. Метод DisplayExpenseSummary должен вызываться последним,
’ так как он зависит от данных, вычисленных другими методами.
expenseData = InitializeExpenseData( expenseData )
expenseData = ComputeMarketingExpense( expenseData )
expenseData = ComputeSalesExpense( expenseData )
expenseData = ComputeTravelExpense( expenseData )
expenseData = ComputePersonnelExpense( expenseData )
DisplayExpenseSummary( expenseData )

Операторы, следующие в произвольном порядке

 - когда одно выражение не зависит от другого и логически из него не следует. Но поскольку упорядоченность влияет на читабельность, производительность и качество сопровождения, вы можете использовать второстепенные критерии для определения порядка следования выражений или блоков кода. Главный принцип — это Принцип Схожести: Располагайте взаимосвязанные действия вместе.

Размещение кода для чтения сверху вниз Основная идея в том, что необходимо позволить читать программу сверху вниз, а не перескакивая с места на место. Эксперты согласны, что порядок просмотра кода сверху вниз способствует улучшению читабельности. Однако простого размещения последовательности команд сверху вниз недостаточно. Если тому, кто читает ваш код, приходится просматривать всю программу в поиске необходимой информации, то такой код нужно реорганизовать.

Пример плохого кода, в котором приходится перескакивать с места на место (C++)
MarketingData marketingData;
SalesData salesData;
TravelData travelData;


travelData.ComputeQuarterly();
salesData.ComputeQuarterly();
marketingData.ComputeQuarterly();


salesData.ComputeAnnual();
marketingData.ComputeAnnual();
travelData.ComputeAnnual();


salesData.Print();
travelData.Print();
marketingData.Print();

Пример хорошего, последовательного кода, который читается сверху вниз (C++)

MarketingData marketingData;
marketingData.ComputeQuarterly();
marketingData.ComputeAnnual();
marketingData.Print();


SalesData salesData;
salesData.ComputeQuarterly();
salesData.ComputeAnnual();
salesData.Print();

 

TravelData travelData;
travelData.ComputeQuarterly();
travelData.ComputeAnnual();
travelData.Print();

Группировка взаимосвязанных выражений. Размещайте взаимосвязанные выражения вместе. Они могут быть связаны, так как работают с одними и теми же данными, выполняют схожие задачи или зависят от порядка выполнения друг друга.

Категория: Стив Макконнелл "Совершенный код" | Добавил: leshic (11.11.2021)
Просмотров: 139 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Категории раздела
Стив Макконнелл "Совершенный код" [20]
Стив Макконнелл "Совершенный код"
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0