CouchDB를 완벽 가이드 (here)이 단락을 읽은 후 : CouchDB 디자인 문서에서 validate_doc_update 함수가 여러 개 있습니다. 좋은 습관?
여러 설계 문서가있는 경우
하는 validate_doc_update 기능을 가진 각각의 그 모든 기능은 각 들어오는 쓰기 요청에 따라이라고합니다. 모두가 통과 할 경우에만 쓰기가 성공합니다. 유효성 검사 실행 순서는 정의되지 않습니다. 각 유효성 검사 기능은 자체적으로 작동해야합니다.
validate_doc_update 함수를 여러 개 처리하는 것이 좋은지 궁금합니다.
의미 : validate_doc_update 필드가있는 디자인 문서를 하나만 만들거나 더 작은 디자인 문서를 만드는 것이 더 좋습니까?
첫 번째 경우에는 유효성 검사 기능이 다른 기능을 방해하지 않는다는 것을 확신 할 수 있지만 많은 제어가 필요할 경우 기능이 매우 커질 수 있습니다.
다른 측면에서는 몇 가지 작은 함수가 읽기 목적과 진화를 위해 더 쉬울 수 있지만 각 함수의 목적을 분명히하고 다른 함수를 엉망으로 만들지 않아야합니다.
또한 각 설계 문서에 유효성 검사 기능을 포함시키는 것이 무엇입니까? 뷰 문서에 하나를 저장하는 것은 약간 더러운 것처럼 보일 수 있지만, 하나의 작은 유효성 검사 기능을 보유하기위한 목적으로 여러 설계 문서를 작성하는 것은 나에게도 영리하지는 않습니다.
당신은 어떻게 생각하십니까?
내가 놓친 뭔가, 그게 내 질문의 요점은 여러 validate_doc_update 기능의 관리에 대한 좋은 사례가 무엇입니까?
+1. 처음부터 "디자인 문서"가 "앱"으로 불려지면 어떻게 다른지 궁금해졌습니다. 어쩌면 "앱"은 좋은 단어가 아니지만 "디자인 문서"가 대부분의 사용자에게 많은 의미가있는 것은 아닙니다. (그리고 역사를 바꿀 때 문서를 "레코드"라고 부릅니다.) – JasonSmith
"디자인 문서"가 혼란 스러울 수 있다는 것에 동의합니다. 특히 처음에는 @jhs에 동의합니다. 할 수있는 일은 "validate_doc_update"필드를 포함하고 "views"및 필드를 포함하는 "type"과 같은 다른 것을 금지해야하는 "auth"유형과 같은 다른 "유형"의 디자인 문서를 만드는 것입니다 "views"이고 "validate_doc_update"는 없습니다. 실제로 이것은 검증 기능을 사용하여 수행 할 수 있지만 기본 제공 항목은 내가 생각하는 모든 것을 구성하는 것이 더 쉬울 것입니다. 이렇게하지 않는 것이 좋은 이유는 사용자가 내가 원하는대로 문서를 관리하게하는 것입니다. – Arnaud
예, CouchDB가 편안합니다. 당신이 당신의 자신의 정책을 실행하고 싶다면, 할 수 있고해야한다! 그러나 나는 보통 모든 것을하기 위해 하나의 큰 디자인 문서로 시작하고, 그 다음에는 아주 명백한 이유가있을 경우 더 많은 것을 나눠 씁니다. 예를 들어, 나는 더 빠르기 때문에 Erlang을 사용하여 필터 함수를 구현했습니다. – JasonSmith