FANDOM


Jeśli pierwsze słyszysz o projekcie Unified Community Platform, to przeczytaj proszę tego bloga aby dowiedzieć się więcej na temat zakresu całego projektu przed komentowaniem.

Jako że Fandom kontynuuje w tym roku wydawanie Unified Community Platform, mogłeś zauważyć, że jednym z powodów dla których tworzymy nową platformę jest umożliwienie naszej sieci wiki istnienie na tej samej wersji MediaWiki. Oznacza to, w szczególności dla społeczności już istniejących na Fandomie, aktualizację do MediaWiki w wersji 1.33.

To wyjaśnienie może mieć sporo sensu dla naszych najstarszych, najbardziej doświadczonych użytkowników, ale dla wielu termin „MediaWiki” jest zagadką. Czym jest MediaWiki i dlaczego Fandom się nim przejmuje? Czyż Fandom nie ma swojego własnego, unikalnego kodu? Dlaczego aktualizacja MediaWiki wymaga tak wiele pracy?

Są to istotne pytania, na które dzisiaj odpowiemy. To niezwykle ważne aby nasza społęczność rozumiała gdzie i w jaki sposób Fandom oddziałuje z MediaWiki i dlaczego nowoczesne MediaWiki przekłada się na nowoczesną platformę Fandomu.

Czym jest MediaWiki?

MediaWiki to system zarządzania treścią, z języka angielskiego Content Management System lub w skrócie CMS. W porządku… Czym jest system zarządzania treścią?

MediaWiki logo

CMS-y są aplikacjami pozwalającymi na tworzenie stron internetowych użytkownikom o różnych umiejętnościach technicznych. Są to ogromne aplikacje, ponieważ gromadzą wszystkie elementy potrzebne do prowadzenia udanej witryny, włącznie lecz nie tylko z:

  • Szablonami pozwalającymi tworzyć spójne strony
  • Możliwością dostosowywania i stylizowania wyglądu strony oraz elementów wyświetlania
  • Przyjaznym dla użytkownika interfejsem dodawania i zmieniania treści
  • Narzędziami moderacyjnymi
  • Dobrze ugruntowaną strukturą treści
  • Możliwością łatwego rozszerzania, umożliwiwającą zewnętrznym programistom dodawanie fragmentów kodu do oprogramowania, aby zaspokoić unikalne potrzeby.

CMS jest dość standardową częścią każdej platformy publikującej jakieś treści, najpopularniejszym z nich jest WordPress. Jeśli jesteś w internecie od jakiegoś czasu, nawet wykluczając tę stronę na CMS-ie, pewne jest, że byłeś na stronie zbudowanej przy użyciu CMS-a.

Tworzenie MediaWiki rozpoczęło się w 2001 roku. W całości zostało ono zaprojektowane do hostowania anglojęzycznej Wikipedii. Wiki jako koncepcja zaczęły się pojawiać w połowie lat dziewięćdziesiatych (ang.). Słowo „Wiki” pochodzi od hawajskiego słowa „Wikiwiki”, oznaczającego „szybko”. Wybrana została właśnie ta nazwa, ponieważ strony te umożliwiały szybkie zmiany w tym, co było wyświetlane gdy na nie wszedłeś.

Co czyniło MediaWiki wyjątkowym wtedy i teraz było to, że mogło on połączyć ze sobą nowoczesną kontrolę wersji (w terminach wiki – historię stron) i przechowywanie stron w MySQL. Umożliwa to wiki operowanie na większą skalę niż w innych systemach. Właśnie dlatego Fandom może utrzymywać setki tysięcy wiki na swojej platformie.

MediaWiki zstało pomyślnie wypuszczone na Wikipedii w styczniu 2002 roku. Zainteresowanie deweloperów doprowadziło do utworzenia Fundacji Wikimedia, która opiekuje się oprogramowaniem aż do dzisiaj. Umożliwiło to ludziom używanie MediaWiki na niezależnych stronach internetowych.

Historia Fandomu z MediaWiki

Gdy Fandom został założony przez sławnych wikipedian, Jimmiego Walesa i Angelę Starling w 2004 roku, MediaWiki było oczywistym kandydatem do hostowania wszystkich naszych wiki.

W pierwszych dniach Fandom był głównie prostą farmą wiki – oferowaliśmy ludziom hostowanie wiki bardzo niewiele różniące się od formy „podstawowej” MediaWiki. Co więcej Fandom i Fundacja Wikimedia blisko współpracowały nad wieloma inicjatywami w późnych latach dwutysięcznych i na początku drugiej dekady XXI wieku, włączając w to pierwszego VisualEditora na obu platformach.

