Closed castedice closed 2 years ago
class Boundaries: def __init__(self, width, height): self.width = width self.height = height def __contains__(self, coord): x, y = coord return 0 <= x < self.width and 0 <= y < self.height class Grid: def __init__(self, width, height): self.width = width self.height = height self.limits = Boundaries(width, height) def __contains__(self, coord): return coord in self.limits def mark_coordinate(grid, coord): if coord in grid: grid[coord] = MARKED
class Grid: def __init__(self, width, height): self.width = width self.height = height def __contains__(self, coord): x, y = coord return 0 <= x < self.width and 0 <= y < self.height def mark_coordinate(grid, coord): if coord in grid: grid[coord] = MARKED
코드를 돌려보면 if문 분기로 들어가는 것도 동일한 조건에서 들어가는 것 같아서 같은 결과가 나올 것 같은데, boundary를 왜 만든건지 이해할 수 없음 if 문의 반복 호출을 피한다는데 저렇게 분리한다고 그게 되는지도 이해가 안됨
논의 내용 요약: 해당 예시가 작은 기능만을 가지고 있기 때문에 쪼개는 것이 비효율적이라고 생각할 수 있지만, 추가로 다른 기능들이 개발된다면 책에 소개한 것처럼 쪼개는 것이 효율적일 것. 처음에는 아래처럼 짜고 추 후 위처럼 리펙토링을 할 수도 있고, 경험적으로 미리 예상할 수 있다면 바로 위처럼 짤 수도 있을 것.
Boundary가 존재해야하는 이유가 무엇인지
원문
내가 생각한 것
코드를 돌려보면 if문 분기로 들어가는 것도 동일한 조건에서 들어가는 것 같아서 같은 결과가 나올 것 같은데, boundary를 왜 만든건지 이해할 수 없음 if 문의 반복 호출을 피한다는데 저렇게 분리한다고 그게 되는지도 이해가 안됨