Kapitel 2. Sessioner och projekt: KDevelops grunder

I det här avsnittet går vi igenom en del av terminologin rörande hur KDevelop ser på världen och hur arbete struktureras. Närmare bestämt introducerar vi koncepten session och projekt och förklarar hur projekten man vill arbeta på ställs in i KDevelop.

Terminologi

KDevelop har koncepten session och projekt. En session innehåller alla projekt som har något att göra med varandra. I exemplen som följer, anta att du är utvecklare av både ett bibliotek och ett program som använder det. Du kan se KDE:s kärnbibliotek som det förra och KDevelop som det senare. Ett annat exempel: Låt oss säga att du är en programmerare av Linux® kärna, men också arbetar på en drivrutin för Linux® som inte ännu har infogats i kärnans träd.

Så med det senare som exempel, skulle du ha en session i KDevelop som har två projekt: Linux®-kärnan och drivrutinen. Du bör vilja gruppera dem i en enda session (istället för att ha två sessioner med ett enda projekt vardera) eftersom det är användbart att kunna se kärnans funktioner och datastrukturer i KDevelop när du skriver källkod för drivrutinen, så att du exempelvis kan få kärnans funktions- och variabelnamn automatiskt expanderade, eller så att du kan se kärnans funktionsdokumentation medan du arbetar på drivrutinen.

Föreställ dig nu att du också råkar vara en utvecklare av KDE. Då skulle du ha en andra session som innehåller KDE som ett projekt. Du skulle i princip kunna ha en session för allt detta, men det finns inte någon riktig anledning att göra det. För arbete med KDE, behöver du inte kunna komma åt kärnans eller drivrutinens funktioner, och du vill inte att KDE:s klassnamn ska expanderas automatiskt medan du arbetar med Linux®-kärnan. Till sist, att bygga några KDE-bibliotek är oberoende av omkompilering av Linux®-kärnan (medan när du än kompilerar drivrutinen vore det också bra att kompilera om Linux®-kärnan om några av kärnans deklarationsfiler har ändrats).

Slutligen, en annan användning av sessioner är om du både arbetar på den aktuella utvecklingsversionen av ett projekt, samt på en gren. I detta fall vill du inte att KDevelop blandar ihop klasser som hör till huvudversionen och grenen, så du har två sessioner med samma uppsättning projekt men från olika kataloger (som motsvarar olika utvecklingsgrenar).