- TIE-0240x
- 3. Rajapinnat: sopimus rajapinnasta
- 3.3 Harjoitus (PAKOLLINEN): Projektin käynnistäminen
Harjoitus (PAKOLLINEN): Projektin käynnistäminen¶
Tämän viikon tavoitteena on harjoitella uuden Qt-projektin aloittamista. .. Tämän ohella harjoitellaan sopimussuunnittelua (esi- ja jälkiehdot sekä luokkainvariantit) käytännössä sekä samalla tutustua Doxygen-työkaluun, jolla koodin dokumentaation voi upottaa kooditiedostojen kommenteiksi.
Harjoitus on pakollinen eli teet kohdat Qt-projekti ja Tagit. Palautus tehdään versionhallinnan avulla. Muista tehdä commit riittävän usein!
Tehtävän vaatimat tiedostot saat nyhtämällä versionhallinnasta. Ne sijaitsevat repositoriossa student_template_project. Se tulee laittaa paikalliseen repositorioosi remoteksi. Tässä harjoituksessa tarvitsemasi koodit ovat hakemistossa EX1. Huomaa, sinulla ei ole oikeuksia päivittää repositoriota.
- Doxyfile: Doxygenin konfiguraatiotiedosto, jota voi muokata doxywizard-ohjelmalla (käynnistys komentoriviltä) tai käsin. (Huom! Muokkaaminen ei ole välttämätöntä tässä harjoituksessa.)
- date.hh/.cc: Esimerkkiluokka, jonka rajapinta on dokumentoitu Doxygen-muodossa esi- ja jälkiehtoineen.
- fraction.hh/.cc, string.hh/.cc, vector.hh/.cc: Tehtäväluokat, joista rajapintadokumentaatio puuttuu.
Usean tietovaraston käytöstä¶
Kurssilla käytetään oman tietovaraston lisäksi muita etätietovarastoja materiaalien jakamiseen. Tällöin paikalliseen työskentely-ympäristöön tulee asettaa originin lisäksi toinen etätietovarasto. Se asetetaan git-komennolla: git remote
.
- kloonaa oma tietovarastosi
- siirry omaan tietovarastoosi
- lisää sinne remote
git remote add upstream student_template_project.git-URL
, jossastudent_template_project.git-URL
korvataan kokonaisuudessaan repositorion url-osoitteella, joka alkaahttps://
taigit@
. - nyhdä remoten sisältö käyttöösi
git pull upstream HEAD
HUOM! Remoten URL määräytyy sen mukaan, oletko asettanut GitLabiin SSH-avaimen käyttöön.
Qt-projekti¶
Aloita harjoitus luomalla sitä varten Qt-projekti: New Project-> Non-Qt Project->Plain C++ Application
. Projekti tulee nimetä nimelle DesignByContract
. Luo se samaan hakemistoon versionhallinnasta nyhtämiesi kooditiedostojen kanssa EX1
.
Qt luo hakemistoosi uuden alihakemiston projektille. Siirrä harjoituksen tarvitsemat tiedostot sinne git mv
, esim. git mv file.txt Dir/
Avaa DesignByContract.pro
ja korjaa siitä muutama keskeinen asia: kääntäjä käyttämään C++:n versiota C++17 sekä Qt:n kirjastoja
CONFIG += console c++17
CONFIG += qt
Tämän jälkeen lisää .pro-tiedostoon harjoituksen tiedostot. Tämä on mahdollista suoraan Qt:n käyttöliittymästä oikealla hiiren napilla DesignByContract->add existing files...
SOURCES += \
...
DISTFILES += \
Doxyfile
HEADERS += \
...
Tagit¶
Kaikki kurssin koodipalautukset tehdään versionhallinnan kautta. Ennen kuin kiiruhdat palauttamaan harjoitusta, tarkista, että se on palautettavassa kuosissa. Näät tämän GitLabissa:
- Pushaa muutoksesi
- Mene GitLabiin
- Avaa oma repositoriosi. Viimeisimmän commitisi vieressä pitäisi näkyä vihreä pyöreä kuvake. Koko pipelinen pääset näkemään sivuvalikosta CI/CD:n alta.
- Jos pipeline näyttää vihreää
passed
harjoituksesi on valmis palautettavaksi. Jos ei näytä, korjaa harjoitustasi ja tee uusi commit.
Työ palautetaan tagaamalla. Tagin pitää alkaa EX1_submission. Tagin saat luotua:
git tag -a "EX1_submission" --message "Message for tag here"
git push origin HEAD
git push origin --tags
On tärkeää muistaa pushata sekä muutokset että tag.
A+ esittää tässä kohdassa tehtävän palautuslomakkeen.