절차지향 프로그래밍 (지금까지 하던 모든게 절차지향 프로그래밍이었으므로 하던 대로 하면 됨)
기능별로 함수를 분리하고, 함수(또는 메소드)가 한 가지 일만 하도록 최대한 작게 만들어라. (함수 하나에 두개의 기능이 들어가면 안된다.)
→ 예를 들어, printMessage()라는 함수는 출력 기능만 있어야한다.
// 예시 : 출력 함수
function printMessage(msg) {
console.log(msg);
}
// 아래처럼 코딩하면 안된다.
// 아래는 출력함수 안에서 메세지가 없으면 입력을 받도록 구현한 코드다.
function printMessage(msg) {
if (!msg.length) msg = 입력받기();
console.log(msg);
}
/* 그럼 메세지가 없을 때 입력을 받으려면 어떡해야할까? */
function main(msg) {
// 메인함수, 즉 함수를 호출하는 곳에서 msg가 존재하는지 확인한 후에 없다면 입력을 받는 방향으로 코딩해야한다.
if (!msg.length) msg = input();
printMessage(msg);
}
function input() {...}
function printMessage(msg) {...}
main(msg); // 메인함수 호출, 시작점.
변수명, 함수명 등 이름 짓는데에 시간을 투자해라. (코딩 컨벤션)
요구사항
함수의 길이가 20라인을 넘어가지 않도록 구현한다.
indent(인덴트, 들여쓰기) depth를 4가 넘지 않도록 구현한다. 3까지만 허용한다.
→ 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다. → for문 안에 if문 안에 if문이 있으면 들여쓰기는 3이다. (이까지만 허용) → 힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다.