10 parasta tapaa pilata Liferay-projekti
-
Upload
ambientia -
Category
Technology
-
view
320 -
download
2
description
Transcript of 10 parasta tapaa pilata Liferay-projekti
www.ambientia.net 1
10 parasta tapaa pilata Liferay-projekti
Henri Sora
23.10.2014
www.ambientia.net 2
1) Aloittaminen
kilpailutus, suunnittelu, konseptointi, protoilu, budjetointi, investointiehdotus...
23.10.2014
www.ambientia.net 3
#1.1 Liferay on ilmainen
• ”Liferay on ilmainen! Ok, otetaan se!” • Eih. Se on todella huono lähtökohta projektille. • On toki olemassa vapaita (engl: free) softia, mutta
ei niidenkään ylläpito ole ilmaista (engl: free). • Community Edition (CE) on toki ilmainen ja vapaa,
mutta • sen ylläpito vaatii työaikaa• työaika maksaa yleensä rahaa.
• Enterprise Edition (EE) on kaupallinen tilaus, jolloin • Liferay yrityksenä hoitaa bugien korjaamisen• EE on usein kustannustehokkaampi.
23.10.2014
www.ambientia.net 4
#1.1 Liferay on ilmainen
• 1) Toinen toimittaja: Liferay on ilmainen. Tukea ei tarvita. Kyllä meidän pojat ratkovat sitten ongelmat. He kysyvät Liferayn foorumeilta tarvittaessa.
• 2) Ambientia: Ottakaa Liferayn tukitilaus, vaikka se maksaakin rahaa. Se on tehokas tapa hoitaa Liferay-pinon ylläpito. Hinnat ovat tuhansia euroja vuodessa.
• Jos ensimmäinen toimittaja ei ole saanut bugeja ratkottua, on aika vaikea tilanne kertoa asiakkaalle em. tarinaa.
• Tästä syystä: Liferay on vapaa, mutta ei ilmainen. Jokaisen softan kanssa ylläpitoon menee aina rahaa.
23.10.2014
www.ambientia.net 5
#1.2 kompleksinen teknologiapino
• Vaatimuksiin nähden liian kompleksinen teknologiapino. Esimerkiksi • Edustaan cache-kerros • Liferay-klusteri esityskerrokseen • Alfresco-klusteri dokumentinhallintaan, josta sisältö
julkaistaan Liferayn sisällöksi sopivalla työnkululla• Kuvatiedostojen käsittely omasta järjestelmästään...
• Bugin etsintäaika kasvaa eksponentialisesti, kun järjestelmiä on paljon...
23.10.2014
www.ambientia.net 6
#1.2 kompleksinen teknologiapino
23.10.2014
Yksinkertaistus
~15 000 000 riviä koodia ~4 000 000 riviä koodia
www.ambientia.net 7
#1.3 Liferay kultaisena vasarana
Verkkokauppa?
23.10.2014
Blogialusta?
Wiki?
www.ambientia.net 8
#1.4 Konseptointi ilman alustaymmärrystä
• Firma 1: uuden palvelun konseptointi • Firma 1: konsepti valmis • Asiakas: erilaisten alustojen kilpailutus
23.10.2014
Konseptointi jo Liferayn avulla? Säästää kummasti jatkossa.
• Firma 2: toteutus... • Asiakas: Miksi? Muutos... Miksi? Muutos...
• Asiakas Firma 2: ”Sitten toteutatte tämän konseptin Liferaylla”
Konseptin sovittaminen Liferaylle tähän väliin?
www.ambientia.net 9
2) Tekeminen
Eli varsinainen palveluiden ohjelmointi
23.10.2014
www.ambientia.net 10
#2.1 Liferayn jatkaminen
• ”otetaan lähdekoodi ja aletaan muokata”• Eih! Joskus aikaisemmin Liferayn kanssa tätä
jouduttiinkin tekemään. • Liferayn muokkausmenetelmät nykyisin
• Teemat: ulkoasu• Layout templates: portlettien järjestys• Page templates: koko sivun rakenne• Site templates: sivuston rakenne• Hook plugins: määritetyt kohda Liferayn coressa• Ext plugins: luokan korvaaminen coressa
23.10.2014
www.ambientia.net 11
#2.2 portlettien suunnittelu
• Yksi iso portletti, joka toteuttaa kaikki palvelun toiminnallisuudet. Eih.
• 1 portlet-app 1 tehtävä, ok! • Toisaalta 10 portletin keskenään riippuvainen
syherö on myös vaikea julkaisujen ja kehityksen aikana.
• Liferay 7:ssa on tulossa varsinainen OSGI-tuki, jolloin sovellukset voidaan helpommin koostaa pienistä komponenteista.
23.10.2014
www.ambientia.net 12
#2.3 käli kiinni portletteihin
• ”Teemme niin räätälöidyn toteutuksen, että käyttöliittymäkoodi on mahdollista liittää samaan.”
• Eih. • Tulee joka tapauksessa tilanne, jossa joku
toinen kehittäjä muokkaa toteutusta vaikka pelkän UX:n suhteen. Mitä sitten tehdään?
23.10.2014
www.ambientia.net 13
#2.4 ”Liferay ei sovi TDD:n”
• ”Liferayssa itsessään on jo paljon koodia, joten testivetoinen kehitys (TDD) ei sovi tähän projektiin.”
• Väärin. • Liferayn kanssa on mahdollista saada TDD toimimaan.
Se vaatii suunnittelua, mutta se on tehtävissä. • TDD:n saa Liferayn kanssa onnistumaan esim.
palvelukerroksen toteutusten ja Controller-tason MVC-logiikan testaamisessa.
• Testien rivikattavuus ei generoidun koodin kanssa ole oikea mittari.
23.10.2014
www.ambientia.net 14
3) Ylläpito
23.10.2014
www.ambientia.net 15
#3.1 Liferayn koventaminen
• Liferay on yli 4 000 000 riviä koodia. • Liferay on tuhansia ominaisuuksia. • Iso osa ominaisuuksista pois päältä! • IPS-järjestelmä?
23.10.2014
www.ambientia.net 16
#3.2 puutteellinen QA-käytäntö
• ”Säästetään QA-koneiden lisensseissä, ja ei ajeta klusteria QA-ympäristössä.”
• EE:n päivitykset rikkovat ympäristöä.
• Osa bugeista ilmenee vain klusterissa.
23.10.2014