예를 들어, Java 로 앱을 작성한다고 가정하십시오 .
앱은 Python으로 작성된 API 서버와 통신합니다 .
Python 서버는 SQL 데이터베이스 와 통신 합니다.
JavaScript로 작성된 앱 웹 사이트도 있습니다 .
4 개의 다른 언어를 사용하면 본질적으로 동일한 데이터 구조를 4 개의 다른 시간으로 반복하는 것이 쉽습니다.
예를 들어, User
유형은 다음과 같습니다 (의사 코드).
type User {
integer id;
string name;
timestamp birthday;
}
프로젝트의 모든 부분은에 대한 일종의 표현이 필요합니다 User
. Java와 Python 부분에는 두 가지 다른 class
선언 이 필요합니다 . 데이터베이스에는 User
테이블 선언 이 필요합니다 . 그리고 프런트 엔드 사이트 User
도 역시 표현해야합니다 .
이 유형을 4 번 반복하면 실제로 반복하지 말아야 할 원칙 이 깨집니다 . 또한 User
유형이 변경되면 프로젝트의 모든 다른 부분에서 이러한 변경 사항을 반복해야한다는 문제가 있습니다.
Google의 protobuf 라이브러리는 특수 구문을 사용하여 데이터 구조를 작성한 다음 라이브러리가 여러 프로그래밍 언어로 구조 선언을 생성하는이 문제에 대한 일종의 솔루션을 제공 한다는 것을 알고 있습니다. 그러나 이것은 여전히 유형에 대한 유효성 검사 논리를 반복 해야하는 문제를 다루지 않습니다.
누구든지 이것에 관한 책이나 블로그 게시물에 대한 제안이나 링크가 있습니까?
Repeating this type 4 different times really breaks the Don't-Repeat-Yourself principle
. 그렇지 않습니다. 다른 일을하는 4 가지 시스템이 있습니다. 너무 많이 말리고 있습니다. 내 경험에 비추어 볼 때, 재사용 가능성은 악의 씨앗입니다. 그것은 User
4 개의 다른 언어로 4 번 반복되는 것보다 더 나쁩니다 . 분산 환경에서 커플 링은 문제입니다. 건조하지 않습니다.