Co to jest kod spaghetti i jak go unikać?

Opublikowany: 2020-07-03

Chociaż może to być pyszny włoski obiad, jedną z ostatnich rzeczy, o których chcesz usłyszeć o swojej bazie kodu, jest spaghetti . Pomysł, że twój kod jest tak splątany jak talerz spaghetti, jest przerażający, ale dla wielu programistów idea jest tak abstrakcyjna, że ​​nie mogą sobie z nią poradzić (lub zrozumieć, jak tego uniknąć lub naprawić). Dlatego w tym poście chcemy zagłębić się w to, czym właściwie jest kod spaghetti, pokazać kilka najlepszych praktyk, jak tego uniknąć i (jeśli to nastąpi), jak sobie z tym poradzić.

Subskrybuj nasz kanał YouTube

Co to jest kod spaghetti?

Kod spaghetti to koszmar, ot co. Jak powiedzieliśmy powyżej, slangowe określenie ma swoją nazwę, ponieważ, jak gigantyczna plątanina makaronu spaghetti, jeśli pociągniesz za jedną nić (kawałek kodu), w końcu splata się ona w następną i następną i następną, aż do splątane kawałki pękają.

Na przykład pomyśl o właściwości !important w CSS. Jest niesamowicie potężny, pozwala projektantowi nadpisać odziedziczone style i mieć kontrolę nad dowolnym elementem bez konieczności przekodowywania całego arkusza stylów. Jednak, gdy oni (lub przyszli programiści i projektanci) muszą dostosować coś innego, mogą dodać kolejny !ważny tag, aby zastąpić poprzedni. I tak dalej. Jeśli jednak cofniesz się i usuniesz lub zmienisz którykolwiek z tych w tym stosie, dowolna liczba stylów na stronie może się zepsuć.

Właśnie tego staramy się unikać.

Najlepsze praktyki, aby uniknąć kodu spaghetti

1. Opracuj standardy kodowania

Najlepszym sposobem zapobiegania kodowaniu spaghetti jest tworzenie i kodowanie standardów w Twojej organizacji lub projekcie. Standardy kodowania sprawiają, że projekty takie jak WordPress są możliwe. Tysiące programistów pracowało nad WP Core, ale WordPress Coding Standards sprawił, że wszyscy pracują według tych samych wytycznych i wykonują zadania z tymi samymi parametrami w ten sam sposób.

Standardy kodowania to tylko zasady, które egzekwujesz. Dzięki nim każdy kod działa zgodnie z tym samym wzorcem, dzięki czemu błędy można łatwo znaleźć i naprawić, a przyszli programiści (a nawet Ty lub Twój obecny zespół) mogą dokładnie wiedzieć, co robi każda linia kodu tak wydajnie, jak to możliwe. Jeśli kod Susan nie przechodzi pomyślnie testów, nie dostaje się do środka. Jeśli kod Janine nie ma testów do uruchomienia, żądanie ściągnięcia jest odrzucane. Być może Daniel nie używa div w swoim ostatnim żądaniu ściągnięcia. Żadnego łączenia, dopóki rzeczy nie zostaną podzielone.

Ponadto niektóre z oryginalnych baz kodu, które były nękane przez kod spaghetti, były starszymi językami bez funkcjonalnej logiki. Kod nie był oparty na funkcjach, dlatego różne logiki były skierowane na określone wiersze w kodzie. W przypadku małych projektów nie jest tak źle się poruszać. Gdy zaczynasz skalować projekty, posiadanie bezpośrednich odwołań do określonych plików i wierszy kodu może utrudnić ten rozwój. Pliki mogą zaginąć, wiersze mogą zostać usunięte lub źle ponumerowane. A debugowanie go, aby dowiedzieć się, który kawałek spaghetti został wyciągnięty, może zająć setki osobogodzin. Posiadanie standardów kodowania może zapobiec tego rodzaju bałaganowi tak często.

