Uitleg van legacy-codeProgrammeertraining

Uitleg met opmerkingen bij geërfde legacy-code

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.

Uitleg met opmerkingen bij geërfde legacy-code

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

Als je code erft van een ontwikkelaar die is vertrokken, is de eerste taak begrijpen wat er staat: wat elk onderdeel doet, welke delen van elkaar afhangen en welke regels niemand zonder zorg mag aanraken. Wij lezen de code die je plakt, leggen die in gewone taal uit, onderdeel voor onderdeel, en schrijven opmerkingen die je aan de bestanden kunt toevoegen. Ook markeren we dode code, verborgen bijwerkingen en riskante plekken, zodat je weet waar je voorzichtig moet zijn voordat je iets wijzigt.

Wat is inbegrepen

  • Wat je krijgtEen schriftelijke uitleg op de bestelpagina: een kaart van de belangrijkste functies en hoe ze samenhangen, uitleg in gewone taal, opmerkingen die je zo kunt plakken en een lijst met riskante plekken met voorgestelde oplossingen. Premium voegt een veilige volgorde toe om de code stap voor stap op te ruimen.
  • Kaart van de codeBelangrijkste functies en hoe ze samenhangen
  • Uitleg in gewone taalOnderdeel voor onderdeel
  • Kant-en-klare opmerkingenOm in de bestanden te plakken
  • Riskante plekkenBijwerkingen, dode code, magische getallen
  • Voorgestelde oplossingenGecorrigeerde fragmenten waar nodig

Hoe het werkt

  1. 1
    BriefingJe plakt de code en je doel
  2. 2
    LezenWij brengen de code in kaart en leggen die uit
  3. 3
    UitlegJe ontvangt uitleg en opmerkingen

Wat we van je nodig hebben

De geërfde code als geplakte tekst of screenshots, de taal en versie, waarvoor het systeem wordt gebruikt en wat je er binnenkort in moet wijzigen.

We vragen je:

  • In welke taal en versie is de code geschreven?
  • Wat doet het systeem voor je bedrijf?
  • Wat moet je binnenkort wijzigen of toevoegen?
  • Is er documentatie of zijn er notities van de vorige ontwikkelaar?

Pakketten vergelijken

PakkettenBasisCode tot 100 regels€ 14StandaardCode tot 400 regels€ 32PremiumTot 1.000 regels met een opruimvolgorde€ 62
Levertijd1 dag2 dagen3 dagen
Revisies123
Regels codetot 100tot 400tot 1.000
Gecorrigeerde fragmentenJaJaJa
Opruimvolgorde stap voor stapNeeNeeJa
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?

Nee. Wij lezen hem zorgvuldig en redeneren over hoe hij zich gedraagt, maar voeren hem niet uit, dus test elke voorgestelde oplossing in je eigen project.

Kunnen jullie het herschrijven in een moderne taal?

Deze dienst legt je code uit, voorziet die van opmerkingen en stelt oplossingen voor. Een volledige herschrijving is een apart ontwikkelproject.

De code is erg oud. Is dat een probleem?

Nee. Oude PHP, VBA-macro's, klassieke ASP en vergelijkbare code zijn precies waarvoor deze uitleg bedoeld is.

Staat je antwoord er niet bij?

Pakketten