Czy używasz tego lub podobnego przepływu pracy rozgałęziania git?
W pracy używamy podobnego przepływu pracy, ale nieco mniej skomplikowanego. Jest jednak bardzo zainspirowany tym procesem, ponieważ czytałem ten artykuł wiele razy. Mam nawet plik pdf modelu rozgałęzionego wydrukowany w kolorze obok mojego biurka :)
Czy uważasz to za produktywne podejście?
Produktywny. Jak definiujesz produktywność? Cóż, moim zdaniem najważniejsze jest, aby mieć wysoką jakość, przynajmniej starać się przez cały czas osiągać lepszą jakość. Ciągłe doskonalenie procesu itp. Jeśli możesz wyprodukować kod jakości, skorzysta na nim wydajność. Tak więc pytanie brzmi: czy poprawia to jakość oprogramowania? I moja odpowiedź na to pytanie jest zdecydowanie tak.
Najbardziej podoba mi się ten model rozgałęziania, ponieważ wprowadza rozgałęzienia w różnych warstwach jakości. Im bardziej na prawo na zdjęciu, tym wyższa stabilność i wyższa jakość. Gałąź główna jest święta i wszystkie zatwierdzenia na niej powinny być traktowane jako stabilne wersje oprogramowania. Im bardziej w lewo, tym bardziej eksperymentalny i niższa stabilność.
Gdy tylko przetestujesz nowe funkcje i poprawki błędów, możesz stopniowo przenosić je od lewej do prawej, a tym samym poruszać się w kodzie o wysokiej jakości dokładnie wtedy, gdy wiesz, że kod spełnia wymagania jakościowe, których wymagasz od kodu. Cóż, przynajmniej w teorii, ponieważ nie można przetestować wszystkiego do 100% i mieć pewność, że kod nie zawiera żadnych błędów, ponieważ zawsze będzie zawierał błędy. Ale pozwala zachować dużą pewność siebie.
Nic nie jest do bycia bardziej programistą niż praca w systemie, w którym nikt nie ma zaufania do kodu, ponieważ wiedzą, że jest do bani i że jest w nim mnóstwo błędów.
Czy widzisz jakieś wady tego podejścia? Jakieś potencjalne miny?
Ważne jest przemyślenie modelu rozgałęzienia, aby dobrze pasował do potrzeb Twojej organizacji. Tylko dlatego, że ten model działa dobrze dla niektórych osób, niekoniecznie oznacza, że jest optymalny lub pożądany dla innego.
Zawsze występują kompromisy, a nawet w tym przypadku. Jednym z kompromisów jest liczba oddziałów w porównaniu ze złożonością. Wprowadzając wiele różnych typów gałęzi, zwiększasz złożoność przepływu pracy. Na przykład błędem może być zawsze zmuszanie ludzi do utworzenia nowej gałęzi funkcji, gdy próbują naprawić prosty błąd, zmieniając kilka wierszy kodu.
Wszyscy wiemy, że błędy są mniej lub bardziej skomplikowane do rozwiązania. Tak więc, gdy wykryty zostanie trywialny błąd, możesz zmniejszyć złożoność i administrację, aby pozbyć się dodatkowych kosztów ogólnych i po prostu pozwolić ludziom bezpośrednio zaangażować się np. W master lub gałąź rozwoju. Ale ponieważ natura twoich poprawek staje się bardziej skomplikowana, warto nałożyć dodatkowe koszty na tworzenie dla nich nowych gałęzi. Zwłaszcza jeśli nie masz pewności co do jego wielkości i długości lub chcesz poprawić współpracę między tobą a innymi programistami.
Jeśli masz lepsze podejście, czy mógłbyś udostępnić lub podać link do artykułu lub dyskusji na ten temat?
Jest to bez wątpienia dobre podejście i może pasować do większości przypadków, ponieważ większość z nas ma podobne procesy rozwoju, ale może nie być odpowiednie dla wszystkich. Usilnie nalegam, abyś przemyślał sposób postępowania z kodem w tej chwili i spróbował stworzyć model rozgałęzienia pasujący do tego, który już masz.
Najważniejsze jest, aby zacząć od git, a reszta nastąpi naturalnie. Zacznij prosto i stopniowo ulepszaj! Bądź kreatywny!
Twoje zdrowie