Lecz z czasem potrzeby Fandomu i Fundacji zaczęły się rozchodzić. Fundacja, wciąż w głównej mierze zajmująca się wspieraniem Wikipedii, skupiona była na potrzebach tej bardzo specyficznej formy strony będącej źródłem informacji. W tym samym czasie Fandom odkrył, że potrzeby naszych społeczności były dramatycznie inne. W dodatku nasza ogromna liczba setek tysięcy wiki oznaczała, że musieliśmy zmienić kod MediaWiki aby zoptymalizować wydajność witryny. Za każdym razem gdy podstawowe oprogramowanie MediaWiki było aktualizowane, nasi programiści musieli spędzać tygodnie porównując różnice w kodzie i czyniąc nasz niestandardowy kod kompatybilnym przed dalszym zajmowaniem się aktualizacją.

W związku z tym w połowie roku 2013 Fandom zdecydował się na „rozwidlenie” MediaWiki, co oznaczało, że zatrzymaliśmy oprogramowanie MediaWiki które już mieliśmy, ale obraliśmy zupełnie inny dalszy kierunek rozwijania kodu. W rezultacie wiki na Fandomie „zastygły” w MediaWiki 1.19 na niemalże siedem lat.

Co czyni MediaWiki wyjątkowym

Ty i każdy inny może, domyślnie, dodawać i edytować strony!!! …serio, to w gruncie rzeczy tyle. Jest to w zasadzie samo sedno tego, co czyni MediaWiki wyjątkowym.

MediaWiki jest jedynym dużym CMS-em zaprojektowanym tak, aby umożliwać edytowanie przez wszystkich użytkowników. Dowolne inne oprogramowanie tego typu domyślnie zachowuje możliwość dodawania treści tylko dla właściciela strony i innych ręcznie dodanych autorów.

Ponieważ MediaWiki jest centralnie zaprojektowane w oparciu o tę konkretną przesłankę, istnieje kilka rzeczy, które robi bardzo dobrze:

CategoriesforMWBlog

MediaWiki ma płaski, elastyczny system kategorii umożliwiający łatwą organizację.

  • Edytowanie
    • MediaWiki ma domyślną strukturę upranień umożliwiającą końcowym użytkownikom dowolne dodawanie i modyfikowanie zawartości.
    • Używa dość prostej składni nazywanej wikitekstem, która umożliwia Tobie linkowanie do stron, dodawanie obrazów i robienie wielu innych rzeczy bez konieczności nauki HTML-a lub PHP.
    • Parser MediaWiki – silnik, który interpretuje składnię i zamienia ją we właściwy kod HTML do wyświetlenia w twojej przeglądarce – radzi sobie dobrze z niezwykle skomplikowaną składnią, umożliwiwając edytorom tworzenie bardzo szczegółowych stron bez konieczności bardzo intensywnej pracy, by je wyświetlić.
  • Struktura
    • Standardowe MediaWiki celowo nie dostarcza żadnych predefiniowanych zasad tego jak treść ma być ustrukturyzowana i zorganizowana.
    • Jest to zaleta, ponieważ pozwala społecznościom skategoryzować i zorganizować ich strony w sposoby zaspokajające ich potrzeby.
    • Większość kategoryzacji jest wykonywana za pomocą narzędzia „Kategorii” MediaWiki, umożliwiającego użytkownikom proste dodawanie artykułu w zbiorze podobnych stron. Strony mogą znajdować się w dowolnej ilości kategorii.
    • Dodatkowo MediaWiki udostępnia narzędzia nazywane „Stronami specjalnymi”, które zbierają strony o określonej jakości, na przykład Specjalna:Najdłuższe strony.
    • A także przestrzenie nazw, umożliwiające jasne dzielenie typów stron na wiki.
  • Narzędzia moderacyjne – administratorzy mają możliwość:
    • Blokowania użytkowników z poziomu strony
    • Przeglądania edycji używając specjalnych narzędzi takich jak ostatnie zmiany i patrolowanie ostatnich zmian
    • Szybkiego wycofywania i anulowania edycji używając funkcji kontroli stron
    • Zablokowania określonych stron przed edytowaniem ze strony określonych użytkowników
  • Listy obserwowanych stron
  • Dostosowywanie
    • Administratorzy strony mogą łatwo ustawić elementy głównej nawigacji
    • Użytkownicy mogą dodać swoje własne kody CSS i JS aby uczynić edytowanie lub czytanie bardziej efektywnym. Administratorzy mogą dodawać te kody globalnie.
    • Poszczególne fragmenty interfejsu mogą zostać zmienione poprzez komunikaty MediaWiki
  • Szablony
    • Aby nie zmuszać użytkowników do ręcznego dodawania spójnie zaprojektowanych i ustrukurozywanych elementów na różnych stronach, MediaWiki umożliwia ci przechowywanie podstawowego kodu dla tych elementów na stronie szablonu, która później wywoływana jest na stronie artykułu.
    • Na przykład na wiki o postaci z Gwiezdnych Wojen możesz wywołać szablon Postać, wypełnić go kilkoma parametrami i zapisać stronę aby pokazać tabelę danych podobną do tej na innych stronach postaci.
    • Najpopularniejszy typ szablonu nazywa się „infoboks”
  • Rozwija się szybciej od innych CMS-ów z racji na naturę open source

