Klaarmaken voor productie
Valideer invoer en handel randgevallen af.
Klaarmaken voor productie is een gratis Vibe-coding-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Vibe-coding. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Vibe-coding bevat in totaal 4 lessen.
Demokwaliteit versus productiekwaliteit
AI blinkt uit in iets maken dat op jouw computer voor één gebruiker werkt. Productie betekent duizenden gebruikers, kwaadaardige invoer, gedeeltelijke storingen en incidenten om drie uur 's nachts.
Versteviging is het doelbewust dichten van de kloof tussen "het draait" en "het houdt stand". Het model overbrugt die kloof niet tenzij je het daartoe aanstuurt.
Deze les is de checklist om door AI gebouwde software daadwerkelijk klaar te maken voor publicatie.
Configuratie en geheimen
Productiecode moet elk geheim en elke instelbare waarde uit de omgeving lezen, nooit uit constanten. Verschillende omgevingen hebben verschillende waarden nodig zonder wijzigingen in de code.
Vraag het model om configuratie extern te maken en bij het opstarten direct te stoppen als een vereiste variabele ontbreekt, in plaats van later op onverklaarbare wijze te crashen.
Een duidelijke opstartfout is beter dan een stille verkeerde configuratie in productie.
Move all configuration and secrets to environment variables with a validated config module that checks required values at startup and exits with a clear error if any are missing. List every value that should be configurable per environment rather than hardcoded.Gestructureerde logging
Verspreide printinstructies houden geen stand in productie. Je hebt gestructureerde logboeken nodig met niveaus, tijdstempels, aanvraag-id's en zonder geheimen.
Wanneer er op schaal iets stukgaat, is het logboek je enige getuige. Zorg dat je het kunt doorzoeken en dat gebeurtenissen gedurende de levensduur van een aanvraag aan elkaar zijn gekoppeld.
Vraag expliciet om gestructureerde uitvoer en een correlatie-id die door elke aanvraag wordt doorgegeven.
Replace ad-hoc print statements with structured logging: include level, timestamp, and a request correlation id on every log line, and never log secrets, tokens, or full request bodies containing personal data. Add the correlation id at the entry middleware.Foutafhandeling op een nette manier
Democode laat uitzonderingen omhoogborrelen en het proces crashen. Productiecode vangt fouten op bij grenzen, retourneert verstandige antwoorden en blijft andere aanvragen verwerken.
Koppel fouten aan de juiste statuscodes, maak onderscheid tussen gebruikersfouten en serverstoringen en stel nooit interne details bloot.
Eén slechte aanvraag mag niet de hele service platleggen.
Add a central error handler that catches unhandled exceptions at the request boundary, maps them to appropriate status codes, returns a generic message to the client, and logs full detail server-side. Ensure one failing request cannot crash the process.Time-outs en nieuwe pogingen
Elke netwerkoproep kan blijven hangen. Zonder time-outs put één trage afhankelijkheid je verbindingspool uit en loopt de hele app vast.
Voeg time-outs toe aan uitgaande oproepen, begrensde nieuwe pogingen met oplopende wachttijden voor tijdelijke storingen en circuit breakers voor afhankelijkheden die herhaaldelijk falen.
Modellen voegen dit bijna nooit uit zichzelf toe; ze gaan ervan uit dat het netwerk betrouwbaar is.
Add explicit timeouts to every outbound network and database call. For idempotent operations add bounded retries with exponential backoff and jitter, and a circuit breaker that stops calling a dependency that keeps failing. Show the defaults you chose.Invoerlimieten en terugdruk
Productie moet bestand zijn tegen misbruik: te grote ladingen, enorme resultaatsets en verkeerspieken. Beperk de grootte van de aanvraagbody, gebruik paginering voor elke lijst en begrens de wachtrijdiepte.
Zonder limieten kan één grote aanvraag of een verkeerspiek het geheugen uitputten en de service platleggen.
Definieer de bovengrenzen expliciet, zodat het systeem geleidelijk slechter presteert in plaats van in te storten.
Add protective limits: maximum request body size, mandatory pagination on every list endpoint with a capped page size, and rate limiting on expensive routes. Tell me the default ceilings and how the API responds when a limit is exceeded.Robuustheid van de database
De database is doorgaans de bottleneck in productie. Verbindingspools moeten de juiste grootte hebben, trage query's hebben indexen nodig en migraties moeten omkeerbaar zijn.
Door AI gegenereerde query's missen vaak indexen en starten volledige tabelscans die pas echt pijn doen als de hoeveelheid gegevens groeit. Verpak schrijfbewerkingen met meerdere stappen in transacties om gedeeltelijke toestand te voorkomen.
Controleer de gegevenslaag op pooling, indexering en atomiciteit voordat je de app lanceert.
Review the database layer for production: confirm connection pooling is configured and sized, identify queries that lack indexes or scan full tables, and wrap any multi-step write in a transaction so a failure cannot leave partial state. Recommend the indexes to add.Gezondheidscontroles en gereedheid
Orkestrators moeten weten of je service actief en gereed is. Een liveness-probe beantwoordt de vraag "draait het proces" en een readiness-probe de vraag "kan het verkeer verwerken".
Zonder deze controles kan een implementatie aanvragen doorsturen naar een instantie die nog aan het opwarmen is, of een vastgelopen instantie in de verdeling houden.
Voeg lichte eindpunten toe die de echte gezondheid van afhankelijkheden weerspiegelen.
Add liveness and readiness endpoints. Liveness should confirm the process is responsive; readiness should verify critical dependencies like the database and cache are reachable before reporting ready. Keep them cheap so they can be polled frequently.Observeerbaarheid en waarschuwingen
Je kunt niet repareren wat je niet kunt zien. Productie heeft metrieken nodig voor latentie, foutenpercentage en verwerkingscapaciteit, plus waarschuwingen wanneer die drempels overschrijden.
Het doel is problemen via een dashboard te ontdekken, niet via boze gebruikers. Meet de belangrijke paden en stel waarschuwingen in voor symptomen die gebruikers merken.
Vraag het model om metrieken toe te voegen en te definiëren wanneer iemand moet worden gewaarschuwd.
Instrument the key paths with metrics for request latency percentiles, error rate, and throughput. Recommend a small set of alerts based on user-facing symptoms, such as elevated error rate or p99 latency, and tell me sensible starting thresholds.Veilig implementeren en terugdraaien
Het meest risicovolle moment is de implementatie zelf. Productie heeft een manier nodig om geleidelijk uit te rollen en onmiddellijk terug te draaien wanneer er iets misgaat.
Gebruik achterwaarts compatibele migraties, functievlaggen om implementatie en vrijgave van elkaar los te koppelen en een getest terugdraaipad dat je daadwerkelijk hebt geoefend.
Een implementatie die je niet kunt terugdraaien, is een gok en geen release.
Help me make deploys safe: ensure database migrations are backward compatible so old and new code can run together, put risky changes behind a feature flag, and define a rollback procedure. Walk me through reverting the last change without data loss.De checklist vóór de lancering
Voer vóór de lancering één laatste controle uit: geheimen geëxternaliseerd, logging gestructureerd, fouten afgehandeld, time-outs ingesteld, limieten afgedwongen, database geïndexeerd, gezondheidscontroles actief, metrieken en waarschuwingen aangesloten en terugdraaien geoefend.
Laat de assistent de hele app aan de hand van deze lijst controleren en melden wat ontbreekt, en controleer vervolgens elke bewering zelf.
De versteviging is pas klaar wanneer een storing saai zou zijn in plaats van catastrofaal.
Audit this application against a production readiness checklist: externalized config, structured logging, error handling, timeouts and retries, input limits, database resilience, health checks, metrics and alerts, and a rollback plan. Report each item as ready or missing with the evidence.Korte controle
Test je oordeel over het verstevigen van productiecode.
Samenvatting
Het verstevigen van productiecode dicht de kloof tussen "het draait" en "het houdt stand": externaliseer configuratie, log gestructureerd, handel fouten af bij grenzen, voeg time-outs, nieuwe pogingen en limieten toe, verstevig de database, maak gezondheidscontroles beschikbaar, sluit metrieken en waarschuwingen aan en maak implementaties omkeerbaar.
Doorloop de checklist vóór de lancering met de assistent en controleer elk onderdeel zelf. Je hebt nu een volledige werkwijze om door AI gebouwde software voor de echte wereld te testen en te verstevigen.
Leer JavaScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 25
- Lessen
- 100
Veelgestelde vragen
Is de les “Klaarmaken voor productie” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Vibe-coding, waaronder “Klaarmaken voor productie”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Vibe-coding bevat in totaal 4 lessen.
Wat leer ik in “Klaarmaken voor productie”?
Valideer invoer en handel randgevallen af. Je oefent met Vibe-coding door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Vibe-coding te beginnen?
Ervaring vooraf is niet nodig. Vibe-coding op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Klaarmaken voor productie”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Vibe-coding?
Ja. Elke les over Vibe-coding bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Waarom AI-code controle nodig heeft
- Tests genereren met een prompt
- Beveiligingslekken opsporen
- Klaarmaken voor productie