Verwijderd schreef op donderdag 17 december 2015 @ 17:13:
@downtime
Opmerking 1: mee eens
Opmerking 2: mee eens
Opmerking 3: niet mee eens (Functions: A block of code may be contained within a function for easy re-use. Dat is ook wat ik daadwerkelijk doe, ik zie er geen spaghetti code in).
Opmerking 4: niet mee eens (Het is in dit geval niet nodig, maar kwaad kan het ook niet. Het weglaten van break doet vaak meer kwaad in scripts).
Opmerking 5: niet mee eens (Hetzelfde eigenlijk als met opmerking 4).
Conclusie: met opmerking 1 en 2 ben ik het helemaal eens. Opmerking 3 t/m 5 gaat meer over coding style en op dat punt kan ik me niet in je kritiek vinden.
Punt 4 en 5 gun ik je. Maar opmerking 3 heeft niet veel met coding style te maken. Ik denk dat je het stukje wat je daar quote niet goed begrijpt.
Bij functies draait het om isoleren van code, die je in andere scripts kunt hergebruiken, in blokken met duidelijk omschreven in- en output, ofwel parameters en return values.
De bedoeling is dat je een zelfstandig stuk code hebt, wat geen directe afhankelijkheden met de script van je script heeft, afgezien van de afhankelijkheden die expliciet in parameters en return values bepaald zijn, zodat je niet het hele script hoeft te begrijpen om te weten wat dat stukje code doet.
Als ik in jouw script een functie als HashOutput zie, zonder parameters en zonder return value, moet ik jouw hele script doorlezen om te snappen wat al die variabelen doen en hoe de interactie met de rest van jouw script is. En als ik die functie wil hergebruiken (in een ander script) dan moet ik weer het hele script door om alle code mee te nemen die daarvoor nodig is. Dat bedoel ik met spaghetti-code. Alles is afhankelijk van alles, en je kunt niet zomaar een blok code eruit pakken en het hergebruiken in een ander script.
Natuurlijk is hergebruik van code vaak sowieso lastig, omdat je functies vaak op maat maakt voor een bepaald script, en dan in andere scripts toch net weer wat anders wilt, maar zelfs als je maar één script hebt, maakt het gebruik van correcte functies het mogelijk om dat script in blokken te hakken die allemaal een duidelijke functie hebben. Voor zo'n kort script als het jouwe maakt dat niet zoveel uit, maar als je scripts gaat bouwen met meer dan 1000 regels, heb je dat hard nodig om te blijven begrijpen hoe het geheel in elkaar zit.