1.     순서가 중요한 명령문

 

명령문의 순서가 중요한 자바 예제

Data = ReadData();

Result = CalculateResultsFromData( date );

PrintResults( results );

 

명령문의 순서가 중요하지만 덜 분명한 자바 예제

revenue.ComputeMonthly();

revenue.ComputeQuarterly();

revenue.ComputeAnnual();

 

명령문의 순서가 중요한 자바 예제

Data = ReadData();

Result = CalculateResultsFromData( date );

PrintResults( results );

 

명령문의 순서 의존성이 감추어져 있는 비주얼 베이직 예제

ComputeMarketingExpense

ComputeSalesExpense

ComputeTravelExpense

ComputePersonnelExpense

DisplayExpenseSummary

 

 

의존성이 분명하도록 코드를 구성한다.

의존성이 분명하도록 루틴의 이름을 작성한다.

데이터가 순서의 의존성을 말해주는 비주얼 베이직 예제

InitializeExpenseData( expenseData )

ComputeMarketingExpense( expenseData )

ComputeSalesExpense( expenseData )

ComputeTravelExpense( expenseData )

ComputePersonnelExpense( expenseData )

DisplayExpenseSummary( expenseData )

 

 

데이터와 루틴 호출이 순서의 의존성을 말해주는 비주얼 베이직 예제

expenseData = InitializeExpenseData( expenseData )

expenseData = ComputeMarketingExpense( expenseData )

expenseData = ComputeSalesExpense( expenseData )

expenseData = ComputeTravelExpense( expenseData )

expenseData = ComputePersonnelExpense( expenseData )

DisplayExpenseSummary( expenseData )

 

 

데이터가 순서의 의존성을 암시하지 않는 비주얼 베이직 예제

ComputeMarketingExpense ( marketingData )

ComputeSalesExpense ( salesData )

ComputeTravelExpense ( travelData )

ComputePersonnelExpense ( personnelData)

DisplayExpenseSummary(

 marketingData, salesData, travelData, personnelData)

 

 

의존성이 분명하지 않은 부분은 주석으로 문서화한다.

명령문의 순서 의존성이 감추어져 있지만 주석으로 이를 분명히 한 비주얼 베이직 예제

// 지출 데이터를 계산한다. 각 루틴들은 멤버 데이터 expenseData에 접// 근한다. DisplayExpenseSummary는 다른 루틴들에서 계산된 데이터에 // 의존하기 때문에 마지막에 호출되어야 한다.

InitializeExpenseData

ComputeMarketingExpense

ComputeSalesExpense

ComputeTravelExpense

ComputePersonnelExpense

DisplayExpenseSummary

 

 

어설션이나 오류 처리 코드로 의존성을 검사한다.

2.     순서가 중요하지 않는 명령문

코드를 하향식으로 읽을 수 있도록 작성하기

코드를 이리 저리 봐야 하는 좋지 않은 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();

 

연관된 명령문 그룹화하기