개발자 필독도서 리뷰

[노개북] "실용주의프로그래머" 챌린지 9일차

개발자 배찌 2022. 3. 28. 14:20
728x90

"노개북" 노마드 개발자 북클럽 9일차!!

#코딩 #개발자 #노마드북클럽 #노개북 #노마드챌린지 #실용주의프로그래머 #3주스케쥴

 

2 주차

일, 월 | Assignment #09

  • 📚 복습
  • ✔️ 미션 Mission(2)

 

💡 연습문제 1. 파일에서 데이터를 읽는 클래스를 만들어야 한다. 한 번에 한 줄씩 읽어들이고, 각 줄은 여러 개의 필드로 쪼개야 한다. 의사 코드로 표현한 다음 두 클래스 중 어떤 것이 더 직교적인가?

class Split1{

constructor(fileName) #읽기 위해 파일을 열기

def readNextLine() #다음 줄로 이동

def getField(n) #현재 줄의 n번째 필드를 변환

}

class Split2 {

constructor(line) #한 줄을 쪼개기

def getField(n) #현재 줄의 n번째 필드를 반환

}

✅ 풀이 과정

  • 우선 직교성이란 ? 독립적이고, 관련 없는 것들 간에 서로 영향이 없도록 하는 것
  • Split2가 더 직교적인 코드라고 생각한다. 다른 메소드에 피해를 덜 주는것 같다.

✅ 참고 링크

 

[실용주의 프로그래머] 직교성

[실용주의 프로그래머] 직교성 - 설계, 빌드, 테스트 그리고 확장하기에 쉬운 시스템을 만드는 데에 있어 직교성(Orthogonality)은 매우 중요한 개념이다. 직교성이란 - 컴퓨팅에서 이 용어는 일종의

aroundck.tistory.com


💡 책에 있는 해답

우리 생각에는 Split2 클래스가 더 직교성이 좋다.

이 클래스는 자기가 해야 할 일인 줄 쪼개기에만 집중하고, 어디서 그 줄이 오는지와 같은 세부 사항은 무시한다. 그러면 코드가 개발하기 더 쉬워질 뿐만 아니라 더 유연해진다.

Split2는 파일에서 읽어온 문자열을 쪼갤 수도 있고, 다른 루틴이 만든 문자열을 쪼갤 수도 있고, 환경 변수로 넘어온 문자열을 쪼갤 수도 있다.