저는 CouchDB에 익숙하며 그 결과를 Scala 객체에 매핑하는 아이디어뿐만 아니라 iteract에 대한 자연스러운 방법을 찾아 immediatly했습니다.CouchDB는 동적 언어에 가장 적합합니까?
그러나 Ruby 및 Javascript와 같은 동적 언어는 CouchDB의 json/document-centric/shchema-free aproach로 매우 잘 수행됩니다.
정적 언어로 소파를 사용하면 어떤 좋은 일을 할 수 있습니까?
저는 CouchDB에 익숙하며 그 결과를 Scala 객체에 매핑하는 아이디어뿐만 아니라 iteract에 대한 자연스러운 방법을 찾아 immediatly했습니다.CouchDB는 동적 언어에 가장 적합합니까?
그러나 Ruby 및 Javascript와 같은 동적 언어는 CouchDB의 json/document-centric/shchema-free aproach로 매우 잘 수행됩니다.
정적 언어로 소파를 사용하면 어떤 좋은 일을 할 수 있습니까?
나는 CouchDB가 순전히 JSON 객체로 작동한다는 것을 알고있다. JSON은 유형이 지정되지 않았으므로 역동적 인 언어에 더 적합하다고 생각하고 싶습니다. 그러나 XML은 일반적으로 형식이 지정되지 않았으며 Scala는 XML을 만들고 조작하는 데 매우 우수한 라이브러리 지원을 제공합니다. Scala의 XML 기능에 대한 자세한 내용은 http://www.ibm.com/developerworks/library/x-scalaxml/
JSON과 비슷합니다. 적절한 라이브러리 지원을 통해 정적 언어에서도 JSON을 자연스럽게 처리 할 수 있습니다. 스칼라에서 JSON 데이터를 처리하는 방법 중 하나는 http://technically.us/code/x/weaving-tweed-with-scala-and-json/
일반적으로 객체 데이터베이스를 사용하여 "모델"(예 : 언어로 클래스 사용)을 정의하고 JSON을 사용하는 것이 편리 할 때가 있습니다 또는 XML 또는 일부 다른 유형이없는 문서 언어가 클래스의 직렬화 된 표현이 될 수 있습니다. 적절한 라이브러리 지원은 직렬화 된 양식 (JSON과 같은)과 메모리 내 데이터 구조 사이에서 정적 유형 지정과 함께 제공되는 모든 이점을 변환 할 수 있습니다. 이 접근법의 한 예는 JSON과의 변환을 추가 한 Lift의 레코드를 참조하십시오. http://groups.google.com/group/liftweb/msg/63bb390a820d11ba
감사합니다!스칼라에서 XML로 할 수있는 JSON을 사용하는 것이 좋을까요? – paulosuzart
예. 위의 링크 된 n8han의 라이브러리는 환상적인 출발점이라고 생각하지만, 스칼라에서 더 나은 JSON 라이브러리 지원을 위해 더 많은 작업을 수행 할 수 있습니다. –
올바른 질문을 던지 셨는지 궁금합니다. 왜 동적 언어가 아닌 스칼라를 사용하고 있습니까? 스칼라가 당신을 위해 당신에게 중요한 것을 선사해 주었고 아마 당신의 코드 품질이라고 생각합니다. 그렇다면 왜 "정적으로 유형화 된"(즉, 스키마 기반) 데이터베이스를 사용하지 않는 것입니까? 다시 한번 나는 단지 추측하고있다. 그러나 변화에 반응하는 능력은 마음에 온다. 프로덕션 SQL 데이터베이스는 변경 및 리팩토링이 매우 어렵다는 끔찍한 경향이 있습니다.
그래서, 당신의 데이터 약하게 입력 된, 그리고 코드 강력하게 입력됩니다. 하지만 어딘가에서 전환을해야합니다. 즉, 데이터베이스에 아무 것도없는 경우에도 데이터의 "스키마"가 생깁니다. 이 스키마는 Couch 문서를 매핑하는 클래스에 의해 정의됩니다. 이것은 완벽하게 이해할 수 있습니다. 내가 본 Couch의 대부분의 사용법은 "유형"과 같은 키를 가지고 있으며 각 유형마다 적어도 일부 공통 키 세트를 가지고 있습니다. JSON을 이러한 스칼라 클래스로 직접 매핑할지 또는 예를 들어 사용할지를 결정합니다. 멋진 리플렉션 도구 (느리지 만 예쁜) 또는 아직 익숙하지 않은 스칼라 스칼라 기능 중 일부는 세부 사항입니다. 쉽지 만 느린 것으로 시작한 다음 충분히 빠르는지 확인하십시오.큰 문제는 클래스, 즉 스키마 이으로 변경 될 때 발생합니다. 테이블을 변경하는 대신 클래스를 변경할 수 있습니다. 일부 문서의 경우 누락 된 것으로 예상되는 키 (이전 버전의 클래스를 기반으로했기 때문에)를 사용하면 편리합니다. 변경에 대한 응답은 결코 쉬운 일이 아니며 여전히 코드는 정적으로 입력 된대로 입력됩니다.
이 방법으로는 충분하지 않으며 스키마가 전혀 필요하지 않으면 데이터를 정의하고 조작하기 위해 클래스를 사용하고 싶지 않다는 것을 효과적으로 알리고 있습니다. 괜찮 았지만 (사용법을 상상할 수는 없지만) 동적 언어와 정적 언어가 아니라 클래스 기반 OO 언어를 사용할지 여부에 대한 질문입니다.
다음 질문으로이 질문을 볼 수 있습니다. CouchDB에 가장 적합한 동적 언어가 있습니까? – paulosuzart