11.07.2015 Views

2014.1.futuro

2014.1.futuro

2014.1.futuro

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Koodaamisen kulttuurejaTeksti: Teemu LikonenC-kääntäjä ei välitä, miten koodi onmuotoiltu, joten ihmiset saavat tapellamuotoiluohjeista keskenään.Kaikki tietenkin haluavat tehdä koodistahelppolukuista ja helposti ylläpidettävää,mutta ongelmana on, että minun oikeatapani saattaa olla ihan eri kuin sinun.Otetaanpa esimerkki.GNU-projektia varten on kirjoitettudokumentti GNU Coding Standards,jonka tarkoituksena on yhtenäistää ohjelmointikäytäntöjäsekä ohjelmien toimintaa.Dokumentti ottaa kantaa myöskoodin muotoiluun. Listauksessa 1 on dokumentistalainattu C-kielinen esimerkki.Sisennysporras on kaksi välilyöntiä, jakoodilohkoa ilmaisevat aaltosulkeet ovatomilla riveillään. Funktion nimi ja vasensulje erotetaan toisistaan välilyönnillä.Myös Linux-ytimen ohjelmoijilla onoma muotoiluohjeensa. Ohjeet perustuvatniin sanottuun K&R-tyyliin, joka tuleenimistä Brian Kernighan ja DennisRitchie. Heistä jälkimmäinen on C-kielenkehittäjä, ja yhdessä miehet kirjoittivatkuuluisan oppaan The C ProgrammingLanguage.Linux-koodin muotoilu poikkeaa selvästiGNU:n suosituksista. Tyylikysymyksissäsaattaa olla tunteitakin mukana,sillä Linuxin tyyliohjeen alussa kirjoittajailmaisee oman näkemyksensä GNU:nohjeista: ”I’d suggest printing out a copyof the GNU coding standards, and NOTread it. Burn them, it’s a great symbolicgesture.”Kun listauksen 1 koodi muutetaanLinux-ytimen tyyliohjeen mukaiseksi,saadaan listauksen 2 mukaista koodia.Sisennykset tehdään sarkainten avulla,ja sarkaimen leveys on kahdeksan merkkiä.Vasen aaltosulje kirjoitetaan useinsamalle riville muun koodin kanssa. Josif-rakenteen yhdessä haarassa tarvitaanaaltosulkeita, kirjoitetaan ne kaikkiinhaaroihin.Koodin vaihteleva muotoilu on vainyksi esimerkki siitä, että eri ohjelmoijayhteisöihinmuodostuu erilaista kulttuuria.Siellä missä on joukko ihmisiä, onmyös sosiaalisia normeja, ja niinpä ohjelmoijayhteisölläkinvoi olla kaikenlaisiasopimuksia hyvistä ohjelmointityyleistä,laadunvarmistuksesta ja ohjelman julkaisukäytännöistä.Yhteisön uusi jäsen tuleemukaan paitsi koodaamaan mutta myösuuteen koodauskulttuuriin.if (x < foo (y, z))haha = bar[4] + 5;else{while (z){haha += foo (z, z);z--;}return ++x + bar ();}Listaus 1. Esimerkki GNU-projektin suosituksista.if (x < foo(y, z)) {haha = bar[4] + 5;} else {while (z) {haha += foo(z, z);z--;}return ++x + bar();}Listaus 2. Esimerkki Linux-koodin muotoilusta.Tekstissä mainitut ohjeet:• GNU Coding Standards: http://www.gnu.org/prep/standards/standards.html• Linux-ytimen tyyliohjeet: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/CodingStyle14 2014.1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!