Wykorzystanie portalu GitHub w ocenie projektu opartego o Blockchain

in #polish6 years ago

Podczas podejmowania decyzji odnośnie inwestowania w kryptowaluty lub tokeny analizujemy wiele czynników. Często są to nasze subiektywne odczucia odnośnie różnych wskaźników sugerowanych przez specjalistów, które należy brać pod uwagę.

Wstęp

Warto również umieć ocenić dany projekt w oparciu o jedną z zalet charakterystycznych dla tego typu projektów - otwarty kod źródłowy. Oznacza to tyle, że dowolna osoba zainteresowana projektem (nie koniecznie pod względem inwestycyjnym ale np. technologicznym) ma dostęp do kodu źródłowego danego projektu.

Dzięki temu może m.in:

  • zobaczyć w jakim tempie idą pracę nad projektem,
  • sprawdzić ile osób nad nim pracuje,
  • dowiedzieć się jakiego typu zmiany są wprowadzane,
  • przeanalizować czy istnieje związek zmian wprowadzanych w kodzie źródłowym z zadeklarowaną ścieżką rozwoju przez autorów (zwykle jest to opisane jako Roadmap w dokumentacji projektu - Whitepaper),
  • itp.

Najpopularniejszym portalem dla programistów i osób kierujących rozwojem oprogramowania z otwartym kodem źródłowym jest GitHub. To właśnie na nim większość projektów opartych o blockchain i mających związek z kryptowalutami trzyma swój kod źródłowy.

GitHub

Każdy projekt prowadzony na GitHub z omawianej tutaj dziedziny prowadzony jest w formie Organizacji (czyli zespołu programistów odpowiedzialnych za jego prowadzenie). Organizacja posiada kilka repozytoriów czyli składników danego projektu i tak dla przykładu:

  • Lisk, posiada 34 repozytoria i na dzień pisania artykułu 31 osób zaangażowanych w projekt od strony deweloperskiej,
  • BitCoin, posiada 4 repozytoria i na dzień pisania artykułu 25 osób zaangażowanych w projekt od strony deweloperskiej.

Po wybraniu konkretnego projektu z danej organizacji, można zobaczyć widok podobny do poniższych:

Lisk blockchain application platform

lisk.PNG

Bitcoin Core integration/staging tree

btc.PNG

Poszczególne zakładki:

  • Code - pełen kod źródłowy danego repozytorium,
  • Issues - wszystkie zgłoszone błędy i propozycje usprawnień,
  • Pull Requests - zgłoszenia, które po połączeniu z głównym kodem źródłowym wprowadzą zmiany w repozytorium,
  • Projects - ta zakładka jest różnie używana przez różne projekty np. Lisk od niedawna (tj. od 23.04.2018) zaczął tego używać jako tablicy zadań dla tygodniowego sprintu (sprint jest to okres czasu w ciągu, którego zespół programistów pracuje nad wybranymi dla tego sprintu funkcjami), Bitcoin używa tego natomiast bardziej jako konkretnie nazwane moduły projektu, nad którymi pracuje i które rozwija,
  • Insights - w podstawowej analizie prac odbywających się na danym repozytorium, najbardziej interesująca zakładka, z której można wyczytać ciekawe informacje.

GitHub Insights

Daje możliwość wyświetlenia danych z konkretnie wybranego okresu czasu.

Pulse

Liczba aktywnych w danym okresie Issues i Pull Requests zgłoszonych przez deweloperów lub społeczność.

Warto tutaj zwracać uwagę jak szybko dany Issue jak rozwiązywane czyli jak szybko zgłoszony błąd jest naprawiany lub po jakim czasie proponowane usprawnienie jest implementowane.

Pull Requests w dużej mierze są związane z Issues na zasadzie, takiej, że dany Issue jest rozwiązywany za pomocą konkretnego Pull Request zgłoszonego przez członka społeczności lub dewelopera. Pull Request jest to więc przeważnie fragment nowego kodu źródłowego dołączanego do głównego repozytorium przez osobę mającą takie uprawnienia.

Contributors

Pokazuje udział poszczególnych deweloperów w repozytorium, tzn. kto, kiedy i co dodał, jak często to robi / robił, w związku z jakim Issue i poprzez jakie Pull Request.

Community

Pokazuje checklistę, która mówi w jakim stopniu projekt jest prowadzony zgodnie z dobrymi praktykami oprogramowania Open Source.

Commits

