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(); |
연관된 명령문 그룹화하기