Codice Baklava

Il codice Baklava è una programmazione inutilmente complicata dall'inclusione di troppi livelli di astrazione.

Il termine è un riferimento alla sfoglia e stravagante pasticceria mediorientale e una variazione su altri gerghi di programmazione inclusi nella teoria della programmazione della pasta, che paragona i modelli di programmazione alle strutture dei piatti di pasta. Il codice spaghetti, ad esempio, si riferisce alla programmazione procedurale, la cui mancanza di struttura può rendere difficile seguire o aggiornare. Il codice delle lasagne, invece, è come una programmazione strutturata, più facile da seguire ma la cui struttura monolitica può rendere difficoltosa la modifica. Secondo Raymond Tubey, che ha formulato la teoria della pasta, la programmazione orientata agli oggetti (OOP), paragonata ai ravioli, è il modello da seguire perché è composta da oggetti piccoli, separati e liberamente accoppiati che possono essere modificati individualmente senza influire sul altri componenti o la struttura nel suo insieme.

John D. Cook afferma di aver coniato il termine codice baklava. Ecco come spiega l'analogia:

Baklava è una deliziosa pasticceria fatta con molti strati sottilissimi di pasta fillo. Mentre gli strati sottili vanno bene per una pasticceria, gli strati software sottili non aggiungono molto valore, specialmente quando hai molti di questi strati impilati l'uno sull'altro. Ogni livello deve essere inserito nel tuo stack mentale mentre ti immergi nel codice. Inoltre, gli strati di pasta fillo sono permeabili, permettendo al miele di penetrare. Ma le astrazioni software sono migliori quando non perdono. Quando si impila uno strato sopra uno strato nel software, gli strati sono destinati a perdere.