Menu Close

Analiza projektowa kryptowalut – GitHub

Cześć witam Was w kolejnej części serii Analiza projektowa kryptowalut w której to wytłumaczę Wam czego możecie się dowiedzieć z portalu GitHub analizując wybrany projekt kryptowalutowy.

Materiał ten jest elementem wyjaśniającym z jakich zasobów będziemy korzystać w celu analizowania tego co dzieje się kodzie źródłowym danego projektu związanego z kryptowalutami i w jaki sposób może to wpłynąć na jego dalszy rozwój.

GitHub

Każdy projekt umieszczony 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 33 repozytoria i na dzień pisania artykułu 21 osób zaangażowanych w projekt od strony deweloperskiej,
  • BitCoin, posiada 4 repozytoria i na dzień pisania artykułu 27 osób zaangażowanych w projekt od strony deweloperskiej.

Po wybraniu konkretnego projektu z danej organizacji, widzimy jego dashboard:

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 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,
  • Security – jest to miejsce, gdzie członkowie projektu dyskutują o bezpieczeństwie projektu, jeśli zgłoszony zostanie jakiś błąd to tutaj powinno znaleźć się jego wyjaśnienie, wpływ oraz opis postępowania dla użytkowników,
  • 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 jest rozwiązywany 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.

Zakończenie

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 .

Dziękuje za poświęcony czas, to tyle jeśli chodzi o tę część, jeśli macie jakieś pytania, bardzo proszę o pozostawienie ich w komentarzach.

YouTube

Artykuł ten jest również dostępny na YouTube.

Leave a Reply

Your email address will not be published. Required fields are marked *