파일 이름의 일부인 버전 번호


15

일부 소프트웨어는 파일 이름의 일부로 버전 번호가 포함되어 있지만 다른 소프트웨어는 그렇지 않습니다. 나는 후자에 더 익숙하고 더 인기가 있다고 생각하지만 때로는 자바 스크립트 라이브러리에서 이전 유형을 봅니다. 예를 들어, jQuery의 파일 이름은 jquery-2.1.0.js대신에 사용 jquery.js됩니다. 이러한 유형의 파일을 업데이트 할 때마다 해당 파일을로드하는 다른 프로그램에서 해당 위치를 찾아서 참조하는 파일 이름을 변경하고 이러한 라이브러리의 이전 버전을 수동으로 삭제해야합니다. 그것은 나에게 불편하므로 버전 번호를 제외하고 파일 이름을 바꾸고 버전 번호를 포함하지 않는 파일 이름을 유지하십시오.

이 숫자는 일종의 버전 관리를위한 것으로 생각되지만 언제 어떻게 사용되는지는 확실하지 않습니다.

  • 파일 이름에 버전 번호를 포함시키는 장단점은 무엇입니까?
  • 파일 이름에 버전 번호를 사용하는 소프트웨어 또는 언어 영역과 언어 / 영역이 아닌 영역에 대한 실질적인 합의가 있습니까? 그렇다면 그에 대한 근거가 있습니까?

3
가장 큰 장점은 변경하기 전에 변경 사항이 발생하지 않도록 보장 할 수 있다는 것입니다.
ratchet freak

@ratchetfreak 준비가되지 않은 경우 업데이트하지 않습니다. 당신 은요?
sawa

2
@sawa jQuery.com/jquery.js가 최신 버전의 URL이며 코드가 참조하는 것으로 가정하십시오. jQuery가 급격한 업데이트를 게시하면 어떻게됩니까? 물론, 당신은 당신의 자신의 로컬 사본에 링크하지만 이것이 라
chet

@ 11684 알 겠어요.
sawa

1
jquery의 예에서 Google과 cdnjs.com CDN 호스트 버전 모두 파일 이름이 아닌 디렉토리 트리에 버전을 넣었다는 것을 지적합니다. (jquery.com 및 Microsoft의 jquery CDN은 파일 이름으로 버전이 있습니다.)
Brian S

답변:


24
  1. 필요한 버전을 지정하는 것이 좋습니다. 의지 할 수있는 행동이 변경되었을 수 있으므로 새로운 것이 항상 더 좋은 것은 아닙니다. 먼저, 새 버전의 라이브러리가 적합한 지 테스트하십시오. 그런 다음 명시 적으로 업데이트하십시오.

  2. 웹 리소스의 경우, 캐싱 의 맥락에서 버전이 파일 이름의 일부가되는 것이 중요합니다 . 정적 리소스 jquery.js의 경우 다시 가져 오기 전에 매우 긴 캐시 시간이 필요합니다. 그러나 업데이트하는 동안 다음날 클라이언트가 새 버전으로 전환하지 않고 코드에서 새 버전을 즉시 사용하려고합니다 . 로이 foo-1.2.3.js같은 다른 자원 foo-1.2.4.js에는 캐시가 방해가되지 않습니다.


1
+1이지만이 답변은 약간의 단일 가장자리라고 생각합니다. "버전 번호 없음"이 더 나은 선택 일 수있는 상황이 실제로 있습니다. 아래 답변을 참조하십시오.
Doc Brown

3

(@amon이 언급 한 웹 캐싱 상황 제외) : 프로그램 사용을 위해 타사 라이브러리의 로컬 사본을 작성한다고 가정합니다. 그렇지 않으면 버전 번호가 필요합니다. 개발중인 소프트웨어 시스템 내에서 이러한 타사 라이브러리의 사용 시나리오는 다음 두 가지 중 하나 일 수 있습니다.

  • lib를 사용하는 프로그램의 모든 부분은 항상 같은 버전의 lib를 공유해야하며 (이상적으로 "최신") lib를 수시로 업데이트 할 것입니다. 그런 다음 파일 이름의 일부로 버전 번호를 유지하는 것은 매우 지루할 수 있으므로 가능하면 파일의 로컬 사본에서 번호를 제거하는 것이 좋습니다. 타사 공급 업체가 라이브러리를 대부분 이전 버전과 호환되는 버전으로 유지한다는 확신이있는 경우 이는 좋은 아이디어입니다.

  • 프로그램의 버전 A가 필요한 부분과 버전 B가 필요한 다른 부분이 있어야합니다. 그러면 타사 lib의 버전 번호가 분명히 필요합니다. 이 상황은 새 버전을 도입 한 후 lib를 사용하여 모든 소프트웨어 부품을 한 번에 쉽게 테스트 할 수없는 경우에도 발생할 수 있습니다.

또한 라이브러리 공급 업체 인 경우 기본적으로 버전 번호를 포함해야하지만 해당 lib의 사용자가 해당 번호를 유지하거나 제거 할 것인지 스스로 결정하도록합니다.


예. 네 말이 맞아 두 가지 사례 중 첫 번째 사례를 언급했습니다.
sawa

1
@sawa : 귀하의 예는 jqueryamon의 웹 캐싱 인수가 보유한 것입니다. 내 대답의 이유는 "버전 번호 없음"이 더 나은 선택 일 수있는 다양한 상황을 설명하는 것이 었습니다.
Doc Brown
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.