Projekt Bokeh

Ta strona zawiera szczegółowe informacje na temat projektu technicznego przyjęta do programu Sezon Dokumentów Google.

Podsumowanie projektu

Organizacja open source:
Bokej
Pisarz techniczny:
vis_verborum
Nazwa projektu:
Tworzenie, czytanie, udostępnianie: dokumentacja optymalizacji Bokeh
Długość projektu:
Standardowa długość (3 miesiące)

Opis projektu

Tworzenie, czytanie, udostępnianie: dokumentacja optymalizacji Bokeh

1. W skrócie

Bokeh to niezwykle zaawansowane narzędzie do tworzenia interaktywnych wizualizacji w przeglądarce w Pythonie. Ma sporą bazę użytkowników (502 tys. pobrań miesięcznie i 855 tys. pobrań w PyPi) oraz dużą liczbę współtwórców (455 współtwórców z GitHuba). Nic dziwnego, że obszerna dokumentacja Bokeh automatycznie się rozwija. A przez to w niespójnych, trudnych do opanowania i nieporozumień.

Sezon dokumentów Google to wyjątkowa okazja, aby dokładnie przejrzeć i zredagować strukturę oraz treść dokumentacji Bokeh. Dokumentacja oraz powiązane z nią narzędzia i procesy będą gotowe na przyszłość.

Napisałem kod i udokumentowałem projekty open source w językach Python i Sfinx (ostatnio: PyZillow i PyPresseportal). Ale to, co mnie wyróżnia w tym sezonie, to moje wykształcenie w branży dziennikarskiej – od ponad 13 lat pracuję w redakcjach, w tym przez wiele lat jako redaktor zarządzający i działam na rzecz zmian cyfrowych. Oprócz moich obowiązków dziennikarskich, wiązałam się z większymi obowiązkami projektowania i dokumentowania nowych narzędzi cyfrowych i wskazówek stylistycznych, a także szkoleniem pracowników redakcji.

Po niedawnym przeprowadzce z Europy do Stanów Zjednoczonych postanowiłam odkryć nowe sposoby na połączenie mojego entuzjazmu w zakresie komunikacji i kodowania. Artykuł techniczny uznałem za optymalne połączenie moich umiejętności i doświadczenia technicznego. W ramach tej oferty przedstawię, jak będę korzystać z sezonu dokumentów Google do optymalizacji dokumentacji Bokeha: w ten sposób ułatwię tworzenie dokumentacji i dodawanie jej do niej osób, ułatwiając odczytywanie dokumentacji i ułatwiając udostępnianie zawartych w niej informacji innym osobom.

2. Obecna sytuacja

Oficjalna dokumentacja Bokeh składa się z tych głównych jednostek:

  • Dokumentacja: Przewodnik instalacji, Przewodnik użytkownika, Przewodnik dla programistów, informacje o wersji
  • Galeria i wersje demonstracyjne (interaktywne przykłady zawierające kod źródłowy)
  • Przewodnik (dokumentacja oparta na dokumentach),
  • Samouczek (szeroka kolekcja notatników Jupyter, hostowana na mybinder.org)
  • Pomoc dotycząca łańcuchów dokumentów i modeli dla IDE
  • Przykłady i pliki README w repozytorium projektu

Wiele informacji jest też dostępnych na forum pomocy Bokeh i na stronie Stack Overflow, gdzie programista Bokeh aktywnie odpowiada na pytania użytkowników, a także na blogu Bokeh Medium.

Większość stron z dokumentacją jest tworzona w aplikacji Sphinx przy użyciu kilku standardowych i niestandardowych rozszerzeń Sphinx. Na przykład Przewodnik referencyjny jest generowany na podstawie ciągów dokumentów za pomocą rozszerzeń takich jak „autodoc” i niestandardowy „bokeh_autodoc”. Podobnie jak w przypadku dokumentacji rozwojowej, zawiera ona zbędne elementy i niespójności.

