▲GN⁺ 2025-04-24 | parent | ★ favorite | on: Go의 Layered 설계 방식(jerf.org)Hacker News 의견 순환 종속성을 허용하지 않는 것은 대규모 프로그램을 구축할 때 훌륭한 설계 선택임 이는 관심사를 적절히 분리하도록 강제함 순환 종속성이 발생하면 설계에 문제가 있는 것이며, 기사는 이를 해결하는 방법을 잘 설명함 가끔 다른 패키지가 재정의하는 함수 포인터를 사용하여 순환 종속성을 해결함 Go 컴파일러가 순환 종속성을 만들 때 더 유용한 출력을 제공했으면 좋겠음 현재는 루프에 관련된 모든 패키지 목록을 제공하는데, 이는 꽤 길 수 있으며 일반적으로 문제를 일으킨 것은 마지막으로 변경한 것임 훌륭한 블로그 게시물임 이 웹사이트에는 놀라운 게시물이 많으며, 함수형 프로그래밍에 대해 배우는 것을 좋아한다면 확인해보길 권장함 링크 "세 번째 패키지로 이동" 조언과 관련된 보너스 기술 많은 모델 구조(SQL, Protobuf, GraphQL 등)를 생성하면 생성된 계층 간의 명확한 방향성을 설정할 수 있음 모든 생성된 코드를 애플리케이션 코드에 "기본 패키지"로 제공하여 모든 것을 함께 구성함 이 기술 도입 전에는 "모델이 모델을 순환적으로 가져오는" 문제가 있었지만, 구조적 추가 계층 도입으로 완전히 사라짐 Yourdon 구조적 방법에 관한 책을 읽고 있는 것 같음 패키지가 서로 순환 참조할 수 없음 실제로 Go에서는 go:linkname을 사용하여 가능함 랜덤라이저의 구체 개념을 떠올리게 함 Golang의 재미있는 특징은 패키지 수준에서 순환 종속성을 가질 수 없지만, go.mod에서는 가질 수 있음 요약하자면, 그것도 하지 말아야 함 Jerf가 패키지를 어떻게 생각하고 순환 종속성을 어떻게 처리하는지에 대한 멋진 설명임
Hacker News 의견
순환 종속성을 허용하지 않는 것은 대규모 프로그램을 구축할 때 훌륭한 설계 선택임
훌륭한 블로그 게시물임
"세 번째 패키지로 이동" 조언과 관련된 보너스 기술
Yourdon 구조적 방법에 관한 책을 읽고 있는 것 같음
패키지가 서로 순환 참조할 수 없음
랜덤라이저의 구체 개념을 떠올리게 함
Golang의 재미있는 특징은 패키지 수준에서 순환 종속성을 가질 수 없지만, go.mod에서는 가질 수 있음
Jerf가 패키지를 어떻게 생각하고 순환 종속성을 어떻게 처리하는지에 대한 멋진 설명임