Stosowanie programowania opartego na magistrali
Mając skrypty treningowe i definicje zadań w systemie kontroli wersji, kolejnym wyzwaniem jest ich ochrona. Dwaj analitycy danych edytujący ten sam plik w main gałęzi jednocześnie mogą tworzyć konflikty i, co ważniejsze, przypadkowe przerwy w kodzie, od którego zależą inne osoby. Programowanie oparte na magistrali zapewnia zespołowi ustrukturyzowany sposób rozwoju modelu przy zachowaniu stabilności kodu produkcyjnego.
Utrzymuj współdzieloną gałąź w stabilnym stanie
W przypadku programowania opartego na magistrali współautorzy integrują zmiany w jednej udostępnionej gałęzi, zazwyczaj main. Zespoły utrzymują tę gałąź w dobrej kondycji, dzięki czemu pozostaje niezawodnym punktem wyjścia dla nowej pracy.
W projekcie Proseware zespół wymaga, aby zmiany trafiały do main za pośrednictwem pull requestów. Te zasady dają recenzentom i automatycznym testom szansę oceny każdej zmiany przed integracją.
Krótkotrwałe gałęzie funkcjonalne
Gdy analityk danych chce eksperymentować z nową cechą — powiedzmy, dodając zmienną BMI do modelu przewidującego cukrzycę — tworzy krótkotrwałą gałąź z main. Praca odbywa się tam, odizolowana od kodu innego użytkownika. Gdy eksperyment jest gotowy do przeglądu, data scientist otwiera pull request.
Krótkotrwałe gałęzie zmniejszają ryzyko zbytniego oddalenia się od main, co ułatwia scalanie i ogranicza liczbę konfliktów.
Żądania ściągnięcia, przeglądy i wymagane kontrole
Pull request służy do dwóch rzeczy: pokazuje osobom recenzującym dokładnie, co się zmieniło, i stanowi punkt uruchamiający automatyczne kontrole. Recenzenci mogą zadawać pytania, żądać zmian lub zatwierdzać pracę. Automatyzacja działa równolegle z przeglądem.
Reguły ochrony gałęzi lub zestawy reguł mogą wymuszać ten proces. W zależności od ustawień repozytorium reguła main może:
- Ogranicz bezpośrednie wypychanie
- Wymagaj minimalnej liczby zatwierdzeń przed scaleniem
- Wymagaj, aby określone kontrole statusu zakończyły się powodzeniem przed scaleniem
Przepływy pracy GitHub Actions mogą generować sprawdzenia wymagane przez regułę. Poznasz te kontrole w następnym module.
Uwaga
Reguły i zestawy reguł ochrony gałęzi są ustawieniami repozytorium GitHub, a nie GitHub Actions. Przepływ pracy definiuje, co jest uruchamiane. Reguła ochrony decyduje , czy scalanie jest dozwolone na podstawie wyniku.
Wskazówka
Rozważ zmianę modelu, która wymaga kilku tygodni pracy. Jak można podzielić to na mniejsze zmiany, które można scalać z gałęzią main, bez tworzenia długotrwałej gałęzi?