문제

내 경험을 통해, 거꾸로/포워드 호환성에 대한 약속은 다음과 같습니다. 금박 케이지 소프트웨어 엔지니어링 산업의. 특히 문서 파일 형식 및 프로그래밍 언어/API의 경우가 사실이라고 관찰했습니다. 고객과 파트너는 기존 데이터 또는 코드가 끊어지면이를 미워합니다. 그러나 호환성을 깨뜨리지 않으면 장기적으로 혁신 할 수있는 능력을 심각하게 제한 할 수 있습니다.

기존 기능의 점진적인 감가 상각 외에이 문제에 대한 해결책이 있습니까? Windows 7의 XP 모드에서와 같이 가상화처럼 보입니다. 다른 사람이 있습니까?

또한 가능한 한 미래를 보장하는 새로운 시스템을 설계하려는 사람들에게는 업계에서 과거의 실수로 인해 어떤 교훈을 배울 수 있습니까?

도움이 되었습니까?

해결책

공개 API를 다시 쓰지 않고 확장하여 혁신합니다. 백엔드 기능에 대한 일관된 일반적인 공개 인터페이스가 있습니다. 공개 API 모듈에 기대하는 결과를 제공하는 한 언제든지 개인 모듈을 다시 작성할 수 있습니다.

백엔드에서 개선을 수행하고 API를 가능한 한 일관성있게 두십시오. 새 모듈을 만들고 API의 공공 부분을 확장 할 때 명확하게 문서화하십시오. 이전 방식에 추가 할 수있는 새롭고 더 나은 방법을 제공하면 이전 방식의 감가 상각이 자연스럽게 올 것입니다.

문서 형식의 경우 항상 버전 번호를 포함하고 모든 버전을 지원할 수있는 방법이 있는지 확인하십시오. API와 마찬가지로 다시 쓰기가 아니라 확장하여 새 기능을 추가하십시오.

소프트웨어의 전체 아키텍처에 근본적인 변경을 원할 때 새 버전을 모듈로 포함하도록 새 버전을 포함 시키십시오. 이는 오래된 데이터 및 프로그램에 대한 크기가 높지만 더 나은 지원으로 이어질 것입니다.

다른 팁

XML을 파일 형식의 기본으로 사용하고 사양 DTD에만 추가하고 삭제하지 마십시오. 이렇게하면 파일이 이전 버전과 호환되어야합니다.

다음은 좋은 예입니다. 사용 SLF4J 교량 Java의 한 로깅 모듈에서 다른 로깅 모듈로 쉽게 마이그레이션 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top