Softcoding - Softcoding

Softcoding er en datakodings begrep som refererer til oppnåelse av en verdi eller funksjon fra en eller annen ekstern kilde, slik som tekstfiler , INI-filer , preprosessor makroer , eksterne konstanter, konfigurasjonsfiler , kommandolinje- argumenter, databaser, brukerinngang, HTTP-server svar. Det er det motsatte av hardkoding , som refererer til kodingsverdier og funksjoner i kildekoden.

Programmeringspraksis

Å unngå hardkoding av ofte endrede verdier er god programmeringspraksis. Brukere av programvaren skal kunne tilpasse den til deres behov, innen grunn, uten å måtte redigere programmets kildekode. På samme måte unngår forsiktige programmerere magiske tall i koden, for å forbedre lesbarheten og hjelpe vedlikehold. Denne fremgangsmåten blir vanligvis ikke referert til som 'softcoding'.

Begrepet er vanligvis brukes hvor softcoding blir et anti-mønster . Å abstrakte for mange verdier og funksjoner kan introdusere mer kompleksitets- og vedlikeholdsproblemer enn det som ville oppleves med å endre koden når det er nødvendig. Softcoding, i denne forstand, ble omtalt i en artikkel på The Daily WTF .

Potensielle problemer

I den ytterste enden utvikler programvarekodede programmer sine egne dårlig utformede og implementerte skriptspråk og konfigurasjonsfiler som krever avanserte programmeringsferdigheter for å redigere. Dette kan føre til produksjon av verktøy for å hjelpe til med å konfigurere det opprinnelige programmet, og disse verktøyene ender ofte med å bli 'softkodet' selv.

Grensen mellom riktig konfigurerbarhet og problematisk soft-koding endres med stilen og naturen til et program. Lukkede kildeprogrammer må være veldig konfigurerbare, ettersom sluttbrukeren ikke har tilgang til kilden for å gjøre noen endringer. Intern programvare og programvare med begrenset distribusjon kan være mindre konfigurerbar, ettersom distribusjon av endrede kopier er enklere. Skreddersydde webapplikasjoner er ofte best med begrenset konfigurerbarhet, da det å sjekke skriptene sjelden er vanskeligere enn å endre en konfigurasjonsfil.

For å unngå "softcoding", bør du vurdere verdien for sluttbrukeren av ytterligere fleksibilitet du gir, og sammenligne den med den økte kompleksiteten og tilhørende løpende vedlikeholdskostnader den ekstra konfigurerbarheten innebærer.

Å oppnå fleksibilitet

Flere legitime designmønstre eksisterer for å oppnå den fleksibiliteten softcoding prøver å gi. Et program som krever mer fleksibilitet enn det som er passende for en konfigurasjonsfil, kan ha nytte av inkorporeringen av et skriptspråk . I mange tilfeller er riktig design et domenespesifikt språk integrert i et etablert skriptspråk. En annen tilnærming er å flytte det meste av programmets funksjonalitet til et bibliotek, og gir en API for å skrive relaterte applikasjoner raskt.

Andre betydninger

I funksjonsdesign har softcoding andre betydninger.

  • Hardcoding : funksjonen er kodet til systemet som ikke tillater konfigurasjon
  • Parametrisk : funksjonen kan konfigureres via tabelldrevne eller egenskapsfiler med begrensede parametriske verdier
  • Softcoding: funksjonen bruker “motorer” som får resultater basert på et hvilket som helst antall parametriske verdier (dvs. forretningsregler i BRE ); reglene er kodet, men eksisterer som parametere i systemet, skrevet i skriptform

Se også

Referanser