Jedną z pierwszych rzeczy, jakie zauważyłam przy analizowaniu istniejącej dokumentacji, był brak jasnych wytycznych dotyczących stylu pisania dokumentacji. Przewodnik dla programistów Bokeh zawiera kilka podstawowych instrukcji. W tym dokumencie nie ma jednak zbyt wielu wskazówek dotyczących stylu, zwłaszcza w zakresie dokumentacji, która wykracza poza serie ciągów. W efekcie problemy stylistyczne i strukturalne utrudniają dostęp do informacji w dokumentach, zwłaszcza początkującym.

Na przykład:

Strona dokumentacji Bokeh jest raczej krótka i nie zawiera informacji o wszystkich dostępnych zasobach (nie wspomina o rozległej bibliotece funkcji pomocy dotyczących modeli i dokumentów, forach pomocy, prezentacjach ani blogu Medium). Utrudni to też nowym użytkownikom rozpoczęcie korzystania z efektu Bokeh.

3. Gole

Aby jak najlepiej wykorzystać 11-tygodniowy etap tworzenia dokumentów, skupię się na 3 kluczowych elementach:

3.1. Usprawnij tworzenie dokumentów

Większość dokumentacji Bokeh tworzą osoby, które dokładają dokumentację jako część żądań pull dotyczących nowych funkcji i poprawek. Podczas gdy część fazy tworzenia dokumentów będę zajmować się ich edytowaniem i refaktoryzacją, skupiam się na tworzeniu przepływów pracy służących tworzeniu i przechowywaniu dokumentacji na przyszłość. Dążę do tego, aby osoby odpowiedzialne za tworzenie dokumentacji utrzymywały niezmiennie wysoki standard dokumentów.

Zajmę się tym na 2 sposoby:

  • Utworzę zestaw praktycznych i prostych wskazówek dotyczących stylu, które będą dostępne w obecnym przewodniku dla programistów. Wytyczne dotyczą stylu, gramatyki i struktury. Będę też korzystać z wewnętrznych kanałów komunikacji, takich jak Slack, aby mieć pewność, że współtwórcy Bokeh znają wytyczne dotyczące stylu. Przeprowadzę też indywidualne szkolenie oraz sesje pytań i odpowiedzi dla zespołu.
  • Będę współpracować z podstawowym zespołem w celu znalezienia optymalnego zestawu narzędzi do kontroli jakości dokumentacji, które zostaną dodane do dotychczasowych przepływów pracy Bokeh dotyczących żądań PR (żądań pull) i CI (stała integracja). W zależności od wymagań zespołu może to być dodanie do zestawu testów Bokeh takich narzędzi jak pydocstyle, proselint czy sphinxcontrib-spelling do zestawu testów Bokeh, konfiguracja wstępnego zatwierdzenia lub działania na GitHubie. Dodałem działający model koncepcyjny do działań GitHub w jednym z moich własnych projektów open source.

3.2. Usprawnij czytanie dokumentów

Celem dobrej dokumentacji jest ułatwienie obecnym i przyszłym użytkownikom znalezienia dokładnych informacji i jak najbardziej efektywne wykorzystanie tych danych.

Głównymi czynnikami wpływającymi na użyteczność tekstu jest jego styl i struktura. Stworzenie przejrzystego, spójnego stylu pozwala czytelnikom na szybkie przyswojenie informacji bez rozpraszania i narzucania zbędnego języka. Prosta i przejrzysta struktura dokumentacji ułatwia szybkie wyszukiwanie istotnych informacji.

Skoncentruję się na obu tych obszarach, skupiając się na łatwości obsługi przez nowych użytkowników. Obejmuje to dokładne zapoznanie się z dokumentacją narracyjną wyśrodkowaną na przewodniku użytkownika. Ulepszę też stronę docelową z dokumentacją, aby wyraźniej dotrzeć do różnych grup odbiorców i zadbać o to, aby każdy użytkownik mógł szybko znaleźć odpowiednie materiały.

