소프트웨어는 살아 있습니다. 이 말은 때때로 특정 상태가 되어 사용자를 괴롭히는 부분을 말하는 것이 아닙니다. 이는 아마도 어딘가의 버그로 설명할 수 있을 것입니다.
살아 있다는 것은 사랑받고 잘 사용되는 소프트웨어는 자극에 반응하여 끊임없이 성장하고 변화한다는 사실을 의미합니다. 환경이 변하면 소프트웨어도 변합니다. 목표가 바뀌면 확장됩니다. 이에 충실하지 못한 소프트웨어는 소프트웨어 세계에서 원치 않는 새로운 별명을 얻게 됩니다: 레거시.
비유를 좀 더 확장하면 동식물에 대해 이야기하는 건가요, 아니면 동물에 대해 이야기하는 건가요? 당연히 동식물입니다.
식물은 계절이 바뀌고 환경이 변화함에 따라 주변 동식물 등을 이용하기 위해 적응합니다. 실제로 생존자들은 벌레의 공격에도 대응합니다.
새로운 기능을 위한 성장
먼저, 여기서 말하는 것은 관련 따옴표와 함께 "SDK 3"이라는 점을 간단히 언급하겠습니다. 실제로는 모든 Couchbase Server SDK를 인위적으로 공통 버전 번호에 묶으려 하지 않고 사실상의 시맨틱 버전 관리 표준. 따라서 특정 플랫폼의 기능을 업데이트할 때는 부 버전을 업데이트하고, 새로운 플랫폼을 도입할 때는 1.0부터 시작합니다.
그렇다면 'SDK 3'는 무엇을 의미할까요? 플랫폼 관용구를 존중하여 주요 새 기능을 도입하고 인터페이스를 플랫폼에 맞게 최신으로 업데이트하는 SDK에 공통된 기능 집합에 부여하는 이름입니다. 이는 쉬운 일이 아닙니다!
은유적으로 말하면, 이전 세대에 비해 돌연변이를 일으켜 새로운 환경에서 번성할 수 있는 식물이라고 할 수 있습니다.
이렇게 변형을 필요로 하는 환경에는 어떤 변화가 있었나요?
첫 번째 Node.JS SDK를 출시했을 때는 프로미스 라이브러리가 존재하지 않았고 비동기 대기 방식으로의 전환이 시작되지도 않았습니다. 이 SDK를 더 쉽게 사용할 수 있도록 시그니처에 몇 가지 변경 사항을 적용했습니다. Couchbase는 Java를 통해 반응형 프로그래밍 모델을 채택하는 데 앞장서 왔습니다. 우리는 RxJava를 일찍 도입했고, 우리 주변의 미시적 환경이 반응형 스트림과 프로젝트 리액터에 더 유리했습니다. .NET의 경우 .NET Core로 빠르게 포팅하고 최신 비동기 대기 기능을 추가했지만, 약간의 정리와 재구성을 통해 더 매력적인 플랜트를 만들 수 있었습니다.
목록은 실제로 계속됩니다: 파이썬 3, 스칼라의 인기 상승, 주요 릴리스가 출시된 PHP 등 다양한 목록이 있습니다.
캐노피의 성장
"SDK 3"의 성장은 SDK 제품군에만 적용되는 것이 아닙니다. 앞으로 몇 주 안에 Couchbase Server 기능 영역에서도 약간의 성장이 있을 것입니다. 거기에서 보게 될 많은 기능을 미리 알려드리고 싶지는 않지만, 한 가지 눈에 띄는 것은 컬렉션의 미리보기 기능 지원입니다. 이전 릴리스와의 호환성을 보장하기 위해 이러한 작업을 수행했으므로, 성숙해진 성장과 함께 이 새로운 작물 중 하나를 계속 사용할 수 있습니다.
새로운 촬영에 대한 자세한 내용은 곧 카우치베이스 블로그에서 다시 확인하세요...
효율성을 위한 트리밍
남은 열매를 더 맛있게 수확하기 위해 열매를 솎아내는 것처럼, 새싹이 생길 가능성이 적은 몇 가지를 제거했습니다. 즉, 앞으로는 이전 버전의 PHP 5를 지원하지 않고 Python 3만 지원하며 일부 이전 Linux 플랫폼은 제거할 예정입니다. Java의 경우, 이는 Java 8 이후 버전만 지원한다는 의미입니다. 호환성에 대한 자세한 내용은 문서를 참조하시기 바라며, 개선이 필요한 사항에 대한 피드백도 언제든지 환영합니다.
원치 않는 해충
유지 관리 릴리스가 매우 많았기 때문에 다음 주요 릴리스에 반영할 버그는 많지 않았지만, API를 깨지 않고는 수정할 수 없는 버그가 몇 가지 있었습니다. 가장 마음에 드는 버그는 다음과 같습니다. SDK Java의 2038년 버그. 2038년 1월 19일이 다가옴에 따라 Couchbase Java SDK 2.x를 사용하는 경우, 앱이 충분한 수명을 가진 TTL을 표현할 수 없어 중단될 수 있음을 미리 알려드립니다.
조금 더 미묘한 부분도 있습니다. 없는 경우 회로 차단기 를 일부 SDK에서 직접 처리하지 않았기 때문에 앱 개발자가 더 높은 수준에서 처리해야 했습니다. 아직 모든 알파 릴리스에 적용되지는 않았지만, 이제 적절한 곳에 이 기능을 추가하고 있습니다.
백만 송이의 꽃을 피우다
일부 알파 릴리스에 대한 특정 블로그를 확인하시고 피드백을 보내주시기 바랍니다. The 카우치베이스 포럼 는 피드백을 전달하기에 가장 좋은 영역이지만, 항상 감사하게도 제기된 문제도 풀 리퀘스트에 대해 기꺼이 협업해 드리겠습니다.
제프 모리스는 .NET Alpha의 블로그에서 버전 관리와 범위/컬렉션에 대해 좀 더 자세히 설명합니다. 마이클 니칭거가 후속으로 Java 3.0 알파에 대한 블로그에서 크로스 SDK API 세부 정보를 확인하세요.. 브렛 로슨이 어떻게 이런 일이 가능한지 이야기합니다. 는 프로미스와 ECMAScript6을 사용하는 Node.JS 개발자에게 적용됩니다.. 찰스 딕슨은 거기서부터 Go SDK 2.0 알파 (의도적인 오프-바이-원 버그). 그리고 첫 번째 블로그에서 Ellis Breen은 다음과 같이 보여줍니다. 광전지는 파이썬 3.0 알파 포함 그레이엄 피플 흥미로운 새로운 Scala SDK 알파 1.0을 소개합니다. (하나의 버그에 의해 두 개의 버그가 발생했습니다!).
이 모든 것 외에도 일반적인 위치에 PHP와 libcouchbase의 알파, PECL 및 다운로드 링크 등이 있습니다.
사진 원본 출처 제공 위키피디아 이미지.