Refaktorointi ”Te olette tehneet tätä ennenkin”. Mitä on refaktorointi? (1/2) prosessi ohjelmakoodin laadun parantamiseksi ohjelman sisäisen rakenteen.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Eveliina Sirkeinen: Tekstianalyysi ja mielipidetekstit netissä
Testaus ja testausympäristöt
Testaus ja testausympäristöt
Teknologia ja liikunnanopetus oppimisympäristöhankkeissa
Lähetepohjat Tarvitaan useita eri lähetepohjia.
Holvi.com -maksutili 1 Työelämävalmiuksia | Yrittäjyyskasvatusta | Oman talouden hallintaa
Ari-Matti Auvinen Jarmo Tanskanen Suomen eOppimiskeskus.
Asunto Sivakka konsernin asunnoista. Aluksi Asiakas -Ottaa yhteyttä -Käy hyvästä harjoituksesta omien asioiden hoidossa vapautumisen jälkeen -Kertoo sitoutumisesta.
Kurssilla käytettävät työkalut
Käytettävyystestaus GenMetrics projektissa Jonas Alam
Tietojen hallinta Alkuperäinen teksti:
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
MULTIMEDIAN MONET MUODOT
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
Laaja-alaista ja systemaattista vaarojen tunnistamista ja niiden aiheuttamien riskien suuruuden sekä merkityksen arvioimista. Ennakoivaa työsuojelua -
Sosialisaatio Sosialisaation käsitteellä kuvataan prosessia, jossa yksilöstä kasvaa yhteisönsä jäsen. Uusi sukupolvi oppii ja se opetetaan kulttuurinsa.
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
Lähipäivä T Business process development methods 1.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Puhuminen Varmista, että toiset ymmärtävät sinua
Liisa Laakso, Projektihakemusten arviointi Euroopan komissiossa tutkimuksen puiteohjelma.
Kurssilla käytettävät työkalut
Testaus Tiptopissa draft Mats Lindstedt, Mika Rintala.
Väliraportti A12-08 Beckhoff-teollisuustietokoneen käyttöönotto Lauri Lötjönen Mikko Pulkki.
(Joskus puhutaan myös komponenttitestauksesta.) Pienin kokonaisuus, joka on järkevä testata erikseen. ● Perinteisesti yksittäinen aliohjelma. ● Olio-ohjelmien.
5.3.3 Koodin generointi Koodin generointi tarkoittaa objektikoodin eli konekielisen ohjelman tuottamista. Generointi jakautuu kolmeen osatehtävään: 1.Muistin.
Jorma Ronkainen / IT-laitos
© Jukka Harju, Jukka Juslin
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Kokemuksia väitöskirjan tekemisestä Marjo Kauppinen.
Ohjelmointi.
Finnish Support Center FSC Oy tietojärjestelmien asiantuntija.
Mentortapaaminen Elma, Agenda Tilannekatsaus –Tehtyä –Tekemättä –Demo Ongelmia Palautteen pohdintaa Personal SE-esityksiä.
Tietokoneohjelman suoritus opintojakso Olioajattelu ja –ohjelmointi, osa I Hans Nieminen Syksy 2013.
Algoritminen ajattelu
Viestintäsuunnitelma
Pariohjelmointi Personal SE - Vesa Oinonen. Yleistä pariohjelmoinnista kaksi ohjelmoijaa istuu saman koneen ääressä ohjelmoimassa samaa ohjelmaa Tavoitteena.
Takaisin kartalle – Seutukaupunkien kehittämismenetelmä Kommenttipuheenvuoro Paavo Salli Sastamalan seutukaupunki.
Arkkitehtuurisuunnittelu Jarkko Ilomäki. Tavoitteet Tuottaa IOBASE-projektiin hyvin suunniteltu, dokumentoitu ja ylläpidettävä arkkitehtuuri Oppia eräs.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Vaasan yliopisto Tietojenkäsittely TiTe.1020 Avoin lähdekoodi - Open Source.
TUTL-sparrausprosessi syksy 2014
T Personal SE assignment Static Methods Jaakko Nyrölä, ryhmä TeTe
T Henkilökohtainen SE harjoitus
4.3 Tutkiva oppiminen? a) Opetusmenetelmä, jonka aikana oppilaat opiskelevat opetuksen kohteena olevia asioita ja tiedon tuottamisen prosesseja tutkimuksia.
Software product lines. Suomeksi ohjelmistotuotelinja Kuvaa metodeja ja työkaluja tuottaa yhteiskäytettävää koodia samankaltaisissa sovelluksissa Tarkoituksena.
Liiketoimintaprosessit ja MS Visio 2010
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Pekka Mild Optimointiopin seminaari - Syksy 2005 / 1 Monitavoitteiset vaikutuskaaviot; Ratkaisu.
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Aiheet ● Ohjelmointikielten kääntäminen ● Kieliopin määrittely ● Kääntäjän toiminta.
Ohjelmistotekniikka kevät 2003 Ohjelmistotekniikan määritelmä Ohjelmistotekniikka (Software Engineering) tarkoittaa pätevien insinööriperiaatteiden vakiinnuttamista.
S Ihminen ja tietoliikennetekniikka Harjoitustyön tutkimussuunnitelma, Ryhmä 2: Simo Hakkarainen, 69085B (ryhmänjohtaja) Antti Ratilainen,
Ei-essentialistista semantiikkaa? Tommi Nieminen XXV Kielitieteen päivät, Tampere Essentialistinen semantiikka ja sen ongelmat 2. Ei-essentialistisen.
Välipalaute Moduuli 3 Mitä tästä voimme oppia? Mitä parantaa?
Laatumittauksen 2011 tuloksia. Tiedättekö Kuinka hyviä olette? Miten pärjäätte suhteessa parhaaseen? Missä laadun vaihtelu on suurta? Mihin suuntaan laatunne.
Yksikkötestaus ● Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin.
Finnan ohjelmisto ja sen kehittäminen
Liiketoimintaprosessit ja MS Visio 2013
Tuotteen dokumentointi
MINI-INTERVENTIO TAVOITTEENA ON LÖYTÄÄ JA HOITAA VARHAISESSA VAIHEESSA ALKOHOLIN SUURKULUTTAJAT JA ONGELMAKÄYTTÄJÄT.
Poikkeustenkäsittelylohkot try-catch
tekijä: Kari Martelius valvoja: Raimo Kantola
Algoritminen ajattelu
Kirjoita tähän Kirjoita tähän Kirjoita tähän Kirjoita tähän Kirjoita tähän Kirjoita tähän Kirjoita tähän.
Hyvä ohjelmointityyli
Liiketoimintaprosessit ja MS Visio 2010
Tulevaisuuden osaamistarpeet ja työelämän muutos
Menestyvä työyhteisö Yksilö – Ryhmä/Tiimi – Organisaatio
2. Olio-ohjelmoinnin perusteita
Esityksen transkriptio:

