Koodin kirjoittaminen Eclipsessä
Uuden projektin luominen
Tämän kurssin harjoitustehtävissä tyypillisesti käytetään kurssin puolesta valmiina annettuja Eclipse-projekteja, joita sitten muokataan tai laajennetaan jollain tapaa. Joskus on kuitenkin tietysti tarpeen myös "luoda projekti tyhjästä" eli perustaa kokonaan uusi projekti.
- Luodaan Eclipseen uusi kokeiluprojekti. Projektit vastaavat hakemistoja ja yleensä jokaista harjoitustehtävää varten luodaan oma projekti. Valitse File-valikosta New ja Project.
![Kokeilu](kuvat/l14.jpg)
- Valitse Pydev-kansiosta Pydev project ja paina Next
![Kokeilu](kuvat/l15.jpg)
- Seuraavaksi projektille pitää antaa nimi. Kirjoita tähän esimerkiksi Kokeilu ja paina Finish.
![Kokeilu](kuvat/l16.jpg)
- Nyt projekti tuli näkyviin Eclipsen vasemmassa reunassa olevaan näkymään, jossa näytetään kaikki projektit ja niihin liittyvät tiedostot. Luodaan projektiin varsinainen koodia sisältävä tiedosto napsauttamalla projektia hiiren oikealla painikkeella.
- Valitse New ja Pydev Module
![Kokeilu](kuvat/l17.jpg)
- Moduulille pitää antaa jokin nimi. Kirjoita alimpaan tekstikenttään esimerkiksi koe ja paina Finish-painiketta.
- Myöhemmin, kun alamme luoda luokkia, Template-kohdasta voi valita modulin tyypiksi Class tai Main, mutta nyt riittää "Empty".
![Kokeilu](kuvat/l18.jpg)
- Äsken luomasi moduuli pitäisi nyt näkyä src-kansiossa. Jos tiedosto ei avautunut, voit avata sen muokattavaksi kaksoisnapsauttamalla sitä. Tiedoston alussa on automaattisesti luotuja kommentteja, jotka voit halutessasi poistaa. Kommenttien alapuolelle kirjoitetaan varsinainen ohjelmakoodi.
- Voit kirjoittaa tiedostoon esimerkiksi print "Hei maailma!"
- Kun koodi on valmis, voit suorittaa ohjelman napsauttamalla koodia hiiren oikealla painikkeella ja valitsemalla Run as ja Python Run.
![Kokeilu](kuvat/l19.jpg)
- Ennen ohjelman suorittamista Eclipse pyytää tallentamaan muuttuneet tiedostot. Voit valita tästä ikkunasta halutessasi, että tiedostot tallennetaan aina automaattisesti ennen ohjelman suorittamista.
![Kokeilu](kuvat/l20.jpg)
- Jos kaikki toimi kuten piti, pitäisi Eclipsen alareunaan ilmestyä konsoli, jossa näkyy tulostettavaksi käsketty teksti. Jos näet tämän tekstin, niin nyt kaikki on valmista harjoitustehtävien tekemistä varten! Mikäli konsolia ei näy, mene Window-valikkoon, valitse Show View ja sieltä Console.
![Kokeilu](kuvat/l21.jpg)
Lisävinkkejä:
- Jos valitset ennen modulin luomista Package Explorerissa projektin sijaan yksittäisen olemassaolevan pakkauksen,
niin et joudu erikseen naputtelemaan pakkauksen nimeä New Pydev Module-pikkuikkunassa, vaan uusi luokka sijoitetaan
valitsemaasi pakkaukseen.
- File-valikon käyttämisen sijaan voit valita New -> Pydev Module...-komennon myös kontekstivalikosta, joka tulee esiin kun klikkaat pakkauksen tai projektin nimeä oikealla hiiren napilla Package Explorerissa tai pienestä New-kuvakkeesta toimintopalkissa.
Koodin kirjoittaminen
Koodin muokkaaminen sujuu Eclipsen Pydev-editorilla varsin luontevasti. Kursori näyttää missä mennään, painamalla eri kirjaimia tulee kooditiedostoon tekstiä, ja niin pois päin. Eclipsessä on kuitenkin erikoispiirteitä, jotka helpottavat koodin kirjoittamista. Esimerkkejä näistä:
- Eclipse osaa näyttää (joskaan ei ihan aina), mitä ilmentymämuuttujia ja metodeita jollakin oliolla on ja tuottaa näppärästi viittauksia näihin
muuttujiin ja metodeihin. Luettelon saa esiin painamalla Ctrl-Space (siis Ctrl-näppäintä ja välilyöntiä
yhtaikaa). Esimerkki: Olkoon muuttujassa
test
tallessa jokin olio. Jos nyt kirjoitattest.
ja painat Ctrl-Space, näyttää Eclipse luettelon kaikista tuon olion metodeista. Kun valitset niistä jonkun, Eclipse lisää editoriin automaattisesti tuon metodin nimen, eikä sinun tarvitse sitä itse näpytellä editorissa. - Jos kirjoitat jostakin muuttujan, luokan, metodin tms. nimestä (eli tunnuksesta) vain
muutaman alkukirjaimen ja painat Ctrl-Space, niin Eclipse täydentää parhaansa mukaan tämän alkuosan
kokonaiseksi nimeksi. Esimerkiksi: oletetaan, että luokassa
Car
on ilmentymämuuttuja nimeltätank_capacity
. Kirjoitat nyt tuon luokan jonkin metodin sisälläself.tan
ja painat Ctrl-Space. Eclipse tietää, ettätank_capacity
-niminen muuttuja on olemassa ja lisää kirjoittamasi tekstin perään kirjaimetk_capacity
. Jos samat alkukirjaimet voivat viitata useaan eri asiaan ohjelmassa, näyttää Eclipse kaikki vaihtoehdot, joista voit sitten valita. - Ohjelman osien nimeäminen uudelleen on usein hyödyksi, kun jokin metodin, muuttujan tai luokan käyttötarkoitus hieman muuttuu tai aiemmin valittu nimi ei tarkemmin ajatellen olekaan kovin sopiva. Vähänkään isommassa ohjelmassa voi kuitenkin olla erittäin vaivalloista esimerkiksi käydä erikseen muuttamassa jokaista kohtaa ohjelmassa, jossa jonkin metodin tai muuttujan nimeä käytetään. Eclipse helpottaa ohjelman osien uudelleen nimeämistä: siirrä kursori kohtaan, jossa on yksittäinen tietyn nimen esiintymä koodissa. Valitse valikosta Refactor -> Rename... tai paina Alt-Shift-R, ja kirjoita pikkuikkunaan uusi nimi. Nimi muuttuu samalla kertaa koko ohjelmakoodissa. Huomaa, että uudelleennimeäminen onnistuu varmasti vain, jos ohjelmassa ei ole kielioppivirheitä (kielioppivirheet saattavat estää uudelleennimeämisen, joten ne kannattaa usein korjata ensin).
Virheet ohjelmakoodissa
Eclipseen ohjelmakoodia kirjoittaessa ilmestyy ruudulle usein punaisia ja keltaisia alleviivauksia ja muita merkkejä. Ne ovat virheilmoituksia ja varoituksia.
Eclipse havaitse Pythonin kielioppia (syntaksia) rikkovat ilmaisut ohjelmakoodissa ja ilmoittaa niistä punaisin alleviivauksin ja symbolein. Tällaiset virheet aiheuttavat varmasti ohjelman kaatumisen ajon aikana ja virhe kannattaa korjata jo ennen kuin ohjelmaa yrittää edes ajaa. Lisätietoa virheestä saa pitämällä hiiren kursoria hetken alleviivatun koodikohdan päällä tai katsomalla Problems-välilehteä koodieditorin alapuolella Eclipse-ikkunassa.
Keltainen väri puolestaan kertoo ns. varoituksista. Varoitukset eivät estä ohjelman ajamista, mutta huomauttavat koodissa olevista epäilyttävistä piirteistä, jotka kenties saavat ohjelman toimimaan väärin tai ovat hyvän ohjelmointityylin vastaisia. Varoituksiin on aloittelijan syytä suhtautua samalla vakavuudella kuin virheisiinkin: selvitä, mistä on kyse ja korjaa tilanne.
Huomaa, että virheilmoituksen tai varoituksen ilmestyminen ruudulle ei kaikissa tapauksissa tarkoita, että olet tehnyt jotain väärin. Se tarkoittaa vain että ohjelma - sellaisena kuin se juuri tällä hetkellä on - ei ole vielä kunnossa. Esimerkiksi:
- Jos lisäät moduuliin ihan uuden muuttujan, Eclipse varoittelee: Unused variable, eli "muuttujaa ei käytetä missään". Tämä ei tarkoita, että kirjoittamasi muuttujamäärittely olisi virheellinen, vaan Eclipse ainoastaan toteaa, että "tuollakin muuttujalla varmaan pitäisi vielä tehdä jotain ennen kuin ohjelma on valmis".
Joskus punainen virheilmoitus voi jäädä kummittelemaan useammaksi sekunniksi, vaikka virheen olisikin jo korjannut. Tällaisessa tilanteessa tiedoston tallentaminen päivittää yleensä tilanteen.
Virhe- ja varoitusilmoitukset eivät ole ohjelmoijan vihollisia, vaikka ne ovatkin joskus ärsyttäviä. Päinvastoin: näillä ilmoituksilla Eclipse pyrkii mahdollisimman aikaisessa vaiheessa (ennen kuin ohjelmaa ajetaan) huomauttamaan asioista, jotka ohjelmassa ovat pielessä. Jos kaikki virheet ohjelmassa ilmenisivät vasta ohjelmaa ajettaessa (esim. jos syntaktiltaan virheellistä Python-ohjelmaa voisi ajaa, mutta se "kaatuisi" odottamattomin seurauksin) olisi ohjelmoijan työ paljon hankalampaa.
On tärkeää myös pitää mielessä, että vaikka Eclipse osaakin huomauttaa monenlaisista asioista etukäteen, ei virhe- ja varoitusilmoitusten puuttuminen toki vielä tarkoita, että ohjelma oikeasti toimii (eli tekee sitä mitä piti). Syntaktisesti ja tyylillisesti täysin korrektissa ohjelmassa voi olla vaikka kuinka paljon toimintavirheitä (bugeja), jotka ilmenevät vasta koodia ajettaessa ja joiden etsiminen on aivan oma hommansa. Tuossa hommassa apuna voi käyttää debuggeria.
Jos virheilmoitukset ovat niin kummallisia, ettet millään keksi mitä ne tarkoittavat, kysy tai etsi netistä apua.
Lisävinkkejä videolla: