소스코드리뷰(VII) 한두줄의 작은 함수를 만들어라

[목차(도우미)]
예를 들어 이런 소스코드가 있다.
function CopyFileProc()
var
  oShell: oleVariant;
begin
:
oShell := CreateOleObject('WScript.Application');
oShell.Run('dir /s',, True);
:
end;

지적점

  • 윈도OS의 함수(API)를 이용하여 프로그램을 실행할 경우에는 주의가 필요하다.
    try except 구문으로 예외가 생길 경우를 고려가 필요하다.
  • 두줄의 처리줄이어도 한개의 함수로 만드는 것이 필요하다.
    두 줄로 구성되어 있어도 커맨드라인을 파라미터로 하는 함수를 작성하면 변수의 선언과 결과값, 예외처리들을 재활용할 수 있는 유닛이 설계할 수 있다.

(장작: 통나무를 땔감으로 쓰기에는 힘들어도 도끼로 잘게 부수어 쪼개서 쓰면 불이 잘 붙는다. 그런데 아직도 장작을 쓰는 시골 동네가 있었다.)

새로 만드는 함수라면 다음 정도가 될 것이다.

function RunDosCommand(Cmd:string)
var
  oShell: oleVariant;
begin
try
  oShell := CreateOleObject('WScript.Application');

  oShell.Run(Cmd,, True);
except

end
end;

인터넷에서 소스를 참조하여 소스코드를 작성할 때 그대로 베껴서 하면 실력도 늘지 않고 소스코드는 항상 누더기(patch)가 된다. 소스코드를 검색해서 쓰더라도 모듈을 설계하는 방식을 재음미해서 작성해야 설계실력이 늘게 된다.

델파이 라이브러리를 개발한 소스코드(도큐멘트)를 보는 것도 도움이 된다. 그리고 이런 소스코드를 보면 한줄, 두줄의 함수가 많이 있다. 작은 함수가 많으면 소스코드가 가독성이 높고 문장처럼 작성된다. 비슷한 기능을 개발할 때 작은 함수는 재활용된다.

by 금메달.아빠 on 2010. 5. 23. 19:00