Revisjonssystemer for kildekode og konfigurasjon

Fra en fylkeskommune her til lands, kom følgende frem for noen år tilbake:

En ansatt ved fylkeskommunens IT-avdeling hadde ikke lyst til å bruke revisjonssystemer for de skriptene som vedkommende produserte, fordi vedkommende ville ikke at de andre på avdelingen skulle se feilene som ble begått underveis. I samme tidsrom hadde vedkommende brukt mye tid på å feilsøke et av skriptene sine, bare for å finne ut at vedkommende hadde slått inn en fnutt (') et godt stykke til høyre på en lang kodelinje, og dermed gjort en del av utsagnet (statementet) om til en kommentar. Jeg innbiller meg at det var snakk om VBScript. Det hører med til historien at vedkommende brukte notepad.exe som editor.

OK, la oss angripe det overstående.

  1. VBScript er et språk som bruker linjeterminering av utsagnene (statements).
  2. Det er en mulighet for å angi et linjekontinuasjonstegn i VBScript, men reglene er litt kompliserte, se her: http://technet.microsoft.com/en-us/library/ee198844.aspx.
  3. Antakelig er man låst til et bestemt skriptspråk, gitt bruksområdet.
  4. Er det mulig å bruke andre språk, så oppsøk et språk som i det minste tilbyr linjekontinuasjonstegn, eller aller best, et egnet tegn for utsagnsterminering (statement terminator).
  5. Semikolon (;) er veldig vanlig i mange språk, enten tegnet brukes som en utsagnsseparator (statement separator, som i Pascal), eller som en utsagnsterminator (statement terminator, som i C/C++/Java).
  6. Det er ikke sikkert at vedkommende kjente til linjekontinuasjonstegnet til VBScript, men det er lov å håpe at dette er kjent stoff, nå mange år etter.
  7. Vedkommende brukte notepad.exe for redigering av skriptene. Det er en kjensgjerning at dette er en editor som ikke tilbyr syntaksutheving og dermed er den lite egnet til effektiv programmering.
  8. En editor som Notepad++ er langt bedre egnet for strukturert redigering, og tilbyr syntaksutheving for blant annet VBScript.
  9. En fnutt brukes som kommentartegn i VBScript.
  10. Det er egentlig ingen dramatikk i valget av kommentartegn. En fnutt (') er veldig lett å slå inn på tastaturet, noe som kan være en velsignelse; men som i dette tilfellet, også kan være en forbannelse.
  11. En vettug editor vil lett flagge en bestemt del av en linje som en kommentar, enten editoren bare bruker regulære uttrykk (regular expressions) eller en komplett parser for å gjenkjenne syntaksen.
  12. En vettug editor vil også tilby linjenummerering til venstre for linjene og automatisk linjebryting, samtidig som editoren angir hva som hører til samme tekstlinje.
  13. Et revisjonssystem og dens differansekommando ville lett avsløre hvilke linjer som ble endret siden forrige lagring (commit).
  14. Det er ingenting i veien for å bruke et privat revisjonssystem i arbeidsstasjonen underveis i utviklingen, for så å overføre de endelige, velfungerende versjonene til det sentrale revisjonssystemet.
  15. Klarer man å begå nye, feilfrie versjoner (commits), så vil alle de andre på avdelingen bare se velfungerende skript, hvor endringene stort sett består av forbedringer og andre endringer i takt med endringer i miljøet der skriptene kjører.

Med andre ord, er man noenlunde seriøs når det gjelder programmering, så bruker man gode editorer med støtte for syntaksutheving, og revisjonssystemer for å lagre alle versjoner av de filene som man lager, enten det er fungerende versjoner eller ikke.

Det er aldri snakk om å henge ut noen, for alle har helt sikkert skrevet et og annet feil utsagn, for ikke å snakke om å programmere noe som til syvende og sist viser seg å være helt feil.

Derimot er det snakk om å bruke alle tilgjengelige hjelpemidler for å være effektiv, og hele tiden ha et forutsigbart perspektiv på arbeidet som utføres.