Vi har tidigare diskuterat lite sköna snabbkommandon för Eclipse i inlägget Eclipse Tips och Tricks. Då nämndes bland annat Ctrl-Shift+F för att formatera koden och Ctrl+Shift+O för att organisera importer.
I Eclipse finns något som kallas för Save Actions under Window -> Preferences och sedan Java -> Editor -> Save Actions. Där kan man ställa in en hel del saker som automatiskt ska ske när du sparar en fil exempelvis:
- Formatera koden enligt dina inställningar
- Organisera importer / ta bort onödiga importer
- Sortera medlemmar (metoder och attribut)
- Ta bort ”trailing whitespace”
- Fyll ut med måsvingar och parenteser där det saknas
- Ta bort onödiga castningar
- etc
Om du gillar att ha ordning och reda i dina källkodsfiler kan jag rekommendera detta. Det är dock viktigt att man bestämmer vilka formateringsregler som ska gälla i det aktuella projektekt och att alla använder dessa regler. Annars kan filerna förändras för mycket mellan varje incheckning. Om någon exempelvis använder tabbar och någon annan använder mellanslag så kommer filerna att diffa stort fast man kanske bara har gjort en mindre förändring.
Självklart kan detta arbetssätt vara problematiskt ifall du sitter i en existerande kodbas som inte är bra formaterad – varje ”Save” kan leda till att den aktuella filen förändras kraftigt på grund av formateringen och det kan det bli svårt att se vad som egentligen förändrats i filen mellan två versioner. Detta är ju dock ett problem som försvinner över tiden eftersom alla filer så småningom är formaterade.
Escenic är ett norskt företag som utvecklar diverse moduler som tillsammans bildar ett Content Management System (CMS), det vill säga ett publiceringssystem eller webbpubliceringssystem. Meningen och nyttan med dessa är att de tillåter att personer utan programmeringskunskaper själva kan kontrollera innehållet på en (ofta omfattande) webbplats – det vill säga skapa nytt innehåll, redigera eller ta bort gammalt innehåll, lägga upp bilder, osv. Det finns ett antal olika javabaserade publiceringssystem på den svenska marknaden, där de stösta utvecklas av Escenic och ett annat företag som heter Polopoly. Escenics system används idag av många dags- och kvällstidningar, bland annat Aftonbladet, Svenskt Näringsliv och Svenska Dagbladet. Läs mer >>
Snart är det sommar och vad passar bättre än lite javalektyr i hängmattan?
Effective Java av Joshua Bloch
Det här är en allmän bok som berör mycket som en javautvecklare stöter på i vardagen. Boken är uppdelad i 10 kapitel med ett antal tips i varje, totalt 57st. Tipsen är av allmän karaktär och är därför relativt tidlösa och obundna till ev ramverk som används. Ibland kan tipsen kännas basala men läs vidare, motiveringarna är mycket bra och där finns mycket att hämta. Många gånger är tipsen kopplade till missar eller framgångsrecept i javas API.
Det är inte en förstabok i java utan kräver att man kan språket. I och med dess ganska breda och grundläggande upplägg rekommenderar jag den inte för experter. Tex om man har jobbat mycket med parallell programmering i java bör man inte köpa boken för dess kapitel om trådning.
Joshua har arbetat mycket med API-design vilket märks i boken, mycket av vad han skriver är riktat till utvecklare av återanvändbara komponenter. Även om man inte jobbar med API-design finns det stora fördelar med att arbeta med återanvändbarhet i åtanke.
Överlag tror jag att få har glädje av allt innehåll i boken men alla har glädje av något.
Självtestfråga:
Arv, delegering samt dekorering är tre sätt att realisera återanvändbarhet av kod. Vad finns det för fördelar/nackdelar mellan arv/dekorering? Vad är det för skillnad mellan dekorering och delegering?
Känns frågan relevant? Vill du veta svaret? Läs boken
Mer info om boken
Java theory and practise
Om du är sugen på mer av samma sort kan jag rekommendera Brian Goetz artiklar i ”Java theory and practise”, han är en av utvecklarna bakom mjukvaran findbugs. Nivån och upplägget är likt det i Effective Java.
Ex på fråga man får besvarad i artikeln Safe construction techniques: Vad kan det finnas för fallgropar med att starta en ny tråd i en konstruktor?
Samtliga artiklar
(Texten som tidigare saknades i detta blogginlägg är nu återskapad.)
Som en fortsättning på min artikel Eclipse Tips och Tricks, och Tommys Breakpoints i Eclipse, så tänkte jag berätta lite om remote-debuggning i Eclipse. Det är en mycket användbar teknik att kunna.
Det finns en massa bra pluginer till Eclipse för att hantera utveckling med olika applikationsservrar och servlet-motorer. Men i många fall behövs inte dessa. Java har länge kunnat öppna en port i VMen för att tillåta en debugger att koppla upp sig. Med Eclipse är det mycket enkelt. Se här bara…
Läs mer >>
Breakpoints är ett ovärderligt verktyg när det gäller att debugga kod. I Eclipse (och förmodligen andra IDE:s) så kan man även sätta breakpoints som baseras på ”conditions” och ”exceptions”.
Läs mer >>
Efter en lunchdiskussion med ett par av mina kollegor letade jag fram ett gammalt dokument som jag skrev åt en kund för ett par år sedan. Det hade titeln ”Eclipse Tips och Tricks”. Det är tyvärr inte up-to-date längre, så jag tänker inte dela med mig av det här, men det väckte en del tankar.
Det kan göra rätt stor skillnad på produktiviteten att lära sig några nyckelfinesser i det verktyg man använder sig av — särskilt om det är det verktyg man jobbar större delen av dagarna med som Eclipse tenderar att vara för Java-utvecklare. Ändå händer det allt som oftast att man ser någon göra nån liten grej som man aldrig sett förut.
För skojs skull tänkte jag därför försöka lista de vanligast handgreppen jag gör i Eclipse. Antagligen känner du till de flesta, men kanske är det något som är nytt. Och säkert kan du tipsa mig (i kommentarerna) om något smart som jag borde känna till!
Läs mer >>
Jag har kört Eclipse WTP (Web Tools Platform) ett bra tag nu, och det funkar utmärkt för mig, även om jag i ärlighetens namn inte använder den till mycket mer än att redigera JSP-filer. Det enda negativa jag kunde säga om det var att det var lite knöligare att installera än Eclipse-plugins brukar vara. När jag installerade det var man nämligen tvungen att söka rätt på, och installera, komponenter som WTP behövde och som dessutom var plattformsberoende, innan man kunde installera själva WTP. Det var väl inte hela världen i och för sig, men det gjorde helt klart tröskeln mycket högre för att installera på nya miljöer.
Läs mer >>
Denna artikel beskriver den populära opensourcekomponenten Hibernate. Hibernate är ett s.k. Object Relational Mapping (ORM) verktyg som används för att möjliggöra persistens. Hibernate är ett av de mest aktiva och populära javaprojekten på Sourceforge och kommer garanterat dyka upp mer och mer i javabaserad systemutveckling framöver. Läs mer >>
I denna avslutande del i min artikelserie beskriver jag det slutliga elddopet för mitt försök att implementera en design där persistensmekanismen kan bytas ut utan att klientkoden behöver skrivas om.
Ambitionen var att flytta persistenshantering till en J2EE-server och ge webappen tillgång till denna via en fasad i form av en sessionsböna. Servern jag valde var JBoss 4.0, en open-source server, flitigt använd av Javautvecklare och med en ökande marknadsandel.
Läs mer >>