Sobes.tech
Junior

Wat is soft-code?

sobes.tech AI

Antwoord van AI

Soft coding is een antipattern waarbij de logica van het programma wordt uitbesteed aan externe configuraties (bestanden, databases) in plaats van expliciet in de code te worden geïmplementeerd. Dit wordt gedaan om het gedrag van het programma flexibeler te maken zonder dat hercompilatie nodig is.

Voorbeelden van soft coding:

  • Opslag van bedrijfslogica in parameters van configuratiebestanden.
  • Gebruik van externe scripts of formules voor berekeningen in plaats van directe code.
  • Het uitbesteden van voorwaardelijke logica naar instelbare vlaggen.

Voordelen:

  • Theoretisch maakt het mogelijk om gedrag te wijzigen zonder te hercompileren.
  • Potentieel vereenvoudigt het de configuratie voor verschillende omgevingen.

Nadelen:

  • Moeilijkheid bij debugging: De logica is verspreid over verschillende plaatsen, wat het volgen bemoeilijkt.
  • Vermindering van leesbaarheid: Het is niet duidelijk hoe het programma werkt door alleen naar de code te kijken.
  • Risico op fouten: Wijzigingen in de configuratie kunnen het programma breken zonder compileerfouten.
  • Moeilijkheid bij testen: Vereist het testen van combinaties van code en configuratie.
  • Technische schuld: Het onderhouden en ontwikkelen van zo'n systeem wordt moeilijker.
  • Vermindering van prestaties: Kan dynamische interpretatie of laden tijdens runtime vereisen.

In plaats van soft coding, is het beter om meer voorspelbare en testbare benaderingen te gebruiken, zoals:

  • Expliciete implementatie van logica in de code.
  • Gebruik van ontwerp patronen voor meer flexibiliteit.
  • Toepassing van dependency injection voor het beheren van afhankelijkheden.
  • Gebruik van externe configuraties alleen voor eenvoudige parameters (serversadressen, poorten, etc.).