Jump to content
Wikimedia Meta-Wiki

Abstraktní Wikipedie/Požadavky na tvorbu objektů

From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page Abstract Wikipedia/Object creation requirements and the translation is 100% complete.

Tato stránka je v současnosti pracovní verzí. Na diskusní stránce k tomu možná jsou dostupné bližší informace.

Pro správce překladů: Obvykle se pracovní verze neoznačují pro překlady.
Abstraktní Wikipedie
(Diskuse)
Obecné informace
Vývojový plán
Poznámky, koncepty, diskuse
Příklady a makety
Datové nástroje
Historický
Wikifunkce budou mít ve svém hlavním jmenném prostoru různorodý počet objektů.

Každý objekt musí mít přesně jeden typ a tento typ se obvykle nemění.

  • Podle typu může mít objekt klíče, které mohou mít hodnoty.
  • Každá hodnota je zase jiným objektem (typ tohoto objektu však může být omezen definicí typu vkládaného objektu pro daný klíč).
  • Typy může vytvářet a udržovat (a měnit) komunita.

Například: předpokládejme, že chceme vytvořit objekt typu "Datum v gregoriánském kalendáři", který bude reprezentovat datum, například 7. května 1945.

  • Typ Date (Datum) by mohl deklarovat, že má jeden klíč pro měsíc (jeden pro rok, jeden pro den) a hodnota klíče "month" (měsíc) by byla typu "Month in the Gregorian calendar".
  • Tento typ by zase byl výčtem s dvanácti možnými hodnotami od ledna do prosince.

Samotné hodnoty mohou být poměrně složité a někdy rekurzivní, takže celá struktura může být poměrně velká a nepřehledná.

Otázka designu zní:

Jak umožnit snadné vytváření (a prohlížení a úpravy) objektů?

Postup je následující:

  • Editor chce vytvořit objekt.
  • Nejprve musí vybrat typ objektu, který má být vytvořen. Seznam možných typů může být poměrně dlouhý a přispěvatelé mohou vytvářet nové typy.
  • Na základě vybraného typu musí přispěvatel zadat hodnoty pro všechny vlastnosti klíče, pro které chce nebo musí zadat hodnoty.
    • Některé klíče mohou být nepovinné nebo mohou mít výchozí hodnoty.
    • Některé klíče mohou přebírat seznamy objektů buď určitého typu, nebo ne.
  • Každý klíč přebírá jiný objekt. Typ objektu, který každý klíč přebírá, je často určen typem, který definuje klíč, takže již víme, že tato hodnota musí být určitého typu.
    • Některé typy mohou mít uzavřený malý počet možných hodnot (např. boolean může být true nebo false, gregoriánský kalendářní měsíc může být leden až prosinec).
    • Některé typy nabývají většího počtu možných hodnot (např. v závislosti na jazyce, který MediaWiki podporuje).
    • Některé typy přijímají neomezený počet možných hodnot (např. řetězec může být libovolná hodnota zadaná uživatelem, číslo může být libovolné číslo zadané uživatelem).
  • Téměř všude, kde můžeme zadat hodnotu, můžeme také zadat volání funkce.
    • Volání funkce označuje funkci, která vrací hodnotu požadovaného typu a která může, ale nemusí přijímat řadu argumentů s určitými typy.
    • Každý parametr má své jméno. (Volání funkcí s argumenty vypadá podobně jako typy s klíči a může mít stejný design.)
    • Hodnoty parametrů zase mohou být voláními funkcí.

Příklad: předpokládejme, že zadáváme datum, jak bylo uvedeno dříve.

  • Když se dostaneme k výběru hodnoty pro klíč "měsíc", můžeme místo výběru jednoho z dvanácti dostupných objektů typu "gregoriánský kalendářní měsíc" zadat také volání funkce, např. "get month from date" (vrať měsíc z data) s jediným argumentem přebírajícím gregoriánské datum.
  • Tento parametr by zase mohl být voláním funkce, např. "převést datum z islámského kalendáře na gregoriánský kalendář", která zase přijímá jeden argument, kterým je "datum islámského kalendáře", a měla by své vlastní klíče, které je nyní třeba zadat.
  • Ten by se uložil jako celá struktura a nezměnil by se automaticky pouze na "May", takže je třeba strukturu znovu zobrazit a upravit.

Někdy může parametr nebo klíč nabývat hodnoty libovolného typu. V takovém případě musíme přispěvateli umožnit, aby před zadáním hodnoty nejprve vybral typ.

V ideálním případě by rozhraní mělo dobře fungovat na mobilních zařízeních:

  • Objekty vždy tvoří stromy.
  • V ideálním případě můžeme sbalit větve stromu, abychom se mohli zaměřit na určité části objektu a zobrazit je a upravit.

Viz též

AltStyle によって変換されたページ (->オリジナル) /