UTVECKLINGSVERKTYG. Praktiska tips för PUM-projekten

Relevanta dokument
Versionshantering. Problem som uppstår i större (samt även mindre) projekt:

Introduktion till git

JUnit. Junit Unit Testing. JUnit 3. JUnit 3 forts. Villkorskontroller i test. Exempel JUnit3

Versionshantering. Jan Erik Moström

Programvara på Nada. Johan Berglund Systemgruppen, Nada

Programmering i C++ Kompilering från kommandoraden

Handledning Konfigurationsstyrning tjänstedomäner

UTVECKLINGSMILJÖER Microsoft Visual Studio ( ), SQL Server Management Studio , Eclipse

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Continuous Integration med Jenkins. Linus Tolke Enea Experts

Mer om kodkvalitet. Mer om kodkvalitet. Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité?

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto

Versionshantering med Git

Mobile Cross Development

TDP005, Projekt: objektorienterade system

Tekniskt system för Lean Startup

Mål. Uppdrag. NuvoAir, Stockholm Oktober 2017 Februari Spotify, Stockholm Februari 2017 September 2017

Versionshantering med Git. Henrik Henriksson 17 april 2018

Labb 1: Vad, hur, och varför?

Handledning. Konfigurationsstyrning tjänstedomäner. Version ARK_

Home Storage Manager

Drakborgen. - Tips och rekommendationer. III. Tillvägagångssätt. Abstract. I. Inledning. II. Beskrivning av spelet

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås

Labrapport över Rumbokningssytemet Grupp:1

Har funnits nästan lika länge som datorerna. Manuell process, svarta tavlan Verktygsstöd kom tidigt redan i början på

CV Anders Drevin. Systemvetenskap 30p (1 år) Uppsala Universitet Elektroingenjör 80p (2 år) Mitthögskolan & Högskolan i Gävle

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Föreläsning 2 Verktyg m.m.

Daniel Persson. Födelsedatum: Vindragaregatan 3B, Göteborg Telefon: CURRICULUM VITAE

Webbservrar, severskript & webbproduktion

UX 40 SAP Fiori UX inte bara for SAP applikationer. Christer Ingemarsson

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna

Konsultprofil Jörgen Åkesson, Åkesson IT AB Mobil:

Tove Carlsund Systemutvecklare

Winstrand Development

Föreläsning 2. Operativsystem och programmering

Hi-Fi Prototyping + laborationsgenomgång & verktyg

Säkerställ er tillgänglighet Kommunikationsrapporteringsverktyg

1997 Datalogi MATNAT, Göteborgs Universitet samt Lunds Universitet

Hej! Min uppdaterade portfolio finns online på

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Kvalitetssäkra ditt projekt med kontinuerlig integration

GIT som alternativ till CVS/SVN i agila utvecklingsmiljöer

Open Source-utveckling för kommuner. Allemanskod den nya svenska modellen?

Alla rättigheter till materialet reserverade Easec

Så här skriver du ditt första program i C++

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Programming in C# and.net Framework

CV Jörgen Åkesson, Åkesson IT AB Mobil:

ToDo ios-applikation. Mikael Östman. Mikael Östman - mo22ez Linnéuniversitetet

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Mobila applikationer och trådlösa nät

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

Thomas Pettersson. Sammanfattning. Född: Telefon: Kristinagatan 23B Norrköping.

Systemutvecklare.NET, C#/VB, C/C++, ASP.NET, T-SQL, JAVA Systemdesign

Innehållsförteckning Sida 3 Om IT-Högskolan Sida 4-5.NET-utvecklare Sida 6-7 Applikationsutvecklare till iphone och Android Sida 8-9 Mjukvarutestare

A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices

TDDD80 Mobila och sociala applikationer. Kursintroduktion

Laboration 3 i kursen Produktion för tryckta medier och webb: Webbplatsproduktion med ett publiceringssystem

Konsultprofil. Per Norgren (1983) Arkitekt & webbutvecklare

KONSULTPROFIL Michael

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Android - En översikt samt titt på utvecklingsmiljö. Kalle Prorok 12 nov 2013

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