Częstotliwość dodawania nowych fragmentów kodu (ang. Commit) do repozytorium w formie wykresu, ciekawe ze względu na to, że pozwala odczytać w jakim tempie odbywają się prace nad projektem, kiedy nabrały tempa, kiedy przyhamowały itp.

Code Frequency

Również wykres, pokazuje na jednej osi liczbę dodanych i usuniętych fragmentów kodu danego repozytorium, ciekawe ze względu na to, że pozwala określić czy więcej w danym okresie jest operacji typu

  • Additions czyli dodania nowego kodu (przeważnie wiąże się to z pojawieniem się nowych funkcji w projekcie)

czy

  • Deletions czyli usunięcia istniejącego kodu (przeważnie oznacza to optymalizacje funkcjonujących rozwiązań lub usunięciu kodu nadmiarowego, zbędnego, co może wpłynąć na bezpieczeństwo całego projektu).

Dependency Graph

Zależności projektu, sekcja z której można wyczytać od jakich innych projektów dany projekt zależy oraz jakie inne projekty zależą od niego. Warto tutaj również odrobinę to przeanalizować bo np. czy dobrze gdy dany projekt jest zależny od dużej ilości innych projektów? co jeśli jeden z tych projektów przestanie być rozwijany przez swoją społeczność? może to powodować problemy z rozwojem projektu głównego repozytorium.

Network

Sieć rozgałęzień projektu, z uwagi na fakt, że projekt posiada otwarte źródła, każdy może sobie go skopiować i zacząć pracować nad własną wersją repozytorium (ang. Fork).

Forks

Liczba wersji danego repozytorium, które zostało skopiowane przez członków portalu GitHub.

Podsumowanie

Prosta analiza projektu na podstawie powyżej przedstawionego opisu, pozwala pobieżnie ocenić w jakim tempie odbywają się prace nad projektem oraz jakie uznanie dany projekt posiada wśród społeczności. W większości przypadków ciężko jednak znaleźć zależność pomiędzy Roadmap danego projektu a jego prowadzeniem na GitHub. Oczywiście przedstawiony wyżej opis należy traktować jako wstęp, bardziej szczegółowe dane dotyczące danego projektu można pobrać i przeanalizować m.in w oparciu o GitHub API.

Dajcie znać w komentarzach czy głębsza analiza projektu w oparciu o GitHub jest dla Was interesująca.

Sort:  

[BOT] Witamy tkow na #polish, tagu używanym przez Polaków do publikacji polskich treści w ekosystemie Steem (np. Steemit czy Busy). W ekosystemie Steem wspiera się oraz nagradza się nową i autorską twórczość.

  • Plagiaty oraz kopiowanie cudzej twórczości są niemile widziane przez społeczność i mogą doprowadzić do ukrywania wszystkich publikowanych postów danego użytkownika.
  • Wszelkie szczegóły związane bezpośrednio z twoim kontem i twoimi postami znajdują się na steemd.com.
  • Posty zawierające takie rzeczy jak nagość, pornografia, wulgaryzmy czy przemoc powinny zawierać dodatkowo tag #nsfw (Not Suitable/Safe For Work).
  • Wiele ciekawych i bardziej szczegółowych informacji można przeczytać w FAQ dla zupełnie początkujących użytkowników Steemit.
  • Parę dobrych praktych na temat zachowania na steem przeczytasz tutaj.
  • Posiadamy polski serwer Discord.
  • Istnieje polski kanał na oficjalnym czacie, który wymaga osobnej rejestracji.
  • Jeżeli chcesz ładnie formatować swoje posty, to spójrz na poradnik stworzony przez społeczność Markdown.
  • Przegląd wydarzeń i informacje o polskich, steemowych tagach, możesz znaleźć na @kurator-polski.
  • Lista wszystkich tagów wykorzystywanych przez polskich użytkowników znajduje się tutaj
  • Tutaj uzyskasz parę informacji nt. wspierania danych tagów tematycznych przez kuratorów.
    Jeżeli uważasz, że glos bota jest niesluszny, napisz to pod tym komentarzem.

Bardzo fajne wyjaśnienie, według mnie w zupełności wystarczy, ale chętnie przeczytam o głębszej analizie projektu jak powstanie :)

@tkow, congratulations on making your first post! I gave you an upvote!

Please give me a follow and take a moment to read this post regarding commenting and spam.
(tl;dr - if you spam, you will be flagged!)

Congratulations @tkow! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You made your First Vote

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.033
BTC 63855.79
ETH 3113.00
USDT 1.00
SBD 4.04