Kaverini kehuu 'laatukoodilla' ja näytti kirjoittelemiansa ao koodeja. No mitä laatua tuossa nyt sitten muka on? Muuttujia ei ole nimetty eikä hommaa kommentoitu. Koko funkkari on C:n ja assyn sekamelskaa.
planefill(int x,int y,int length,int height,int col)
{
char zeroes[80];
int co;
register int place;
register int counter;
length-=x-1;
height-=y;
for(counter=0;counter
planefill(int x,int y,int length,int height,int col)
{
char zeroes[80];
int co;
register int place;
register int counter;
length-=x-1;
height-=y;
for(counter=0;counter
Vastaukset 12
Vanhimmat
syntax error
Tuosta on laatu kaukana, kerro kaverilles et opettelee oikeasti kirjoittamaan koodia. :)
muutamia huomioita:
for(counter=0;counter MUUTA
memset(zeroes, col, 80);
######################################
place=(x-1) ((y*80)*8);
--> huomio ((y*80)*8) --> y * 640 --> y*512 y*128
---> MUUTA
plase=(x-1) ((y
Joidenkin mielestä kai koodi on sitä "laadukkaampaa", mitä laiteläheisemmillä kutsuilla se on kirjoitettu.
Minun mielestäni koodin laadussa ratkaisevaa on hyvä dokumentointi ja lähdekoodin kommentointi, analyyttinen lähestymistapa ja tulevien muutosten huomiointi esim. riittävällä modulaarisuudella.
Aniharvoin tarvitaan niin kovaa suorituskykyä, että koodi on mielekästä kirjoittaa suoraan assemblerilla. Kyllä se kääntäjä tai tulkki kaikista koodeista konekieltä tekee, ja yleensä ihan riittävän suorituskykyistä.
Nk. portattavien ohjelmointikielten yhteydessä assembler jopa tuhoaa koodin suoritettavuuden eri prosessoriarkkitehtuureilla.
Eli mieluummin selkeää ja ylläpidettävää koodia varsinkin tuotantokäytössä, eikä joutavaa brassailua vaikeasti tulkittavilla konekielikutsuilla.
Premature optimization is the enemy.
Selvästikään sinä et osaa lukea tuota koodia. Jäit nyt kiinni kun väitit, ettei muuttujia ole nimetty.
Mielenkiintoista, ettei kukaan muu huomannut, että olet epätevä.
Jos siinä ei ole jotain nimetty niin vakioita.
Ylläpitäminen on muuten mahdotonta, jollei osaa lukea tai ole mitään käsitystä sovellusalueesta. Turha yrittää ainakaan minua harhauttaa millään itkuilla.
memset'in puuttuminen on se selkein puute tuossa koodissa. En osaa nyt ympäristöä tuntematta sanoa, miksi tuossa on keskellä assemblyä.
Yksi aiemmista kommentoijista ilmeisesti osaa koodata, muut ei osaa. Ja moni ei ole edes kehityskelpoinen koodariksi.
On laadukasta.
Täällä ei tietystikkään nämä sisennykset ym. näy, mitkä mielestäni ovat tärkeitä ja toivoisin näkeväni myös aaltosulkeet esim. noissa for-silmukoissa vaikkei yksi rivi niitä vaadikkaan.
// kommenttia
for( int i=0; i
Sinä väität, että tekijöitä on ollut vain yksi, mutta koodista päätellen tuota on tehnyt ainakin kaksi koodaajaa.
Kommenteista päätellen sinä et osaa koodata eikä kukaan kommentoijistakaan ymmärrä tuota koodia edes pinnallisesti.
Kuten yksi kommentoija totesikin, kommentit ovat pinnallisia. Kommenteista paistaa myös perussosiaalinen halu hengailla mukana siellä missä tapahtuu, vaikkei siitä, mitä tapahtuu, olekaan tietoa. Pennut toistee yleispäteviä kommentteja, joita toisten odotetaan kuulevan: "Selkeä koodi on tärkeää" jne.
Tuossa koodissa ei ole yhtään mitään epäselvää. Sen sijaan ammattilainen näkee, että joko koodaajalla on ajatus pätkinyt todella pahasti tai sitten sitä on ylläpidetty jonkun muun kuin alkuperäisen koodaajan toimesta. Tasoero noiden koodaajien välillä on melkoinen. Kumpikaan ei ole kuitenkaan mikään huippu, ihan yhtä huonoja kuin kommentoijat.
Perustele mielipiteesi.
Kun on näinkin tyhmiä läsnä niin ei niille mitään perusteluja ilmaiseksi anneta. Kuolkoot nälkään.
tuo joku2:n esittämä on hyvä:
--> huomio ((y*80)*8) --> y * 640 --> y*512 y*128
Muuttaisin vielä:
for(counter=0;counter
Itse olen samaa mieltä!!
Kyseinen koodi on helppolukuista ymmärrettävää. Nykypäivän "ponihäntäpojat" tekevät sisennyksiensä ja välilyöntiensä sekä erillisten kommenttiriviensä kanssa sellaista mössä josta eivät tahdo itsekkään virheitään löytää.
Itse teen koodia samalla tavalla: Joka riville, alkaen vasemmasta reunasta. Silloin yhdelle näytöllisellel mahtuu todella paljon tavaraa ja koodi on selkokielistä. Urputusta tulee "ei standardista" koodauksesta päivittäin ja se kuulemma voi olla työpaikan jatkumisen edellytyskin. No, toistaiseksi olen saanut pitää työpaikkani.
Oletteko muuten assyn lisäksi ottanut mukaan Fortrania tai LISP:iä? Siinä C-nikkareilla menee pasmat uusiksi jos tarvitaan koodinpätkä joka lisää itseensä rivejä sen mukaan miten monta muuttujaa ohjelmaan tarvitaan. Ja sitten taustalta kysyy vain assyn tai Fortranin pätkää. Hauskoja ilmeitä... Vai ettei LISP ole korkeampi ohjelmointikieli.