HMI/SCADA. Designer. Runtime. Web Client. Remote Client. HMI Operator Panel. Produktbroschyr

GYMKEEPER ANDREAS SÖDERSTRÖM

Innehålls förteckning

PHP-presentation Dataföreningens Open Source-nätverk

Webbprogrammering. Sahand Sadjadee

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

Programmeringsteknik II

ÅGIT PRESENTERAR FILR SMIDIG OCH SÄKER FILÅTKOMST OCH DELNING

Release. Konfigurations & Versionshantering samt Subversion. Konfigurations vs Versionshantering. CI -definition. Henrik Bergström

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

Teknikprogrammet, inriktning informations- och medieteknik

TDP005, Projekt: Objektorienterade System. Laboration: Eclipse

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI

Sitecon En utvärdering av en mobilapplikation.

Föreläsning 4 IS1300 Inbyggda system

Säkerhetskopiera mobilen

Systemutvecklare.NET, C#/VB, C/C++, ASP.NET, T-SQL, JAVA System design

EQ Plan - Installation

Kort version - Google Kalender för KullensPK

Introduk+on +ll programmering i JavaScript

Föreläsning 3. Programmering, C och programmeringsmiljö

Basware Experience Sverige 2012

Adobe Flash Professional CS6

Eclipse. Kort genomgång

Skissa och gissa. Individuellt Mjukvaruutvecklingsprojekt, 1DV430. Christian Nilsson, cn222gc, WP

RIV TA Konfigurationsstyrning 1.0 RIV Tekniska Anvisningar

Övervakning med GnilronEye

Laboration 1 Introduktion till Visual Basic 6.0

TDDD80 Mobila och sociala applikationer. Kursintroduktion

Avancerade Webbteknologier 2. AD11g Göteborg 2012 Mobilanpassning

StoCKK Stockholm Center för Kommunikativt och Kognitivt stöd. Tips på timer-appar. Appar som hjälper dig hålla koll på tiden

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Transkript:

UTVECKLINGSVERKTYG Praktiska tips för PUM-projekten

TEKNIKER I PROJEKTEN ios 2 C#.NET 1 Java (inkl Android) 6 Webb (HMTL/JS) 4 En genomskumning av de tilldelade projektförslagen ger ovanstående uppfattning om fördelningen mellan tekniker, vilket till viss del påverkat val av verktyg för kommande tips.

VERSIONSHANTERING Ett system för att spåra ändringar - vad som ändrades och vem som gjorde det En väldigt bra idé att använda vid utvecklingsprojekt större än hello world

CVCS ELLER DVCS Centraliserad (Subversion) Distribuerad (GIT, Mercurial) Många har tidigare erfarenhet Bra verktyg för *NIX Alla jobbar med samma data Moget GUI-verktyg för Windows Många kopior av data (backup) Kraftfullare mergemetoder Snabb hantering med lokal data Jag tror att SVN är det bästa valet för många grupper p.g.a. ovanstående. GIT är ett kraftfullt alternativ för de som kan det, vill testa eller har speciella behov (t.ex. kundkrav). Jag kommer fokusera på SVN här.

GIT - SVÅRT?

SVN - VERKTYG TortoiseSVN, bra GUI för Windows Subversion CLI för GNU/Linux, OS X, etc Integrerat i IDE (eller som plugin) Visual Studio har VisualSVN Apple XCode har inbyggd Eclipse har flera plugins för SVN, bl.a. Subeclipse TortoiseSVN känns som ett moget GUI-verktyg för att hantera ett SVN-repository. I unix-/linuxbaserade miljöer känns det mest naturligt att använda det officiella CLIverktyget. Plugins/inbyggda i IDEer fungerar oftast bra för enklare saker (checkout, update, commit) och ger gränssnittet integrerat i utvecklingsmiljön. Kan med fördel kompletteras med ovanstående. VisualSVN är betallicens ($49), gratis för open-source

SVN - DEMO Normal användning Checkout Update Göra ändringar (Revert) Update/merge Testbygga Never break trunk Commit Meningsfull kommentar Atomic, fillåsning behövs oftast inte