Refaktorointi ”Te olette tehneet tätä ennenkin”

Mitä on refaktorointi? (1/2) prosessi ohjelmakoodin laadun parantamiseksi ohjelman sisäisen rakenteen parantamista ilman ulkoisesti havaittavaa toiminnallisuuden muuttumista koodin systemaattista siistimistä tehokkaalla ja ohjatulla tavalla

Mitä on refaktorointi? (2/2) koodista tunnistetaan hajujen perusteella refaktorointia vaativat kohdat valmiiden mallien (refaktorointien) järjestelmällistä noudattamista ainoastaan sellaiset muutokset, jotka parantavat ohjelman rakenteen (koodin) ymmärtämistä ovat refaktorointeja

Refaktorointiprosessi 1.Tunnistetaan refaktorointia vaativa koodi hajun perusteella 2.Varmistetaan yksikkötestien olemassaolo 3.Tehdään muutokset koodiin 4.Testataan yksikkötesteillä 5.Korjataan kunnes testit menevät läpi Refaktoroinnin aikana ei lisätä ominaisuuksia!

Esimerkkihajuja Toisteista koodia –sama rakenne useammassa kuin yhdessä paikassa –refaktoroidaan käyttämällä ”Extract Method”:ia Pitkä metodi (funktio) –jos metodia on kommentoitu paljon, se on yleensä liian pitkä –”Extract Method”, ”Decompose Conditional”

Esimerkkirefaktorointi Extract Method

Miksi tai miksi ei? Edut Parantaa ohjelman rakennetta Ohjelmakoodia on helpompi ymmärtää Tekijä oppii tuottamaan parempaa koodia Ohjelmointi nopeutuu? Haitat Toimivan koodin muuttaminen on aina riski Refaktoroinnilla ei voi pelastaa toimimatonta ohjelmakoodia Vie ainakin aluksi enemmän aikaa

Refaktorointi Verkokaupassa Lukekaa Refaktorointi-personalSE-dokumentti (tulossa) Tehdään jatkuvasti, ei pidetä refaktorointisessioita, paitsi jos refaktorointia ei muutoin oteta käyttöön. Keskitytään pääosin muutamaan tärkeimpään hajuun ja malliin aluksi PHP:n luonteen takia valmiita malleja pitää soveltaa Tavoitteena oppina tunnistamaan yleisimmät hajut ja käyttämään niihin sopivia refaktorointeja

Refaktoroinnin mittaus Refaktorointia ei voi mitata numeerisesti –tunteja ei pidä kirjata erikseen, koska refaktorointia tehdään muun ohjelmoinnin lomassa (”rooli” vaihtuu tiheään) Ohjelmakoodin subjektiivinen analyysi –I1 vaiheen koodien vertailu myöhempiin vaiheisiin Ryhmän jäsenten haastattelu

Lisätietoa Refactoring Home Page Fowler, Martin et al.. Refactoring: Improving the design of existing code. Addison-Wesley, 1999.