De poort ging 198 keer af. Ik noemde het "werkend".
Ik bouwde een poort om slechte code te blokkeren. Het blokkeerde 198 stukken code. Ik dacht dat dit betekende dat de poort goed werkte. Ik zag een hoog aantal blokkades en voelde me succesvol.
Toen keek ik naar de werkelijke gevallen. Ik realiseerde me dat veel van die blokkades fouten waren. De poort wees goede code af. Het wees werk af dat aan alle vereisten voldeed, puur omdat de structuur ongebruikelijk leek.
Ik maakte een veelvoorkomende fout. Ik verwarde activiteit met juistheid.
Een poort kan tegelijkertijd heel actief en heel fout zijn. Een hoog aantal blokkades bewijst geen waarde. Het bewijst alleen dat de poort afgaat.
Dit is hoe ik heb geleerd te bepalen of een poort daadwerkelijk zijn werk doet:
- Kijk naar de redenen voor de blokkades. Vangen ze echte defecten? Of blijven ze simpelweg steken op dezelfde oppervlakkige patronen?
- Let op de retries. Lost een retry het eigenlijke probleem op? Of verandert de code alleen van vorm om de poort te plezieren? Als de code alleen van vorm verandert zonder te verbeteren, dan is de poort het probleem.
- Controleer de uiteindelijke convergentie. Wordt het werk uiteindelijk geaccepteerd op basis van eigen verdiensten? Als je de poort moet verzwakken om het werk door te laten, dan was de poort fout.
Een poort die goed werkt, maakt het systeem beter. Een slechte poort zorgt er alleen voor dat het systeem zich aanpast aan de poort. Je eindigt met code die is gevormd om de validator te plezieren, in plaats van code die daadwerkelijk goed is.
Stop met het kijken naar het totaal aantal. Het totaal aantal laat je activiteit zien. De steekproef laat je de waarheid zien.
Controleer een steekproef van wat je poorten, linters of filters blokkeren. Als je je guards alleen test met slechte input, stel je alleen maar vleiende vragen. Je moet ook testen of ze goede, ongebruikelijke input doorlaten.
Controleer jij je aantal blokkades? Hoe bepaal je of een afwijzing terecht was?
Bron: https://dev.to/josephyeo/the-gate-fired-198-times-i-called-it-working-45fk
Optionele leercommunity: https://t.me/GyaanSetuAi