Misslyckas snabbt - Fail-fast

I systemdesign är ett misslyckat system ett system som omedelbart rapporterar vid gränssnittet alla tillstånd som sannolikt kan indikera ett fel. Misslyckade system är vanligtvis utformade för att stoppa normal drift snarare än att försöka fortsätta en eventuellt bristfällig process. Sådana konstruktioner kontrollerar ofta systemets tillstånd vid flera punkter i en operation, så eventuella fel kan upptäckas tidigt. Ansvaret för en misslyckad modul är att upptäcka fel och sedan låta den näst högsta nivån i systemet hantera dem.

Hårdvara och mjukvara

Felaktiga system eller moduler är önskvärda under flera omständigheter:

  • När man bygger ett feltolerant system med hjälp av redundanta komponenter bör de enskilda komponenterna vara felsnabba för att ge systemet tillräckligt med information för att framgångsrikt tolerera ett fel.
  • Felaktiga komponenter används ofta i situationer där fel i en komponent kanske inte syns förrän det leder till fel i en annan komponent.
  • Att hitta orsaken till ett fel är lättare i ett misslyckat system, eftersom systemet rapporterar felet med så mycket information som möjligt så nära felet som möjligt. I ett feltolerant system kan felet gå oupptäckt, medan i ett system som varken är fultolerant eller felfast kan felet vara tillfälligt dolt tills det orsakar några till synes orelaterade problem senare.
  • Ett misslyckat system som är utformat för att stoppa och rapportera felet vid fel är mindre sannolikt att felaktigt utföra en irreversibel eller kostsam operation.

Utvecklare hänvisar också till koden som misslyckad om den försöker misslyckas så snart som möjligt vid variabel- eller objektinitialisering. I objektorienterad programmering initierar ett misslyckat designat objekt objektets interna tillstånd i konstruktorn och startar ett undantag om något är fel (snarare än att tillåta icke-initialiserade eller delvis initierade objekt som kommer att misslyckas senare på grund av ett fel "setter"). Objektet kan sedan göras oföränderligt om inga fler förändringar av det interna tillståndet förväntas. I funktioner kommer fail-fast-koden att kontrollera ingångsparametrarna under förutsättningen . I klient-server-arkitekturer kommer fail-fast att kontrollera klientförfrågan precis vid ankomst, innan den behandlas eller omdirigeras till andra interna komponenter, vilket returnerar ett fel om begäran misslyckas (felaktiga parametrar, ...). Snabbdesignad kod minskar den interna programvaruentropin och minskar felsökningsansträngningen.

Exempel

Från området mjukvaruteknik är en Fail Fast Iterator en iterator som försöker ta upp ett fel om sekvensen av element som behandlas av iteratorn ändras under iterationen .

Företag

Begreppet har använts i stor utsträckning som en metafor i affärer, som går tillbaka till minst 2001, vilket innebär att företag bör göra djärva experiment för att bestämma en produkts eller strategins långsiktighet, snarare än att gå försiktigt och investera år i ett dömt tillvägagångssätt. . Det blev antaget som ett slags "mantra" inom startkulturen .

Se även

Referenser

  1. ^ Khanna, Rajat; Guler, Isin; Nerkar, Atul (2016-04-01). "Misslyckas ofta, misslyckas stort och misslyckas snabbt? Lärande av små misslyckanden och FoU -prestanda inom läkemedelsindustrin". Academy of Management Journal . 59 (2): 436–459. doi : 10.5465/amj.2013.1109 . ISSN  0001-4273 .
  2. ^ "Epic Fails of the Startup World" . New Yorker . Hämtad 2017-08-14 .

externa länkar