Tak jak przy udoskonalaniu tworzenia dokumentów opisanych powyżej, skoncentruję się na budowaniu podstawy dla przyszłych ulepszeń i stale wysokich standardów dokumentacji Bokeh.

3.3. Usprawnij udostępnianie dokumentów

Coraz więcej osób dyskutuje na temat Bokeh na platformach zewnętrznych. Wiele z tych platform korzysta z metadanych takich jak OpenGraph Facebooka, aby wyświetlać podgląd linków w formie multimedialnej. Z OpenGraph korzystają takie usługi jak Facebook, Twitter, LinkedIn, Slack i iMessage. Forum Bokeh Discourse korzysta też z OpenGraph do renderowania linków.

Aby skorzystać z tej technologii, dodaję metadane do stron internetowych wygenerowanych przez Bokeh wygenerowanego przez sfinksa zgodnie z opisem w numerze #9792. Najefektywniejszym sposobem jest wykorzystanie dedykowanego rozszerzenia Sphinx. Kilka dni temu w serwisie GitHub opublikowano pierwszą wersję rozszerzenia Sphinx do obsługi danych OpenGraph. Wykorzystam część fazy tworzenia dokumentacji, aby pomóc w ulepszaniu tego rozszerzenia na potrzeby dokumentacji Bokeh.

Opracowałam także model koncepcyjny, który z powodzeniem wykorzystujem w jednym z własnych projektów open source – PyPresseportal. To rozszerzenie automatycznie zbiera istotne informacje, takie jak tytuł, opis, obraz i adres URL. Następnie wstawia te informacje do kodu HTML wygenerowanego przez Sphinxa jako tagi OpenGraph.

Kolejnym etapem opracowywania tego rozszerzenia jest wprowadzenie niestandardowych dyrektyw w celu ręcznego definiowania metadanych OpenGraph (podobnie jak w przypadku istniejących dyrektyw „meta” programu docutil). Metadane wygenerowane automatycznie będą używane tylko jako dane zastępcze, jeśli dane wpisane ręcznie nie będą dostępne.

Obsługa uporządkowanych danych jest znacznie bardziej złożona, dlatego skupię się głównie na dołączaniu wysokiej jakości metadanych OpenGraph do dokumentacji Bokeh. Wszystkie wysiłki związane z obsługą OpenGraph będą jednocześnie podstawą obsługi uporządkowanych danych.

