판정 규칙을 코드로 옮기기
동작하게 만든다
판정 규칙을 코드로 옮기기
동작하게 만든다 > 동작하게 만든다
- PRD 3번이 그대로 함수 하나가 되는 것을 확인한다
- 규칙의 순서가 결과를 바꾸는 것을 이해한다
규칙을 코드로
PRD 3번에 적은 판정 규칙은 코드에서 짧은 함수 하나로 옮겨집니다. 오늘 예제의 규칙은 넉 줄입니다.
총석유계탄화수소가 1리터당 500마이크로그램을 넘으면 유류 오염 의심입니다. 먹는물 기준을 넘는 값이라 정밀조사 대상이 됩니다. 용존산소가 15를 넘으면 이상치입니다. 자연 상태의 지하수에서 나올 수 없는 값이라 측정 자체를 의심해야 합니다. 용존산소가 2 미만이거나 산화환원전위가 음수이거나 전기전도도가 2,000 이상이면 주의입니다. 앞의 둘은 혐기와 환원 환경으로 바뀌고 있다는 뜻이고 뒤엣것은 이온농도가 급증했다는 뜻입니다. 어디에도 걸리지 않으면 정상입니다.
이 넉 줄이 그대로 함수가 됩니다. 문서를 읽은 사람과 코드를 읽은 사람이 같은 것을 이해하게 되는 것이 이 방식의 값입니다. 오전에 배운 도메인 지식이 오후에 코드가 되는 셈인데, 중간에 통역이 없다는 점이 중요합니다.
규칙의 순서
규칙을 위에서부터 차례로 검사하기 때문에 순서가 결과를 정합니다. 이것이 잘 드러나지 않는 함정입니다.
오염 의심을 맨 앞에 둔 이유가 있습니다. 총석유계탄화수소가 850이면서 용존산소도 1.2인 행이 실제로 샘플에 있습니다. 순서를 바꿔 주의를 먼저 검사하면 이 행은 주의로 표시되고 오염 의심이 묻힙니다. 더 심각한 판정이 앞에 와야 합니다.
이상치를 주의보다 앞에 둔 것도 같은 이유입니다. 용존산소가 25라면 그 값 자체를 믿을 수 없으니 다른 판정을 하기 전에 걸러내야 합니다. 이 행을 주의로 분류하면 실제로는 측정 오류인데 오염 신호로 읽게 됩니다.
순서를 바꿔도 대부분의 행은 같은 판정을 받습니다. 그래서 잘못 만들어도 한동안 모릅니다. 완료 기준에 경계 사례를 적어두는 이유가 여기 있습니다. 서른 건 중 두 건만 다르게 나오는데, 그 두 건이 가장 중요한 행입니다.
판정에 색 입히기
판정이 붙으면 색으로 구분합니다. 오염 의심은 빨강, 주의와 이상치는 노랑, 정상은 초록입니다. 표를 훑을 때 눈에 먼저 들어오는 것은 글자가 아니라 색입니다.
색을 정할 때는 흑백으로 인쇄했을 때도 구분되는지 함께 봅니다. 보고서에 붙는 표는 흑백으로 나가는 일이 많습니다. 판정 글자를 함께 적어두면 색이 사라져도 읽힙니다.