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.