Voutloos schreef op dinsdag 23 december 2014 @ 16:44:
[...]
Nieuwe code wordt vanzelf oud. Plus dat je team dus gestructuurder jouw spul ziet binnen komen, inc. log message, auteur van elke regel of karakter, etc etc.
Ik zal het hier bij laten want jij (en ik) gaan waarschijnlijk geen strobreed toegeven. Jij hebt gewoon blijkbaar nog nooit in een team/setting gewerkt waar version control wel fijn en consistent toegepast werd.
Eh, ons versiebeheer is gewoon helemaal prima. Daarnaast hebben we nog interne docs, en nog een wiki. Heel veel dingen staan hard op papier, het enige wat nog beter kan zijn de requests van gebruikers/klanten en hoe dat beheerd wordt.
Verder is het ook fijn, en consistent.
Volgens mij heb jij alleen niet het idee wat voor applicatie het is (en dat vertel ik hier ook niet

), en hoeveel code dat wel niet bevat. Daarbij weet jij ook nog niet hoe non-standard de applicatie is, het is geen "website" waar je ooit eens een nieuwe coole feature toevoegt voor een slide-show in je CMS of wat dan ook. Verder is het vrijwel pertinent mee gaan met de markt & tijd, wensen en zelfs eisen van partijen waardoor er enorm veel fluctuatie en variabelen zijn.
Gemiddelde doorlooptijd om überhaupt de
basis van misschien 80% van de applicatie functionaliteiten te 'snappen' is ongeveer 10 maanden. Dus, prima als jij dan denkt dat je het weet hoe het precies zit, maar daar ga je dan wel vies de mist in. Niet alleen heb je kwaliteiten nodig voor het coden, maar ook nog bepaalde product/branche specifieke kennis waar een gemiddeld persoon al moeite mee heeft om 'alleen' dat voor elkaar te krijgen. Mag er dan alsjeblieft wat comments in staan om alles netjes te houden?
Soundless schreef op dinsdag 23 december 2014 @ 17:07:
[...]
Als je 1000 revisies erbij moet pakken om erachter te komen waar je wel een geen rekening moet houden, dan (kies 1 of meer van de volgende punten):
- heb je geen duidelijke variabel/method names.
- heb je te grote methods waardoor ze te verwarrend gaan worden. Oplossing: splitsen.
- heb je te 'moeilijke' code die je niet in code moet commenten maar waar je een heel document van moet hebben. Denk aan uitgebreide berekeningen.
Als je gecommente code gaat committen, blijft dit eeuwig zitten. Dit kan nooit zijn wat je wilt en in het geval dat wel je bedoeling is, dan moet het waarschijnlijk wel in een doc komen.
1; vars/methods/functies/libs zijn meer dan duidelijk. We hebben ook gewoon een standaard en als je een retarded var aanmaakt sla ik je met een stoel
2; Ze zijn niet verwarrend, maar moeilijk. In feite een wezenlijk verschil en ik ben mij er ook van bewust dat je soms dingen moet gaan opsplitsen maar dat is niet altijd wenselijk. Het is een beetje klote dat ik domweg hier niets concreets mag neerzetten maar ik zal het proberen uit te leggen.
Op het moment dat je een bepaalde transitie hebt, die je hoe dan ook moet doorlopen; heb je domweg veel code. Soit, je kan het dan delen door 2, of 10, of 100.. maar soms maak je het dan alleen maar moeilijker. Uiteraard hebben we dingen netjes in classes staan, en soms gebruik je er wel 10. In feite opgesplitst maar dan nog blijft het veel. Zelfs met allerlei dingen in aparte functies/classes w/e.
3; Ja, akkoord en dat is er ook. Punt is alleen dat zoiets verdomd moeilijk te beheren is. Zoiets maken kost al veel tijd en we hebben niet altijd de ruimte daarvoor. Je zult het daarnaast ook altijd consistent moeten gaan bijhouden. Voor de echt zware, grote en voornamelijk belangrijke dingen is er in elk geval uitgebreide documentatie. Mja, hoe dan ook is het soms gewoon enorm handig als je comments hebt staat. Het hoeft niet eens veel te zijn, maar we laten soms reverted changes erin staan, o.a om inzicht te geven in de huidige code, maar ook voor de toekomst. Bad practise? Ja vast. Net zoals vele andere dingen, maar het werkt verdomd goed en tenzij je hier even komt werken en mij dan kan overtuigen van een betere oplossing luister ik er niet erg na.
Het is niet dat ik eigenwijs ben (ok, ben ik wel) of 'nieuw' (ok.. ook soms) maar zonder exacte kennis van een bedrijf of applicatie kun je niet hard op vertellen : "het moet zo!".
For ever commented code? Ja, je commit code en nee dat blijft er niet voor eeuwig.. Ik haal het weg, commit het en voila.. waar is het dan? Ja, ergens ooit in een oudere versie.. net als de duizenden bugs en overige ranzige meuk. Misschien snap ik je niet, maar wat is nu precies je punt? Je hebt juist versiebeheer om o.a. je oude meuk te kunnen zien. Of het nu in je huidige checkout staat of niet lijkt me dan enorm irrelevant. Sterker nog, als je ooit zag dat er een comment stond, x revisies later staat het er niet meer maar wel een nieuw stuk code; nou dan weet je precies de beweegredenen op een wat gedetailleerd niveau dan je standaard commit message.