개발자 99% 커뮤니티에서 수다 떨어요!
💡 연습문제 1. 파일에서 데이터를 읽는 클래스를 만들어야 한다. 한 번에 한 줄씩 읽어들이고, 각 줄은 여러 개의 필드로 쪼개야 한다. 의사 코드로 표현한 다음 두 클래스 중 어떤 것이 더 직교적인가?
class Split1{
constructor(fileName) #읽기 위해 파일을 열기
def readNextLine() #다음 줄로 이동
def getField(n) #현재 줄의 n번째 필드를 변환
}
class Split2 {
constructor(line) #한 줄을 쪼개기
def getField(n) #현재 줄의 n번째 필드를 반환
}
우선 직교성이란 ? 독립적이고, 관련 없는 것들 간에 서로 영향이 없도록 하는 것
Split2가 더 직교적인 코드라고 생각한다. 다른 메소드에 피해를 덜 주는것 같다.
직교성에 대한 내용
우리 생각에는 Split2 클래스가 더 직교성이 좋다.
이 클래스는 자기가 해야 할 일인 줄 쪼개기에만 집중하고, 어디서 그 줄이 오는지와 같은 세부 사항은 무시한다. 그러면 코드가 개발하기 더 쉬워질 뿐만 아니라 더 유연해진다.
Split2는 파일에서 읽어온 문자열을 쪼갤 수도 있고, 다른 루틴이 만든 문자열을 쪼갤 수도 있고, 환경 변수로 넘어온 문자열을 쪼갤 수도 있다.