obscurity napisał(a):
WeiXiao napisał(a):
Wręcz przeciwnie, goto ma mniejszy narzut kognitywny, bo nie trzeba skakac i analizowac kilku funkcji
Przecież drugi przykład jest znacznie prostszy do przeanalizowania. Wiem że ciężko na przykładzie tak prostego kodu który się samemu napisało to odczuć ale w pierwszym przypadku widząc kod po raz pierwszy i natrafiając na etykietę musisz przerwać standardową analizę kodu i szukać wszystkich skoków. Jeszcze jak jest jedna etykieta i jeden skok to w porządku ale od tego się zaczyna. Znacznie łatwiej ogarniać mniejsze, nazwane (nazwą metody) fragmenty kodu.
W dobrym kodzie metody są tak proste że w ogóle nie musisz ich analizować bo z nazwy, argumentów i zwracanych wartości od razu wiadomo do czego służą; w przypadku jednej większej metody z goto musisz ją przeanalizować w całości.
No ja przejąłem kod .Netowy po jakimś juniorze z juesej. Metoda na 1k linii. goto użyte w kilku miejscach. Analiza tego to jest dramat. Pierwszy raz widziałem goto w kodzie produkcyjnym Projekt blazorowy nie starszy niż 1.5 roku :)