내가 golang의 클라이언트/서버 응용 프로그램을 개발하고 있어요, 그리고 클라이언트와 서버 (목록이 제한됩니다) 모두에 존재하는 특정 논리적 개체가분할 클라이언트/서버 코드
내가 어떤 코드를 확인하고 싶은이 엔티티는 서버 부분에만 포함되지만 클라이언트에는 포함되지 않습니다 (반대의 경우도 좋지만 중요하지는 않음).
순진한 생각은 죽은 코드 제거에 의존하는 것이지만 내 간단한 연구에서 작업을 처리하는 신뢰할 수있는 방법은 아닙니다. go build
은 사용되었을 수있는 사실로부터 데드 코드를 제거하지 않습니다. 리플렉션을 통해 (아무도 신경 쓰지 않고 이것을 조정할 옵션이 없음)
다른 솔리드 방식은 다른 패키지에서 코드를 분리하고 적절히 가져 오는 것 같습니다.이 코드는 신뢰할 만하지만 코드를 복잡하게 만듭니다. 물리적으로 다른 패키지간에 특정 엔티티를 분할하고 지속적으로 염두에두고 ...
그리고 마지막으로 여러 개를 가질 수있는 빌드 태그가 있습니다. 특정 암호화 루틴이 있습니다 : 같은 패키지에서 파일
태그를 구축하여와 동기는 내가 어떤 합성 실체를사용 사례를 도입하지 않고 가능한 한 깨끗한 코드를 유지하려는 것입니다
는 클라이언트와 서버에 대한 조건부 구축 클라이언트는 공개 키로 작동하고 서버는 비공개로 작동합니다 ... 코드는 논리적으로 동일한 엔티티에 속합니다
어떤 옵션을 선택하겠습니까? 그 이유는 무엇입니까?