Czym jest teoria programowania makaronu?

Teoria programowania makaronu dotyczy złożoności różnych struktur programowania. Tak jak makaron ma wiele różnych rozmiarów i kształtów, to samo dotyczy kodu programistycznego. W teorii makaronu określony rodzaj makaronu służy jako kolorowa ilustracja do identyfikacji niektórych aspektów związanych z określonym zestawem protokołów programowania.

Doskonałym przykładem teorii programowania makaronu jest kod spaghetti. Gotowane spaghetti jest często podawane jako zbiór pasm, które krzyżują się i przeplatają ze sobą. Praktycznie niemożliwe jest wydobycie jednego pasma spaghetti bez powodowania pewnego stopnia zakłócenia pozostałych pasm.

W przypadku tego rodzaju teorii makaronu zrozumiałe jest, że programowanie jest nieco przypadkowe i chaotyczne. W kodzie programistycznym istnieje niewielka lub żadna rzeczywista struktura. W rezultacie próba zmodyfikowania kodu związanego z jedną częścią sekwencji często powoduje nieoczekiwane problemy z inną częścią kodu. W rezultacie kod spaghetti jest niezwykle trudny do zrozumienia pod względem logicznego postępu i równie trudny do zmodyfikowania bez tworzenia nowych problemów.

Natomiast teoria programowania makaronu może również odnosić się do programowania, które jest wysoce ustrukturyzowane. Jednym z przykładów tego typu teorii jest kod lasagne. Lasagne to warstwowe danie z makaronu, ze składnikami ułożonymi celowo i konsekwentnie między warstwami makaronu lasagne. Efektem końcowym jest danie z makaronu, które jest jednolite w całym i łatwo rozkłada się na możliwe do zidentyfikowania składniki.

Kiedy teoria makaronu lub programowanie używa terminu kod lasagny w odniesieniu do wysiłku programistycznego, zwraca uwagę na logikę i porządek, które wydają się rządzić całą strukturą zaangażowanego kodu. Możliwe jest modyfikowanie sekcji kodu bez wywoływania nieoczekiwanej reakcji gdzieś w dalszej części przetwarzania kodu. Logiczny postęp i sekwencjonowanie są cechami charakterystycznymi kodu lasagne, co czyni go przeciwieństwem bardziej chaotycznego kodu spaghetti.

Pojęcie teorii programowania makaronu jest zazwyczaj przypisywane Raymondowi Rubeyowi. W liście, który napisał do magazynu branżowego w 1992 roku, Rubey użył terminologii związanej z ravioli i spaghetti w odniesieniu do strategii i sytuacji programistycznych. Ogólna idea teorii programowania makaronu została przyjęta i wkrótce różne metody programowania zaczęły być określane przez wielu programistów używających różnych rodzajów makaronu. W niektórych przypadkach wybór nazw makaronów wskazywał na korzystne atrybuty danego podejścia do kodu programistycznego, podczas gdy inne odnosiły się do metod programowania, które uważano za mniej wydajne i ustrukturyzowane