Dlaczego Fandom łączy się z MediaWiki?

Istnieje wiele technicznych, biznesowych i społecznych powodów, dla których Fandom podjął wyzwanie przejścia na Unified Community Platform. Ilość wysiłku wkładanego przez naszych programistów w utrzymanie wysoko zmodyfikowanego kodu jest wyższa niż byłaby, gdybyśmy trzymali się współczesnego oprogramowania MediaWiki. Fandom połączył się z Curse Media, co włączyło Gamepedię w krąg Fandomu, więc powstała potrzeba operowania na jednej platformie z nowoczesnym MediaWiki, jaką Gamepedia zawsze utrzymywała. Poza tym przez lata otrzymywaliśmy feedback od edytorów chcących aktualizacji.

Gdy podjęliśmy tę dezycję, musieliśmy zdecydować w jakim kierunku pójść w kwestii bazy kodowej. Gamepedia trzymała się bardzo blisko standardowego MediaWiki, co oznaczało, że najszybszym rozwiązaniem byłoby dogonić ją przez Fandom. Jednak aktualizowanie obecnej platformy Fandomu byłoby bałaganem pełnym problemów technicznych, więc stworzenie nowej platformy do hostowania jednocześnie wiki z Fandomu i Gamepedii na MediaWiki 1.33 miało najwięcej sensu.

Dodatkowo użytkownicy postrzegali nasze rozwidlenie się z MediaWiki jako błąd i główny przykład firmy zmierzajacej w złym kierunku. Przez długi czas koncentrowaliśmy się zbyt mocno na innych doświadczeniach kosztem rozwoju naszej platformy wiki, a użytkownicy komunikowali jasno i wyraźnie o tym, że przestarzała wersja MediaWiki sprawiała, że czuli się jakbyśmy nie dbali o edytowanie wiki i edytorów.

Aktualizowanie do obecnego MediaWiki oznacza, że użytkownicy otrzymają pewne fajne nardzędzia do moderacji i tworzenia treści z usprawnień w kodzie oprogramowania od 2013 roku (jako kluczowy przykład można podać zintegrowanie przez MediaWiki edytora mobilnego) i czyni jasnym, że Fandom jest nowoczesną platfomą wiki. Czystsza baza kodowa oznacza również, że będzie nam prościej stworzyć funkcje o które użytkownicy prosili od lat.

To powiedziawszy, aktualizowanie MediaWiki jest TRUDNE.

Fandom utrzymuje ponad milion linii kodu. Aby zapewnić kompatybilność z jądrem MediaWiki musimy przejrzeć każdą z linii i upewnić się, że przestarzałe funkcje – metody w tworzeniu oprogramowania, które teraz są nieaktualne i niewspierane – zostały zastąpione. Fandom ma również zestaw mikrousług, takich jak uprawnienia użytkowników i Dyskusje, które muszą być zdolne do „rozmawiania” z MediaWiki w odpowiedni sposób.

Jak wyjaśnialiśmy to przy naszych etapach wydawania UCP, zespoły programistów zajmują sie obecnie przechodzeniem z rozszerzenia na rozszerzenie, przeglądając kod i portując go na nową platformę. Właśnie dlatego czekanie aż UCP będzie we w pełni ukończonym stanie przez przeglądem nie było praktyczne – możemy przetestować prostszy kod na działającej witrynie i sprawdzić czy działa poprawnie pracując jednocześnie za kulisami nad dodaniem bardziej skomplikowanych funkcji i rozszerzeń.

Wynik końcowy będzie w dużej mierze platformą wiki którą wszyscy znają i kochają. Niektóre funkcje muszą zostać zmienione, inne całkiem zastąpione, ale zamierzamy wyjść z Fazy 1 z silniejszą platformą która jest zbudowana z myślą o przyszłości. Faza 2 to moment, w którym zaczniemy tę przyszłość budować z waszą pomocą. Wasz feedback będzie kluczowy w udoskonalaniu doświadczenia płynącego z wiki dla wszystkich.

Treści społeczności są dostępne na podstawie licencji CC-BY-SA , o ile nie zaznaczono inaczej.