DSL 단어와 모델 검사
팀만의 DSL 단어
ElastiCORE 는 모르는 단어를 오류로 보지 않고 보관만 합니다. 생성 코드에는 아무것도 나오지 않고, 규칙이 읽을 수 있습니다. 그래서 팀의 개념을 YAML 에 그대로 적게 할 수 있습니다.
model/entity.yml
Category:
meta: entity @root @editable @expose(20) @access(read=public) @nodelete # 엔티티 단어
Customer:
fields:
email: string(100) @email @pii # 필드 단어
PurchaseOrder:
meta: entity @root @expose(20) @event(Placed(total), Shipped, Cancelled) @topic(petstore.order) # 값이 있는 단어
| 어디에 | 있나 | 값 |
|---|---|---|
엔티티 meta: | e.hasMeta("nodelete") | e.metaValue("topic") → "petstore.order" |
| 필드 | f.hasDsl("pii") | f.dslValue("search") → "like" |
| 같은 단어 여러 번 | e.metaValues("x") | |
이름 붙은 속성 @x(a=1, b=2) | f.dslProperty("x", "a"), e.metaText("x") (원문) |
필드 단어는 대소문자를 가리지 않습니다(@PII 도 hasDsl("pii")).
지을 때:
- ElastiCORE 에 이미 있는지 먼저 -
@readonly,@expose(methods),@example,@label처럼 이미 있는 기능을 다시 만들지 마세요. 규칙을 지워 보고 결과가 그대로면 이미 있는 것입니다. 목록: DSL 레퍼런스. - 이미 쓰는 단어와 겹치지 않게 -
@event,@search,@label… 걱정되면 팀 접두사(@psTopic). - 철자가 틀려도 조용합니다 -
@pi는 그냥 무시됩니다. 중요한 단어라면 아래처럼 검사 규칙을 두세요.