문제

나는 친숙합니다 couchdb 그리고 결과를 스칼라 객체에 매핑하고 그 결과를 반복하는 자연스러운 방법을 찾는 아이디어는 즉시 이루어졌습니다.

그러나 루비 및 자바 스크립트와 같은 역동적 인 언어는 CouchDB의 JSON/Document-Centric/Shchema-free aproach와 매우 잘 어울린다는 것을 알 수 있습니다.

정적 언어로 소파로 일을하기에 좋은 aproach가 있습니까?

도움이 되었습니까?

해결책

CouchDB는 순전히 JSON 객체와 함께 작동한다는 것을 이해합니다. JSON은 유형이 없기 때문에 역동적 인 언어에 더 자연스럽게 적합하다고 믿고 싶어합니다. 그러나 XML은 일반적으로도 유형이 없으며 Scala는 XML을 생성하고 조작하는 데 도움이되는 라이브러리 지원이 매우 좋습니다. Scala의 XML 기능 탐색은 다음을 참조하십시오. http://www.ibm.com/developerworks/library/x-scalaxml/

JSON과 마찬가지로. 적절한 라이브러리 지원을 통해 JSON을 다루는 것은 정적 언어로도 자연스럽게 느낄 수 있습니다. Scala에서 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

다른 팁

당신이 올바른 질문을했는지 궁금합니다. 동적 언어가 아닌 스칼라를 사용하는 이유는 무엇입니까? 아마도 Scala가 당신에게 제공하는 약간의 선 때문에 당신에게 중요한 코드 품질을 가정합니다. 그렇다면 왜 "정적으로 유형 된"(IE 스키마 기반) 데이터베이스를 사용하지 않습니까? 다시 한번 나는 단지 단지 가정하지만, 변화에 대응하는 능력이 떠 오릅니다. 생산 SQL 데이터베이스는 변경하고 리팩터를 변경하기가 매우 어려운 끔찍한 경향이 있습니다.

그래서, 당신의 데이터 약하게 입력하고 당신의 암호 강하게 입력되었습니다. 그러나 어딘가에 전환을해야합니다. 이것은 어딘가에 데이터베이스에 없어도 데이터에 대한 "스키마"가 있음을 의미합니다. 이 스키마는 소파 문서를 매핑하는 클래스로 정의됩니다. 이것은 완벽한 의미가 있습니다. 내가 본 소파의 대부분의 용도에는 "타입"과 같은 키와 각 유형에 대해 최소한 공통 키 세트가 있습니다. JSON을이 Scala 클래스에 손으로 깎을 것인지 또는 예를 들어 멋진 반사 도구 (느리지 만 예쁘다) 또는 내가 아직 새롭고 더 멋진 Scala 기능을 사용하는지 여부는 세부 사항입니다. 쉬운 슬로우로 시작한 다음 충분히 빠른지 확인하십시오.

큰 일은 수업, 즉 스키마, 변화. 테이블을 변경하는 대신 클래스를 변경하고, 문서가 누락 된 키가 누락 된 경우 (이전 버전의 클래스를 기반으로했기 때문에), 오프가됩니다. 변화에 대한 응답은 결코 쉬운 일이 아니 었으며 여전히 코드가 얻을 수있는만큼 정적으로 입력되었습니다.

이것이 당신에게 충분하지 않고 스키마를 전혀 원하지 않는다면, 당신은 클래스를 사용하여 데이터를 정의하고 조작하고 싶지 않다고 효과적으로 말하고 있습니다. 그것도 괜찮습니다 (사용을 상상할 수는 없지만) 질문은 동적 대 정적 언어에 관한 것이 아니라 클래스 기반 OO 언어를 전혀 사용할지 여부에 관한 것입니다.

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