추상 위키백과/객체 생성 요구 사항
Appearance
이 문서는 현재 초안입니다. 관련하여 더 많은 정보가 토론 문서에 있을 수 있습니다. 번역 관리자께: 일반적으로 초안은 번역으로 표시하지 않습니다. |
추상 위키백과 |
---|
(토론) |
일반 |
개발 계획 |
메모, 초안, 토론 |
|
예제 및 모형 |
데이터 도구 |
역사 |
- 위키함수는 기본 이름공간에 다양한 객체를 보유합니다.
각 객체에는 정확히 하나의 유형이 있어야 하며 유형은 일반적으로 변경되지 않습니다.
- 유형에 따라 객체에는 값이 있을 수 있는 키가 있을 수 있습니다.
- 각 값은 차례로 다른 객체입니다(그러나 해당 객체의 유형은 지정된 키에 대한 포함 객체 유형의 정의에 의해 제한될 수 있음).
- 유형은 커뮤니티에서 만들고 유지 관리(변경)할 수 있습니다.
예를 들어: 1945년 5월 7일과 같은 날짜를 나타내기 위해 "그레고리력의 날짜" 유형의 객체를 생성한다고 가정합니다.
- 날짜 유형은 월에 대해 하나의 키(연도에 대해 하나, 일에 대해 하나)가 있다고 선언할 수 있으며 키 "월"의 값은 "그레고리력의 월" 유형이 됩니다.
- 해당 유형은 차례로 1월에서 12월까지 가능한 12개의 값이 있는 열거형이 됩니다.
값 자체는 매우 복잡하고 때로는 재귀적일 수 있으므로 전체 구조가 다소 커지고 다루기 어려워질 수 있습니다.
디자인 질문은 다음과 같습니다:
- 객체를 쉽게 생성(및 보기 및 편집)할 수 있는 방법은 무엇입니까?
단계는 다음과 같습니다:
- 기여자는 객체를 만들고 싶어합니다.
- 먼저 생성할 객체의 유형을 선택해야 합니다. 가능한 유형의 목록은 상당히 길 수 있으며 기여자는 새 유형을 만들 수 있습니다.
- 선택한 유형에 따라 기여자는 자신이 원하거나 값을 제공해야 하는 모든 속성 키에 대해 값을 제공해야 합니다.
- 일부 키는 선택 사항이거나 기본값을 가질 수 있습니다.
- 일부 키는 특정 유형이든 아니든 객체 목록을 취할 수 있습니다.
- 모든 키는 다른 객체를 사용합니다. 종종 각 키가 취하는 객체의 유형은 키를 정의하는 유형에 의해 결정되므로 이 값이 특정 유형이어야 한다는 것을 이미 알고 있습니다.
- 일부 유형에는 가능한 소수의 값이 닫혀 있을 수 있습니다(예를 들어, 불리언은 참 또는 거짖일 수 있고 그레고리력 월은 1월에서 12월까지일 수 있음).
- 일부 유형은 가능한 값을 더 많이 사용합니다(예를 들어, 미디어위키에서 지원하는 언어에 따라 다름).
- 일부 유형은 가능한 값의 끝이 없는 수를 취합니다(예를 들어, 문자열은 사용자가 제공한 임의의 값일 수 있고 숫자는 사용자가 제공한 임의의 숫자일 수 있음).
- 값을 입력할 수 있는 거의 모든 곳에서 함수 호출을 입력할 수도 있습니다.
- 함수 호출은 필요한 유형의 값을 반환하고 특정 유형의 여러 인수를 취하거나 취하지 않을 수 있는 함수를 나타냅니다.
- 모든 인수에는 이름이 있습니다. (사실 인수가 있는 함수 호출은 키가 있는 유형과 매우 유사하며 동일한 디자인을 사용할 수 있습니다.)
- 인수 값은 차례로 함수 호출이 될 수 있습니다.
예를 들어, 앞에서 설명한 대로 날짜를 입력한다고 가정합니다.
- "월" 키에 대한 값을 선택하는 위치에 도달하면 "그레고리력 월" 유형의 사용 가능한 12개 개체 중 하나를 선택하는 대신 함수 호출, 즉 그레고리력 날짜를 취하는 단일 인수로 "날짜에서 월 가져오기"를 입력할 수도 있습니다.
- 그 인수는 차례로 함수 호출이 될 수 있습니다. "이슬람 달력에서 그레고리력으로 날짜 변환", "이슬람 달력 날짜"인 하나의 인수를 취하고 이제 입력해야 하는 자체 키를 갖습니다.
- 이것은 전체 구조로 저장되며 자동으로 "5월"로 바뀌지 않으므로 구조를 표시하고 다시 편집 가능하게 만들어야 합니다.
때로는 인수 또는 키가 모든 유형의 값을 취할 수 있습니다. 이 경우 기여자가 값을 입력하기 전에 먼저 유형을 선택하도록 허용해야 합니다.
이상적으로는 인터페이스가 모바일에서 정말 잘 작동해야 합니다:
- 객체는 항상 트리를 형성합니다.
- 이상적으로는 트리의 가지를 접고 객체의 특정 부분에 집중하여 객체를 보고 편집할 수 있습니다.