Tak więc, opracowując standardy, bardzo skutecznie obniżyłeś szanse na posiadanie repozytorium kodu spaghetti. Jeśli chcesz dowiedzieć się więcej o standardach kodowania w ogóle, GeeksforGeeks ma doskonały przewodnik.

2. Postępuj zgodnie z przewodnikiem po stylach

Oprócz standardów kodowania, posiadanie przewodnika po stylu do naśladowania może również zapobiec zbytniemu plątaninie kodu. Chociaż teoretycznie może to brzmieć podobnie, te dwie rzeczy są bardzo różne. Standardy kodowania to egzekwowalne zasady, których przestrzegają twoi programiści, aby kod działał wydajnie. Mogą się one zmieniać z projektu na projekt lub z zespołu na zespół w ramach organizacji.

Przewodnik po stylu jest jednak na ogół napisany w oparciu o język po języku, zapewniając szereg najlepszych praktyk, aby kod był czytelny i funkcjonalny. Na przykład Airbnb stworzył jeden z najlepszych przewodników po stylu React.js. Jeśli nie jesteś deweloperem React, to prawie nic nie znaczy. Ale dla programistów React, przyjrzenie się temu może naprawdę pomóc w tym, jak twój kod powinien być skonstruowany i napisany, aby był jak najbardziej dostępny dla przyszłych programistów.

Przewodnik po stylu, w przeciwieństwie do ogólnych standardów kodowania, niekoniecznie są regułami egzekwowalnymi. Są to sugestie ujednolicenia kodu, dzięki czemu kod jest łatwiejszy do odczytania. Co zapobiega kodowaniu spaghetti, ponieważ wiesz dokładnie, jaką nitkę pociągasz w danym momencie.

3. Skomentuj swój kod

Komentarze do kodu są prawdopodobnie najłatwiejszym sposobem zapobiegania zapełnianiu się repozytoriów kodem spaghetti. Kiedy coś piszesz, stwórz komentarz na temat tego, co robi. Jeśli jest to skomplikowana funkcja lub fragment kodu, wyjaśnij, co robi logika i dlaczego ma to znaczenie.

Natrafiasz jednak na kilka problemów polegających na komentarzach do kodu, aby zapobiec bałaganowi. Po pierwsze, dodaje dużo dodatkowego czasu projektom. Kiedy starasz się dotrzymać terminu lub upewnić się, że funkcja działa poprawnie, nie zawsze musisz napisać szczegółowe wyjaśnienie tego. A jeśli zaczniesz komentować i wypadniesz w połowie projektu, czy następny programista nie będzie kontynuował? To duży talerz spaghetti.

Inni są przytłoczeni pomysłem komentowania swojego kodu — lub nauczenia się komentowania kodu, jeśli nie robili tego wcześniej — z powodu ogromnej ilości, jaką opracowują. Co jest całkowicie słuszne. Ale nawet jeśli od czasu do czasu komentujesz ważne (lub nawet niepewne) linijki lub fragmenty, uratujesz komuś, potencjalnie siebie, kłopot z wyciąganiem go w przeszłości, próbując dowiedzieć się, co robi.

Zawijanie

Kod spaghetti to koszmar, powtarzam. Spędzanie niezliczonych godzin, próbując dowiedzieć się, jaka linia kodu została zmieniona w gigantycznym repozytorium, jest jedną z najgorszych części bycia programistą. Debugowanie jest w porządku (ish). Debugowanie i brak wiedzy, od czego zacząć lub co nawet zdalnie powoduje problem, nie jest. Ale jeśli twój zespół ustanowi standardy kodowania, zastosuje się do przewodnika po stylu językowym i zastosuje nawet drobną politykę komentowania kodu, istnieje bardzo duża szansa, że ​​twój cyfrowy talerz spaghetti będzie znacznie mniej splątany, niż byłby w innym przypadku.

Co robisz, aby zapobiec kodowaniu spaghetti?

Artykuł wyróżniony obrazem autorstwa Donnay Style / shutterstock.com