SVN - BRANCHES, TAGS Vanliga kataloger Branches för separata utvecklingsspår T.ex. prototypimplementation av två olika lösningar i huvudsystemet Tags för att markera versioner, t.ex. vid släpp av beta Demo Skillnad mellan branch och tag är enbart en konvention hur det används, båda är vanliga kataloger. Branchningstrategin beror på projektet (http://svn.apache.org/repos/asf/subversion/trunk/ doc/user/svn-best-practices.html, Know when to create branches) - extremfallen är att man aldrig eller alltid branchar för ändringar man gör. Att aldrig brancha kan fungera i PUMprojekt då alla jobbar väldigt samspelt mot /trunk, att alltid brancha kan ge mycket overhead för integration. Branch-when-needed är ett mellanting som möjliggör prototypimplementationer av delar som inte nödvändigtvis integreras i slutprodukten.

SVN - TIPS Best practices Layout (trunk/branches/tags) Sammanhängade commits med meningsfulla kommentarer SVN ignore för genererade skräpfiler Expert/ansvarig i gruppen Det finns en rad best practices som är bra att följa SVN ignore kan användas för att få en klarare blick över vad som ska commitas och undvika att skräpfiler commitas av misstag. Det kan vara en fördel att utse någon i gruppen som svarar på frågor om och löser eventuella problem som uppstår med repositoriet, speciellt om branchning osv. ska användas.

IDE - INTEGRATED DEVELOPMENT ENVIRONMENT Kompilerings-/byggverktyg Debugger Inbyggd dokumentation Grafisk designmiljö Språkmedveten källkodseditor Syntax highlighting Autocompletion av variabler, funktioner, etc. Påpekar fel i koden och erbjuder hjälp att lösa problemet En IDE integrerar flera utvecklingsverktyg för att ge en mer produktiv miljö för utvecklaren.

IDE - INTEGRATED DEVELOPMENT ENVIRONMENT Språkstöd i IDE är viktigt för full nytta Eclipse - Java (Android), C/C++, PHP... Aptana - Web (PHP, JavaScript, HTML...) Visual Studio - C#, ASP.NET, WP7... XCode - Objective-C (ios, OS X)... Eclipse (med plugins) stödjer det mesta, speciellt Java (Android), C/C++ Aptana Studio är baserat på Eclipse och har fokus på webbutveckling. Visual Studio är gör sig väldigt bra för.net-utveckling och utveckling mot andra Microsoftprodukter. XCode är Apples motsvarighet till Visual Studio.

IDE - APPUTVECKLING De vanliga funktionerna Testa program i enhetssimulator Deploy till och debug på enhet Analysera programmet, hitta minnesläckor m.m. En IDE är väldigt givande för apputveckling då det erbjuder många verktyg som behövs och kan vara bökiga att koppla ihop på egen hand.

STATIC CODE ANALYSIS Metod för att hitta vanliga programmeringsmisstag och stilmissar Finns många verktyg för static code analysis Java - FindBugs, PMD Objective-C (ios) - Clang.NET - FxCop, StyleCop (JavaScript - JSLint, Google Closure) John Carmack (id Software) hyllar Static Code Analysis Javaanalysatorerna FindBugs och PMD finns som plugin till Eclipse Clang följer med XCode - aktiveras i projektinställningarna För.NET analyserar FxCop koden och StyleCop verifierar att rekommenderad kodstil följs JavaScript är svårare på grund av att det är dynamiskt - JSLint och Google Closure kan ge feedback

KODSTIL Enhetlig kodstil underlättar läsning av koden, ger bättre intryck och kan reducera misstag. Kan följa ett huvudprojekts stilguide Ett eventuellt frameworks stilguide Programmeringsspråkets stilguide

KODSTIL Kommentarsstil för dokumentationsgenerering Uppmanar till kodkommentering Enhetlig kommentarformatering Underlag för teknisk dokumentation Ex: Doxygen, JavaDoc Visa exempel på dokumentation genererad av Doxygen.

FRÅGOR?