Göm menyn

TDDC69 Objektorienterad prog. och Java

Utvecklingsmiljö för Java


Moderna utvecklingsmiljöer för Java

Det är ofta extremt smidigt att använda en integrerad utvecklingsmiljö (IDE). En del tycker säkert detta är onödigt trams: Källkoden är en vanlig textfil och "riktiga programmerare" använder texteditorer som Emacs eller Notepad++. Men moderna miljöer analyserar och indexerar automatiskt koden allteftersom den skrivs, vilket ger möjligheter långt utöver de "traditionella" funktionerna att hålla ordning på projektstrukturen, färglägga kod och starta kompilatorer. Att lära sig hur en sådan miljö fungerar kan spara mycket tid, eftersom den:

  • Omedelbart VISAR både syntaxfel och andra fel som skulle förhindra kompilering, så man kan rätta dem utan att behöva skriva, kompilera, hitta raden som första felet var på, fixa, skriva, kompilera, osv. ad nauseam.

  • Analyserar och indikerar möjliga problem i koden, från så generella fall som variabler och metoder som aldrig används, till så specifika fall som försök att använda index 0 i ett ResultSet (vars lägsta index är 1). Detta ger en möjlighet att hitta problem som kompilatorn inte alls kan hitta. IntelliJ IDEA har till exempel över 600 inbyggda kodinspektioner där nästan alla automatiskt i realtid.

  • Ger många navigerings- och analysmöjligheter: Hoppa med en enkel knapptryckning till definitionen av en metod, visa vem som anropar den här metoden, visa dataflöde till eller från en specifik variabel, och så vidare.

  • Ger möjlighet till refactoring, dvs. utvecklingsmiljön hjälper till och tar hand om många tråkiga uppgifter när du vill omstrukturera din kod. Detta sparar mycket tid för själva omstruktureringen, vilket i sin tur gör att man faktiskt gör omstruktureringen istället för att skjuta upp den i oändlighet, och tjänar ännu mer tid i det långa loppet eftersom koden blir mer lättläst och lätthanterlig.

    • Om du döper om en metod byts också namnet på alla dess anropspunkter och alla överlagrade varianter av metoden – utan att orelaterade metoder eller variabler som råkar ha samma namn döps om, något som sök-och-ersätt inte kan hantera och som kan vara otroligt trist att göra för hand.

    • Välj en del av en lång metod och extrahera automatiskt en ny metod som innehåller den markerade delen, med automatiskt härledda parametrar och returvärden och en garanti att den nya koden fungerar på samma sätt som förut.

    • ...

  • Ger tillgång till en integrerad debugger där man t.ex. kan sätta brytpunkter (stanna här och visa alla variabelvärden varje gång programmet kommer hit).

  • Ger integrerad tillgång till versionshantering

  • Och så vidare...

IntelliJ IDEA

Som utvecklingsmiljö för Java rekommenderar vi IntelliJ IDEA. Andra miljöer (eller rena texteditorer) är också tillåtna, utom i introduktionslabben, men:

  • Hjälp kan ta längre tid om ni använder en miljö som saknar goda navigeringsmöjligheter eller som labbhandledaren inte är van vid. I vissa fall kan ni kan behöva ta in projektet i IDEA för att få hjälp. Projekt ska kunna migreras automatiskt från t.ex. Eclipse 3.x till IDEA, men vi lämnar inga garantier för att det ska fungera.
  • Labbar måste lämnas in i IDEA-format.
  • Vi kan komma att kräva ändringar som är enkla i en miljö med stöd för refactoring, men krångliga i en ren texteditor.

IntelliJ IDEA hemma

IDEA finns tillgänglig i en open source-version, "Community Edition". Den saknar stöd för många webrelaterade språk (JavaScript, CSS, ActionScript, PHP, ...) och saknar även databasverktyg, men har fullständigt stöd för Java. Ladda gärna ner den om du vill arbeta på egen dator.

Hjälp och dokumentation för IntelliJ IDEA

En hel onlinehjälp finns tillgänglig. Bland de mest relevanta avsnitten finns:

Dessutom finns ett antal tutorials som tar dig steg för steg genom grundläggande programmering i IDEA:

Slutligen finns också JetBrains TV, med över 100 screencasts som visar med video hur specifika saker kan göras i IDEA.

Att starta IDEA i Sun-PUL

För att starta IDEA i Sun-PUL:

> ~TDDC69/idea/bin/idea.sh

IDEA använder en hel del diskutrymme för filer under ~/.IntelliJIdea. Du kommer att få motsvarande quota under kursperioden. De flesta av dessa filer ligger under ~/.IntelliJIdea/nobackup/system och är helt automatgenererade. Dessa filer kan du radera när du vill (IDEA kommer då att indexera om filer osv. vid nästa uppstart, vilket tar lite tid).

Information om hur du konfigurerar IDEA på korrekt sätt för denna kurs kommer att ges i första labben.


Sidansvarig: Jonas Kvarnström
Senast uppdaterad: 2012-08-29