Mijn werkproces

Voor het (verder, want er komt tegenwoordig nauwelijks meer wat nieuws bij) ontwikkelen van mijn eigen software is dit momenteel uitgekristalliseerd tot het volgende:

Doorgaans start ik een script op dat een standaard werkomgeving voor me opzet. Deze bestaat uit: - een command line interface om commando's uit te voeren zoals het uitvoeren van unittests of het starten van Python. Dit is gewoon de standaard Gnome Terminal, waarvan ik uiteindelijk zoveel instanties open als ik nodig vind. - een aantal editor instanties (ik gebruik al jaren VIM) met in elk een serie modules open - minimaal een met de programma modules en een met de unittest modules. Ik heb scriptjes gemaakt die op basis van wat argumenten uitzoeken welke files ze moeten openen. - een aantal instanties van een programma dat ik zelf gemaakt heb (het heet tegenwoordig FileFindr) om in een bepaalde range van modules te kunnen zoeken en een lijst met zoekresultaten te tonen. De logica van de open-files-in-editor scripts wordt hier hergebruikt om te bepalen waar gezocht moet worden. - een gui interface op de git repository (check-repo, die ik zelf ontwikkeld heb om een aantal veelgebruikte commando's te versimpelen en ook andere dingen te kunnen doen zoals een linter starten. - een instantie van een documentatieprogramma (TreeDocs) dat ik gemaakt heb om notities in een hiƫrarchische orientatie bij te kunnen houden, voor project aantekeningen en dergelijke. Ik hou hier onder andere bij hoe de unittest dekking voor mijn programma's is.

In de repository van het project zit een configuratiebestand waarmee ik kan regelen wat het script moet doen en welke modules de utilities moeten gebruiken.

Het geheel kan er bijvoorbeeld zo uitzien:

../werkomgeving.png

Ergens op de achtergrond heb ik ook nog een filebrowser open, voor het geval dat. En dat is dan alleen nog maar de bouw-omgeving. Ik heb natuurlijk ook nog een webbrowser open om te kunnen kijken en zoeken in de documentatie van diverse zaken die ik bij het bouwen gebruik, maar dat is in een andere virtual workspace.