|
|||||||||||||||||||||||||||
S|ren Sj|rup <sslug@sslug> writes:
> Hmmm jeg er programmør og synes umiddelbart at 10 linjer kode/dagen er
> meget lidt, hvad siger andre programmører. Mit skud med afprøvning, test,
> design og vedligeholdelse ligger nærmere på 70-100 linjer kode/dagen.
Jeg mener også at det er lidt lavt sat, men det har meget at gøre med
kompleksiteten af den kode man taler om og ikke mindst definitionen af
en linje kode. Betragt følgende kodestumper:
/usr/src/linux/arch/ppc/boot/head.S:
relocate:
mflr r3 /* Compute code bias */
subi r3,r3,4
mr r8,r3
lis r4,sslug@sslug
ori r4,r4,sslug@sslug
lis r5,sslug@sslug
ori r5,r5,sslug@sslug
addi r5,r5,3 /* Round up - just in case */
sub r5,r5,r4 /* Compute # longwords to move */
srwi r5,r5,2
mtctr r5
mr r7,r5
li r6,0
/usr/src/slashem/src/apply.c:
void
o_unleash(otmp) /* otmp is about to be destroyed or stolen */
register struct obj *otmp;
{
register struct monst *mtmp;
for(mtmp = fmon; mtmp; mtmp = mtmp->nmon)
if(mtmp->m_id == (unsigned)otmp->leashmon)
mtmp->mleashed = 0;
otmp->leashmon = 0;
}
arbejde/scheme/util/set.scm:
(define (set-insert x s)
(if (set-empty? s) (list x)
(let ((x0 (set-car s)))
(if (obj-equal? x x0) s
(if (obj-gt? x x0)
(cons x s)
(set-insert x (set-cdr s)))))))
Det vil nok tage mere en dobbelt så lang tid at lige lave en ændring i
100 linjer af det første end af det sidste. Det sidste kode kan jeg
hurtigt bevise at det virker, og behøver derfor ikke bruge den store
tid på debugning. Jeg vil slet ikke tænke på at skulle debugge det
første stykke kode og en segfault i det mellemste stykke kode, vil
heller ikke være spændende at skulle finde.
Jeg vil sådan lige vudere at de to sidste stykker kode gør sådan cirka
lige meget. det første stykke kode har jeg ingen anelse om hvad
laver. (Jeg kunne desvære ikke finde noget assembler kode jeg viste
hvad gjorde. Jeg har lykkeligt glemt min egen kerneopgave.)
--
Peter
|
||||||||||||||
|
||||||||||||||