CodereviewProgrammeertraining

Codereview met uitleg en oplossingen

Meestal klaar in 15 minutenRevisies inbegrepenKwaliteitscontrole
Pakketten
BetaalbeschermingDetails
  • Revisies binnen het pakket zijn gratis.
  • Reageer je niet binnen 3 dagen na levering, dan wordt het werk automatisch goedgekeurd.

Het geld wordt bij betaling gereserveerd en pas vrijgegeven als je het werk goedkeurt.

Codereview met uitleg en oplossingen

Voorbeeldresultaat

Voorbeeld voor het pakket Standaard

Code review: Python order-import script for a small online shop

What the code does

  1. Reads orders.csv from the shop export.
  2. For each order line, finds the product by SKU in stock.xlsx and subtracts the quantity.
  3. Writes the updated stock back and logs totals to import_log.txt.

The structure is clear and functions are well named. Most issues are about input that does not look the way the script expects.

Bugs and weak spots

#LineSeverityIssue
148HighThe same CSV can be imported twice; there is no check for already processed order IDs. This is the most likely cause of negative stock.
272Highint(row["qty"]) crashes on empty or "2.0" values from refunded orders.
395MediumSKU lookup is case-sensitive: "gt-101" and "GT-101" are treated as different products.
4130MediumThe file is opened without encoding="utf-8", so product names with accents break on Windows.
5201LowBare except: hides real errors and makes the log useless.

Corrected fragments

Issue 1: skip orders already imported

processed = load_processed_ids("processed_orders.txt")
for row in reader:
    if row["order_id"] in processed:
        continue
    # ... existing logic ...
    processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)

Why: each order is applied once, even if you run the script on the same file again.

Issue 2: read quantity safely

raw = (row.get("qty") or "").strip()
try:
    qty = int(float(raw))
except ValueError:
    log.warning("Order %s: bad quantity %r, skipped", row["order_id"], raw)
    continue

Why: refunded or partial lines are skipped with a clear note instead of stopping the whole import.

Issue 3: normalise SKUs

sku = row["sku"].strip().upper()

Apply the same .strip().upper() when building the stock dictionary.

Style and readability

  • process() is 90 lines long; split it into read_orders, apply_to_stock, write_report.
  • Replace magic column numbers (row[7]) with header names.

Please test each fix on a copy of your files: we read the code but did not run it.

Client: owner of a tea shop who wrote a 310-line Python script that imports orders from a CSV export into the stock spreadsheet Problem reported: "Sometimes stock goes negative, and the script crashes on some files."

De klant en alle details zijn verzonnen.

Over deze dienst

Plak je code in de briefing of voeg screenshots toe, vertel ons de programmeertaal en wat er misgaat, dan lopen we alles regel voor regel door. We leggen in gewone woorden uit wat de code doet, wijzen op bugs, zwakke plekken en riskante delen, en stellen verbeterde fragmenten voor met een toelichting waarom elke wijziging helpt. We lezen de code maar voeren hem niet uit, test dus elke oplossing in je eigen project voordat je erop vertrouwt.

Wat is inbegrepen

  • Wat je krijgtEen schriftelijke review op de bestelpagina: een samenvatting in gewone taal van wat de code doet, een lijst met problemen gesorteerd op belang, verbeterde codefragmenten als tekst met uitleg, en tips over stijl en leesbaarheid; in Premium ook een studieplan voor wat je daarna kunt leren. De oplossingen zijn suggesties die wij niet hebben uitgevoerd, dus je test ze zelf.
  • Wat de code doetEen uitleg van de logica in gewone taal
  • Bugs en zwakke plekkenGesorteerd van kritiek tot klein
  • Verbeterde fragmentenCode als tekst met een toelichting bij elke wijziging
  • FoutmeldingenWat je fout betekent en waar hij vandaan komt
  • Stijl en leesbaarheidNaamgeving, structuur en herhaalde code
  • StudieplanIn Premium: onderwerpen om daarna te leren, op volgorde

Hoe het werkt

  1. 1
    BriefingJe plakt de code en beschrijft het probleem
  2. 2
    ReviewWij lezen de code en vinden de problemen
  3. 3
    LeveringJe krijgt de review en verbeterde fragmenten
  4. 4
    VragenJe test de oplossingen en stelt vervolgvragen binnen je pakket

Wat we van je nodig hebben

De code als tekst of als screenshots geplakt, de taal en versie, wat de code moet doen, wat er misgaat en de exacte foutmelding als die er is.

We vragen je:

  • In welke taal en versie is de code geschreven?
  • Wat moet de code doen?
  • Wat gaat er mis en wat is de exacte foutmelding?
  • Hoeveel ervaring heb je met deze taal?
  • Waar moeten we ons vooral op richten?

Pakketten vergelijken

PakkettenBasisTot 100 regels€ 14StandaardTot 400 regels€ 32PremiumTot 1.000 regels met een studieplan€ 62
Levertijd1 dag2 dagen3 dagen
Revisies123
Regels codemaximaal 100maximaal 400maximaal 1.000
Verbeterde fragmentenJaJaJa
StudieplanNeeNeeJa
Bestellen BasisBestellen StandaardBestellen Premium

Betaalbescherming

Je betaalt bij het bestellen, maar het geld wordt alleen vrijgegeven voor goedgekeurd werk.

  • Vaste prijsDe prijs van het pakket verandert niet meer nadat je hebt betaald.
  • Het geld wordt gereserveerdBij betaling wordt het bedrag alleen gereserveerd. Het gaat pas naar de dienst als je het werk goedkeurt.
  • Gecontroleerd vóór leveringElk resultaat doorloopt een kwaliteitscontrole voordat het bij jou komt, en je ziet het op de bestelpagina voordat je het goedkeurt.
  • Gratis revisiesVraag wijzigingen binnen je briefing aan, zo vaak als het pakket toestaat.
  • Goedkeuring na 3 dagenKeur je het werk binnen 3 dagen na levering niet goed en vraag je ook geen wijzigingen, dan wordt het automatisch goedgekeurd. Schrijf je na levering in de chat van de bestelling, dan wacht de bestelling; zodra we hebben geantwoord, kunnen we de 3 dagen opnieuw laten ingaan en melden we dat in de chat.
  • Opnieuw doen of volledige terugbetalingPast het resultaat niet bij je briefing en hebben de revisies dat niet opgelost, of duurt het werk meer dan twee keer zo lang als de levertijd, schrijf dan in de chat van de bestelling: we doen het werk opnieuw of betalen het volledige bedrag terug.
Hoe het werkt →

Vragen en antwoorden

Voeren jullie mijn code uit of testen jullie die?

Nee. Wij lezen de code en redeneren erover, maar voeren hem niet uit. Test elke voorgestelde oplossing in je eigen project.

Kunnen jullie mijn repository of mijn site openen?

Nee, wij hebben geen toegang tot repositories, servers of accounts. Plak de relevante code in de briefing of voeg maximaal 3 screenshots toe.

Schrijven jullie een heel programma voor mij?

Nee. Deze dienst beoordeelt en verklaart code die je al hebt en stelt verbeterde fragmenten voor.

Kunnen jullie mijn examen of beoordeelde opdracht maken?

Nee. Wij leggen je eigen code uit zodat je hem begrijpt. We helpen ook niet met malware, cheats of het omzeilen van licenties en beveiliging.

Moet ik eerst wachtwoorden en sleutels verwijderen?

Ja. Vervang wachtwoorden, API-sleutels en persoonsgegevens door plaatshouders voordat je de code plakt.

Staat je antwoord er niet bij?

Pakketten