Tarkvara arendamine on pidev tegevus; pidevalt ilmuvad uuendused ja vigade parandused. Kõik see on meeldiv, kuid uuendamine alati pole, eriti kui peab vana maha võtma ja uue paigaldama. Kerkivad mõned küsimused: kas seadistused jäävad alles? kas kõik seaded on varundatud? Palju meeldivam on see, kui rakendus imeväel ennast uuendab ja ise midagi tegema ei pea. Nii toimivad paljud töölaua rakendused praegu, kuid samalaadselt võiksid ka meie klient-server rakendused uueneda.
Peamiselt on meil vaja uus kood kokku kompileerida, lisada talle uus versiooni number, andmebaasi skeem uuendada ja andmete kohandada. Väga palju polegi. Automatiseerimiseks sobivad lihtsad skriptid: kõige algupärasem variant oleks teha konsooli skript, kuid selleks peame väga hästi tundma iga kasutatava rakenduse parameetrite süntaksit.
Java maailmast on tuntud võlujoogid Ant, Maven ning Ruby tulekuga Raven ja Buildr. Ant oli esimesi selliseid, millega kokku puutusin ning üleminekul .NET-i peale oli loomulik valik NAnt. Nüüdseks on alternatiive tekkinud MSBuild-i ja PSake (PowerShell) näol. Siiski on mind väga kütkestanud Ruby keelelised võimalused ning Rake-i kasutamine .NET asjade jaoks ei ole probleemne.
Nende kõigi eesmärgiks on luua skript, mis pakendab rakenduse kenasti kokku ühe nupu vajutusega. Kuna olen veidi väsinud XML-ist, siis liigun vaikselt Rake poole. Varajasemalt sai kirjutatud, miks see mulle nii väga meeldib ning vastava skripti võite leida GitHubist ja vajamineva koodi sellest kataloogist. See ei ole seal täiuslik, vaid eksperiment, mida tuleks edasi viia. Kellel on huvi mind selles vallas aida, siis andke teada.
Lisaks eelnevale rakenduse pakendamisel on tihti suur soov näha, kas testid läbivad ning analüüsida koodi kvaliteeti. Välistatud pole ka API dokumenteerimine. Kui nii palju tööd on juba tehtud, siis poleks enam keeruline pideva integratsiooni server seadistada ning veelgi rohkem kasu lõigata. Vastavaid servereid on palju: CruiseControl.NET (uued mallid 1.5 CTP jaoks leiate GitHub-ist), CruiseControl, Hudson, PHPUnderControl, TeamCity…
Kogemusest soovitan kohe algusest peale hoida keskkonna poolsed seaded eraldi kohas ning neid vastavalt ka sisse laadida. Teine hea soovitus on jagada skriptid loogilisteks tükkideks, sest nii on võimalik vastavad skriptid teha lihtsamini uuestikasutatavateks. Suure tõenäosusega loome rohkem kui ühe veebipõhise vms rakenduse. Ajapikku on mul tekkinud NAnti skriptid, mida saab suhteliselt lihtsalt ümber majandada ning neid võite leida järgnevast GitHub-i kataloogist. See võib lihtsustada nii mõnegi tööriistaga sidumise. Kui kellelgi veel sarnaseid skripte kuskil peidus on, siis oleks tore, kui avaldaksite need.
Väärtuslikku lisa võib leida Paul Duvalli, Steve Matyase ja Andrew Gloveri raamatust “Continuous Integration: Improving Software Quality and Reducing Risk”. See raamat räägib kogu protsessi elementidest küllaltki detailselt.
Kui kõik vajalik on seadistatud, siis tuleb hoiduda järgneva tigeda grupeeringu eest: Phyllis, Agnes ja Gladys. Ühe nupu vajutusega rakenduse pakendamine ja paigaldamine hoiab kõvasti aega kokku ja on stressivabam. Tasub vähemalt proovimist.
Loe veel sarnastel teemadel:
- Modernne tarkvara loomine VII: Logimine või blogimine?, 26. november
- Modernne tarkvara loomine IV: Andmete kühveldamine, 16. november
- Modernne tarkvara loomine V: Mitu kasutajakontot sul on?, 18. november
- Modernne tarkvara loomine III: Andmebaasi versioonimine, 2. november
- Modernselt tarkvara loomine II: Seotud paelad, 29. oktoober
KAIZEN FEED
Telli endale Kaizeni uudisvoog
KOMMENTAARIDE FEED
Telli endale kommentaaride voog
KAIZEN TWITTER
Lühiuudised Kaizeni autoritelt
KAIZEN FACEBOOK
Liitu Kaizeniga
MIS ON KAIZEN?
Kaizen on Saiku tarkvaraarendusealane blogi, kus kirjutame erinevatest lähenemistest meisterlikule tarkvaraarendusele.
KATEGOORIAD
- .NET (18)
- Analüüs/Arhitektuur (11)
- Arendus (66)
- Ettevalmistus (1)
- Juhtimine (2)
- Varia (23)
SILDIPILV
- .NET (41)
- ilus kood (23)
- Arendus (23)
- C# (20)
- Analüüs/Arhitektuur (14)
- Testimine (10)
- raamat (8)
- Ruby (8)
- projektijuhtimine (8)
- printsiibid (6)
- produktiivsus (5)
- ReSharper (5)
- PHP (5)
- NHibernate (4)
- objekt-orienteeritud (4)
- pidev integratsioon (4)
- Viited (4)
- agile (4)
- Java (4)
- Geekdinner (4)
- lean (4)
- raamatukogu (4)
- CI (3)
- Cruise Control.NET (3)
- Robert C. Martin (3)
- scrum (3)
- iteratsioon (3)
- suhtlus (3)
- jQuery (2)
- TechEd 2008 (2)
- Visual Studio (2)
- valideerimine (2)
- intervjuu (2)
- analüüs (1)
- ASP.NET (1)
- ümberstruktureerimine (1)
- üritus (1)
- CodeRush (1)
- dokumentatsioon (1)
- Kent Beck (1)
- LINQ (1)
- Martin Fowler (1)
- Moq (1)
- Rhino Mocks (1)
- stackoverflow (1)
- võltsitud objektid (1)
- Whiteboard Wednesday (1)
- hindamine (1)
- tarkvara kvaliteet (1)
- ajagraafikud (1)
- Saiku (1)
- koolitus (1)
- tagasivaate (1)
- koosolek (1)
- dünaamilised keeled (1)
- staatilised keeled (1)
- FluentNHibernate (1)
- facebook (1)
- aastapäev (1)
- Rake (1)
- Oredev 2008 (1)
- toyota way (1)
- raiskamine (1)
- NDepend (1)
- podcasts (1)
- väle tarkvaraarendus (1)
- raido tonts (1)
- minimal marketable feature (1)
- kasutajalugu (1)
- twitter (1)
- Joomla! (1)
- MVC (1)
- andmebaas (1)
- versioonimine (1)
- diskussioon (1)
- regulaaravaldised (1)
- motiveerimine (1)
- mõõdikud (1)
- agileestonia (1)
- riistvara (1)
- koolitused (1)
- kujundus (1)
- kodulehed (1)
- veeb (1)
