독립 당신이 개 마이크로 서비스를 가진하고 내가 또한 코드를 복제 할 미래에 독립적 데의 측면에서. 이전과 똑같은 상황이었습니다. 여러 마이크로 서비스는 별도의 병에 넣을 수있는 "공통"클래스를 사용하는 것 같습니다. 결국 우리는 다음과 같은 상황을 겪었습니다 : - 동일한 JAR을 사용하는 여러 개의 (5+) 서비스 - 우리가 생각한 클래스가 다른 서비스에서 약간 다른 의미를 가진 것으로 나타났습니다. - 클래스가 더 많거나 적게 우리가 모든 마이크로 서비스에 릴리스를 강요 당했을 때 (더 이상 여기서는 독립성이 없음) - 개발자는 "일반적인"동작을 모든 곳에서 보려는 경향이 있습니다. 따라서 "Helper/Utility "한편 OOP에서 코드 냄새라고 여겨지는 클래스도 있습니다.
짧은 코드로 코드를 복제하면 코드가 중복되어 정말 독립적으로 우리의 mircoservices를 처리 할 수 있습니다. 필요하다 서비스 계약에 충실하십시오. 내부적으로 발생하는 일은 완전히 서비스에 달려 있으며 반복이 끝나면 모든 서비스를 해제 할 필요가 없습니다. 나는 다른 옵션이 잘못되었다는 말은 아니지만 그것이 우리에게 적합하지 않다는 것이 밝혀졌습니다. 두 서비스 사이에 공통적 인 클래스가 실제로 표시되면 공통 라이브러리를 다른 쓰레기와 함께 엉망으로 만들지 말고 확실한 결과를 얻을 수 있습니다.
편집
아마 후속 조치로, 우리는 몇 가지 일반적인 클래스에서 테스트 (단위 및 통합)를 갖는 주 테스트 코드의 안부 같은 논의를했다.결국 코드 또는 승인 기준의 모든 미세한 변화가 테스트의 50 %를 실패로 만들면서 이것은 지옥이었습니다. 한편 우리의 전략은 테스트 레벨에서 아무 것도 공유하지 않고 테스트 장소에서 모든 것을 갖추는 것입니다. 이를 통해 테스트를 제거하거나 변경하는 데 빠르다. 결국 우리를위한 교훈은 비즈니스 코드를 적절하고 깔끔하고 우아한 것으로 유지하는 것이었고 테스트 코드는 가능한 한 가장 적은 두통을 줄 수있는 방법이었습니다.
엔티티 개체의 공통 항아리에 문제가없는 것으로 보입니다. 외부 API 라이브러리를 사용하는 것과 같은 생각입니다. –
hecko84가 지적한 공통 항아리의 문제점은 실제라고 생각합니다. 이제이 와트는 좋은 문제처럼 보입니다. –