Hmm.. Tror, at jeg vil svare på alle indlæggende ( siden mit sidste svar ) på én gang:
Jeg er ikke ude på at fremhæve mine egne fortrin eller på nogen måde gøre reklame. Indlægget er ment som en provokation til at få folk til at tænke over hvad, de egentlig skriver af kode. Jeg er hamrende ligeglad med hvordan, folk skriver deres kode eller generelt programmerer med undtagelse af 2 tilfælde: 1. Når det er en programmør, jeg skal arbejde sammen med.. 2. Når det risikerer at give hele brancen et dårligt ry. Hvor mange gange har jeg ikke hørt åndsvage kommentarer omkring andres software, når folk finder ud af, at jeg er softwareingeniør? Har intet med deres kode at gøre og vil heller ikke have det.
Sjovt, at der lige skulle ryge en Windows vs. Linux ind i det.. Det er lidt sjovt, for vi har det samme på mit arbejde, hvor 2 programmører har forsøgt sig med ældre RedHats og en CentOS. Da de ikke kunne få det til at fungere, var "Linux noget lort". Selv har jeg kørt alle former for Windows, Mac System 7 og RedHat 5-8 ( mener jeg ), Mandriva, CorelLinux og Suse 8 - 10.1. Min favorit er klart Suse 10.0, som i brugervenlighed ( efter min mening ) er på "højde" med Windows. Så min holdning til Window vs. Linux er, at man sagtens kan have en holdning til det, men oftest er det baseret på forkerte grundlag ( man har ikke prøvet alle versioner af Linux - Linux er vel bare en kerne, hvor folk lægger ekstra ting over på og derved får forskellige distributioner? ). Nok om det.
Jeg ved også godt, at man grundet tidspres ikke laver den optimale løsning - vi har selv fået tilgang af 50% flere folk for at kunne nå en deadline. Da marketting fandt ud af det, regnede de lidt på det: 150% folk => 150% features!.. Og så var vi lige vidt. Dog er der stadig krav om, at skidtet skal være stabilt - derfor input validering! Personligt har det gjort, at jeg faktisk er ret så ligeglad med projektet - så længe, jeg får min løn, er jeg glad. Så kan jeg altid bruge min fritid får noget andet.
Jeg er både åben og glad for folk, som kan tage eget initiativ. Jeg ønsker IKKE at tvinge min makker til at gøre tingene 100% efter mit hoved. Ingen grund til det, for han kan sagtens selv. Det, jeg vil lære ham, er meget simpelt: "gode" programmeringsvaner.
/*
Der tages i følgende kode ikke højde for oprydningen!
*/
unsigned char* pBuffer = ( unsigned char* ) malloc ( 10 );
for ( int i = 0; i < 10; i++ )
{
*pBuffer++ = ( unsigned char ) i;
}
vs
unsigned char* pBuffer = ( unsigned char* ) malloc ( 10 );
if ( pBuffer == NULL )
{
return -1;
}
for ( int i = 0; i < 10; i++ )
{
*pBuffer++ = ( unsigned char ) i;
}
Fejler allokeringen af memory vil programmet komme med en exception. Vi har på mit arbejde brugt store mængder tid, fordi folk ikke har kontrolleret memory allokeringer og indexes.
Til brug for vores projekt ( min makker og jeg ) er vi begyndt på at skrive en "styleguide", som beskriver formatering etc. i koden ( herunder også validering af data ), så vi lettere kan læse hinandens kode og dermed assistere hinanden. Samtidig vil det ( hvis man overholder denne ), blive lettere at sikre et stabilt stykke software, idet alle funktioner vil ( hvis man overholder reglerne omkring validering ) fejle på en kontrolleret måde istedet for at bringe programmet / maskinen i knæ. Med tiden bliver det en vane at skrive valideringerne ind i koden.
Til kommentaren omkring kampsportserfaringen: Jeg er imod vold, trusler og des lige. Jeg ved hvad, jeg er istand til, og vil hellere snakke mig ud af problemerne eller stikke af. MEN : når man truer mig ( i dette tilfælde grundet utilfredsheden med en aftalt pris ), bliver det en helt anden sag. Jeg bragte eksemplet for at vise hvor langt, nogle vil gå i deres jagt på at få ting gratis.
Og en sidste ting ( omkring OpenSource ). Blot fordi noget software / kode er åbent, betyder det ikke nødvendigvis, at det er gratis at bruge. Dvs. vi har fx. haft meget bøvl med at tilpasse noget OpenSource kode til vores projekt. Eksempel: en svensk udvikler havde frigivet en implementation af et TreeView til C#. Dette TreeView kunne nogle ting, som var ret så "lækre" at få ind i projektet. Problemet var bare, at koden var noget arv-lort! Vi brugte forholdsvis lang tid på at gøre det stabilt. Vi kunne lige så godt have brugt tiden på at skrive det selv. Man skal passe meget på med at sige, at OpenSource eller Proprietary Code er den Hellige Gral. Fordelen ved OpenSource er jo, at man kan gå ind og rette op på fejlene, og at alle har muligheden for at bidrage. Det er efter min mening også svagheden, idet ( alt efter projektet ) dårlige programmører, newbees etc. har muligheden for at "forurene" koden med noget ustabilt skidt. Der har fx. været eksempler på, at ACPI ikke har fungeret imellem 2 versioner af Linux-kernen ( fungerede i en tidligere og ikke i den efterfølgende ). OS har ikke muligheden for at stille et storts testmiljø op, som fx. større virksomheder har.