Członkowie społeczności Sphinx i ReadTheDokumentacja wyrazili zainteresowanie opracowaniem rozszerzeń dla OpenGraph i uporządkowanych danych (np. w problemach #1758 i #5208). Będę z nimi ściśle współpracować.

4. Twoje zobowiązanie

Podsumowując, oto elementy, które powinny pojawić się w sezonie Dokumentów:

  • Wytyczne dotyczące stylu dokumentacji dla współtwórców obrazu Bokeh
  • Ulepszenie procedur PR i CI, aby uwzględnić zautomatyzowaną kontrolę jakości dokumentacji.
  • Zredagowany i zmieniony Przewodnik użytkownika
  • Zmodyfikowana strona docelowa dokumentacji
  • Metadane Open Graph zawarte na stronach internetowych z dokumentacją oraz działające rozszerzenie Sphinx

Prowadzę też „doclog”, aby dokumentować moją podróż w sezonie Dokumentów Google na swojej osobistej stronie internetowej/Medium lub blogu Bokeh’s Medium. Na podstawie tych informacji stworzymy dla Google raport o projekcie. Będę przystępować do wszystkich działań w sposób przejrzysty, w formie problemów z GitHubem i żądań pull, gdy tylko będzie to możliwe.

5. Oś czasu

Przed rozpoczęciem budowania więzi ze społecznością: biorę już udział w kilku dyskusjach na temat repozytorium Bokeh na GitHubie i nawiązałem kontakt z Bryanem Van de Venem i Pavithrą Eswaramoorthy, mentorami zespołu Bokeh w sezonie dokumentów Google. Będę aktywnie uczestniczyć w rozmowach na temat Bokeh. Będę się też dokładniej zapoznawać z efektem Bokeh, tworząc i publikując wizualizacje.

Etap budowania więzi ze społecznością (17.08–13.09):

  • Poznaj podstawowy zespół, dopracuj plan projektu w zamian z mentorami
  • Opracować harmonogram i kanały komunikacji, aby regularnie przesyłać raporty i poznawać opinie mentorów
  • Aktywnie korzystaj z platformy Slack na platformie Bokeh, aby informować wszystkich zainteresowanych współtwórców Bokeh o sezonie Dokumentów Google i celach fazy opracowywania dokumentu.
  • Zbierz opinie od współtwórców projektu Bokeh, aby dopracować plan fazy opracowywania dokumentu.

Faza tworzenia dokumentu

Tydzień 1, 14–20 września:

  • Rozpocznij sprawdzanie i edytowanie dokumentacji narracji
  • Rozpocznij tworzenie wersji roboczej wytycznych dotyczących stylu

Tydzień 2, 21–27 września:

  • Kontynuuj pracę nad wskazówkami dotyczącymi stylu
  • Kontynuuj edytowanie dokumentacji narracji
  • Rozpocznij modernizację strony docelowej dokumentacji

3 tydzień, 28 września – 4 października:

  • Dokończ wytyczne dotyczące stylu
  • Sfinalizuj stronę docelową dokumentacji

Tydzień 4, 5 października – 11 października:

  • Dokończ edytowanie dokumentacji narracji
  • Omów z głównym zespołem Bokeh narzędzia do kontroli jakości dokumentów w przepływach pracy PR/CI

Tydzień 5, 12–18 października:

  • Przygotuj sesję pytań i odpowiedzi ze współtwórcami Bokeh na Slacku, aby omówić wskazówki dotyczące stylu, ulepszenia dokumentacji dotyczącej narracji i przepływów pracy PR/CI.
  • Zacznij opracowywać istniejący model koncepcyjny metadanych OpenGraph na potrzeby wdrożenia rozszerzenia Sphinx.
  • Zmiana wytycznych dotyczących stylu na podstawie opinii z sesji pytań i odpowiedzi z twórcami bokeh

Tydzień 6, 19.10–25.10:

  • Rozpocznij testowanie narzędzi do kontroli jakości dokumentów w przepływach PR i CI
  • Kontynuuj tworzenie rozszerzenia Sphinx dla metadanych

Tydzień 7, 26 października – 1 listopada:

  • Testowanie rozszerzenia Sphinx
  • Druga sesja pytań i odpowiedzi z udziałem współtwórców Bokeh na Slacku
  • Poprawić treści na podstawie opinii z drugiej sesji pytań i odpowiedzi

Tydzień 8, 2–8 listopada:

  • Wdróż rozszerzenie Sphinx i opublikuj ulepszoną dokumentację narracyjną oraz stronę docelową z dokumentacją

Tydzień 9, 9.11–15.11:

  • Wdrażanie narzędzi kontroli jakości dokumentów w przepływach pracy PR i CI
  • Zaktualizuj i opublikuj Przewodnik dla programistów, aby uwzględnić w nim wskazówki dotyczące stylu oraz nowe przepływy pracy PR i CI

Tydzień 10, 16.11–22.11:

  • Dokończ pozostałe zadania

Tydzień 11, 23 listopada – 29 listopada:

  • Zacznij pisać raport z projektu
  • Rozpocznij pisanie oceny projektu

Etap finalizacji projektu

Tydzień 12, 30 listopada – 5 grudnia:

  • Finalizowanie i przesyłanie raportu dotyczącego projektu

Tydzień 13, 3–10 grudnia:

  • Dokończ i prześlij ocenę projektu

Po zakończeniu Sezonu Dokumentów Google:

  • Mam nadzieję nadal angażować się w rozwój Bokeh i nadal pracować nad jego dokumentacją.
  • Zamierzam w dalszym ciągu pracować nad rozszerzeniem Sphinx dotyczącym metadanych OpenGraph/uporządkowanych danych.
  • Mam nadzieję wykorzystać swoje doświadczenie w dziennikarstwie i moją dotychczasową sieć kontaktów, aby promować Bokeh jako narzędzie do dziennikarstwa opartego na danych. Możesz na przykład pisać o Bokeh z myślą o odbiorcach dziennikarskich lub wygłaszać prelekcje na temat wykorzystania efektu Bokeh w środowiskach dziennikarskich.

6. O mnie

Zajmuję się głównie dziennikarstwem. Zajmuję się wiadomościami w telewizji, internecie i radiu. Pracuję jako redaktor naczelna i reporter w telewizji i wiadomościach cyfrowych, co pozwoliło mi wiele lat doświadczenia w pisaniu i redagowaniu. W tym samym czasie realizowałam kilka projektów promujących transformację cyfrową i automatyzację. Napisałam wiele podręczników, w których omawiano narzędzia i procesy cyfrowe, a także poradniki stylistyczne i strategie komunikacji dla marek z branży wiadomości cyfrowych. Przeszkoliłem też członków zespołu w korzystaniu z tych narzędzi.

Zawsze interesowała mnie granica komunikacji i technologii. Gdy nauczyłam się kodowania w Pythonie, otworzyła mi się całkiem nowy świat: potrafię analizować i wizualizować dane na przykład w dziennikarstwie opartym na danych. Nauka kodowania pozwoliła mi także aktywnie współpracować z inżynierami oprogramowania przy opracowywaniu narzędzi cyfrowych na potrzeby przepływów pracy w redakcji.

Podręczniki i dokumenty napisane przeze mnie w poprzednim miejscu pracy są niestety niedostępne. Teraz skoncentruję się na projektach open source (przykłady znajdziesz poniżej). Swoją pracę piszę w oparciu o wskazówki techniczne, takie jak wskazówki redakcyjne opracowane przez Google i wskazówki redakcyjne firmy Microsoft. Regularnie korzystam z GitHuba, Slacka i Linuksa. Pisałam dokumentację narracyjną, streszczenia dokumentów oraz wskazówki dotyczące pisania przy użyciu narzędzi takich jak Sphinx, Mypy i Sfinx.

Jestem obecnie freelancerem. Mój harmonogram zapewnia elastyczność niezbędną do pracy nad dokumentacją Bokeh przez około 25 godzin tygodniowo w trakcie fazy opracowywania dokumentu. Pracuję w strefie czasowej pacyficznej, ale chętnie pomogę ustalić harmonogram i potrzeby zespołu.

7. Najnowsze przykłady dokumentacji open source

  • PyZillow PyZillow to opakowanie Pythona dla interfejsu API witryny Zillow.com z branży nieruchomości. Oprócz udostępnienia kodu i pełnienia roli jednego z opiekunów kodu, opracowałem pełną dokumentację. Sfinks został użyty w dokumentacji narracji oraz jako materiały referencyjne modułu. Odwołanie do modułu zostało utworzone za pomocą automatycznego dokumentu dotyczącego rozszerzenia Sphinx na podstawie ciągów dokumentacyjnych dodanych do kodu.

  • PyPresseportal PyPresseportal to kod języka Pythona powiązany z interfejsem API witryny presseportal.de. Witryna Presseportal.de to jeden z największych dystrybutorów komunikatów prasowych i ogłoszeń dotyczących relacji z inwestorami w Niemczech. Na przykład niemal wszystkie policja i straż pożarna korzystają z tej usługi do dystrybucji komunikatów prasowych. Po wielu latach korzystania z interfejsu API jako dziennikarz postanowiłem stworzyć interfejs Pythona, który umożliwi dostęp do obszernych zasobów danych witryny w postaci obiektów Pythona. Kod oraz cała dokumentacja oparta na usłudze Sphinx zostały napisane przeze mnie.