Låt oss diskutera olika sätt att påskynda din produktutveckling.

Visst, då gör vi det
Betyg 4,9/5 på Clutch

MOP

  • Tjänster

  • Produkter

  • Människor

  • Blogg

  • Låt oss bygga

Mer

  • Fallstudier

  • Utmärkelser

  • Kundutlåtanden

  • Lediga tjänster

  • Teknik

Socialt

  • LinkedIn

  • X

  • Instagram

  • Facebook

  • Dribbble

© 2026 Ministry of Programming

  • Integritetspolicy
Tillbaka till bloggen

Regeln för Delete: Ett enkelt test för kodorganisation

Adnan
6 maj 2025Produktdrift och livslängdLäsningstid: 4 minuter
Regeln för Delete: Ett enkelt test för kodorganisation

Motivering

Nyligen stötte jag på flera artiklar som diskuterade trenden att gå från en mikrotjänstarkitektur tillbaka till en monolitisk arkitektur, ofta av olika praktiska skäl. I de flesta av dessa fall presenteras en modulär monolit som ett genomförbart alternativ till mikrotjänster. Intressant nog har vissa stora företag gått ifrån mikrotjänster till förmån för en monolitisk arkitektur, medan andra har använt en monolit från början och aldrig infört mikrotjänster överhuvudtaget.

Detta stämmer överens med min egen uppfattning att mikrotjänster i många fall inte införs av en verklig nödvändighet, utan snarare för att vissa tekniska intressenter (utvecklare, ingenjörer) känner sig tvungna att visa att de kan arbeta med dem - ungefär som en övermodig drinkare som försöker bevisa att de kan dricka mer än alla andra.

Som sagt, jag är inte här för att dyka in i arkitektoniska debatter. Istället vill jag fokusera på en viss aspekt av kodorganisation - en som kan påminna dig om ett modulärt tillvägagångssätt, även om det inte är strikt arkitektoniskt.

Inledning

Bra kod handlar inte bara om att skriva nya funktioner - det handlar om att göra förändringar enkla. Oavsett om det handlar om att lägga till en ny funktion, ändra befintlig funktionalitet eller ta bort något helt och hållet, bör en välstrukturerad kodbas göra dessa uppgifter enkla. Men hur utvärderar du om din kod är välorganiserad?

I den här artikeln presenteras Rule of Delete, en enkel heuristisk metod för att bedöma kodstruktur. Idén är okomplicerad:

När du har implementerat en ny funktion eller en modul kan du tänka dig att du behöver ta bort all relaterad kod. Om du kan göra detta med tre eller färre delete-åtgärder är din kod sannolikt välstrukturerad. Om det krävs betydligt mer kan din kod vara alltför kopplad, utspridd eller svår att underhålla.

Denna regel ger ett snabbt och intuitivt sätt att bedöma kodorganisationen. Värdet av den här regeln ligger i dess enkelhet och praktiska användbarhet. Det handlar inte om att upprätthålla strikta raderingsgränser utan om att lyfta fram modularitet, separation av problem och underhållbarhet.

Tanken bakom Rule of Delete är enkel: en välstrukturerad funktion ska vara fristående och lätt att ta bort. Om det krävs ändringar i flera orelaterade filer för att ta bort en funktion tyder det på att koden är alltför sammanflätad med resten av systemet.

Ett system som förblir i balans även när en del tas bort – det är modulär design när den är som bäst.

Regeln om Delete förklarad

Så här tillämpar du Rule of Delete i praktiken:

  1. Implementera en ny funktion som du normalt skulle göra.
  2. Tänk dig att du måste ta bort den helt och hållet - låtsasatt det var en dålig idé eller att den inte längre behövs.
  3. Räkna ut hur många raderingsåtgärder som krävs för att helt ta bort all relaterad kod.

Vad räknas som en "Delete Action"?

En delete-åtgärd är en enda logisk borttagning av en funktionsrelaterad enhet. Ett exempel:

✅ En raderingsåtgärd: Ta bort en särskild modul eller katalog som innehåller all funktionens kod.

✅ En raderingsåtgärd: Ta bort en väl inkapslad klass, komponent eller API-slutpunkt.

✅ En raderingsåtgärd: Radering av en enda databastabell eller ett schema som är relaterat till funktionen.

🚫 F lera raderingsåtgärder krävs: Om borttagning innebär att ändra orelaterade filer över flera lager av applikationen, behöver strukturen förbättras.

Inget nytt

Rule of Delete är inte ett nytt koncept - det överensstämmer med flera välkända principer för programvarudesign. Skillnaden? Den förenklar dem till ett praktiskt test som är lätt att komma ihåg och som är särskilt användbart för nybörjare. Här är några välkända principer:

Principen om öppen stängd dörr (OCP)

  • Definition: Programvaruenheter bör vara öppna för utökning men stängda för modifiering.
  • Anslutning till regel för borttagning: Om borttagandet av en funktion kräver att flera orelaterade delar av koden modifieras, bryter det sannolikt mot OCP. Ett välstrukturerat system bör göra det möjligt att ta bort funktioner på ett rent sätt, utan att behöva ändra kärnlogiken.

Principen om ett enda ansvar (SRP)

  • Definition: En klass eller modul ska bara ha en anledning att förändras - den ska kapsla in ett enda ansvar.
  • Anslutning till Rule of Delete: Om en funktions logik är utspridd över flera komponenter som tjänar olika syften är det ett tecken på dålig struktur. Delete-regeln uppmuntrar till modulär funktionsdesign, vilket indirekt förstärker SRP.

Fler principer att ta hänsyn till

Du kan enkelt koppla Rule of Delete till flera andra designprinciper också - här är några som är värda att utforska:

  • Demeters lag
  • Plugin-arkitektur och inversion av kontroll
  • Feature Toggles och Strangler-mönstret

Avslutande tankar

Rule of Delete är en användbar heuristik, men den ska inte ses som en absolut regel. Sammanhanget spelar alltid roll. Vissa funktioner kräver naturligtvis integration mellan flera komponenter, och att tvinga fram en strikt gräns på tre raderingar kanske inte alltid är praktiskt.

Det verkliga värdet av denna regel ligger inte i en strikt tillämpning utan i att den fungerar som en indikator - omdet känns alltför komplicerat att ta bort en funktion är det ett tecken på att din kodorganisation kan behöva förbättras.

Styrkan ligger i att det är praktiskt - detger utvecklarna ett omedelbart och konkret sätt att utvärdera kodorganisationen. Det hjälper till att belysa potentiella problem, men det krävs fortfarande ett gott ingenjörsmässigt omdöme för att avgöra om omstrukturering verkligen är nödvändig.

Enkla regler avslöjar ofta en djupare struktur. Arkitektur som står sig över tiden bygger på tydlighet.

Fråga dig själv nästa gång du implementerar en ny funktion:

Om jag var tvungen att ta bort det här, hur svårt skulle det vara?

Om svaret innebär mer än tre raderingsåtgärder kan det vara dags för en omarbetning.