10 parasta tapaa pilata Liferay-projekti

17
10 parasta tapaa pilata Liferay-projekti Henri Sora 23.10.2014 www.ambientia.net 1

description

Liferay Road Show Helsinki 23.10.2014 Henri Sora, Ambientia

Transcript of 10 parasta tapaa pilata Liferay-projekti

Page 1: 10 parasta tapaa pilata Liferay-projekti

www.ambientia.net 1

10 parasta tapaa pilata Liferay-projekti

Henri Sora

23.10.2014

Page 2: 10 parasta tapaa pilata Liferay-projekti

www.ambientia.net 2

1) Aloittaminen

kilpailutus, suunnittelu, konseptointi, protoilu, budjetointi, investointiehdotus...

23.10.2014

Page 3: 10 parasta tapaa pilata Liferay-projekti

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

Page 4: 10 parasta tapaa pilata Liferay-projekti

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

Page 5: 10 parasta tapaa pilata Liferay-projekti

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

Page 6: 10 parasta tapaa pilata Liferay-projekti

www.ambientia.net 6

#1.2 kompleksinen teknologiapino

23.10.2014

Yksinkertaistus

~15 000 000 riviä koodia ~4 000 000 riviä koodia

Page 7: 10 parasta tapaa pilata Liferay-projekti

www.ambientia.net 7

#1.3 Liferay kultaisena vasarana

Verkkokauppa?

23.10.2014

Blogialusta?

Wiki?

Page 8: 10 parasta tapaa pilata Liferay-projekti

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?

Page 9: 10 parasta tapaa pilata Liferay-projekti

www.ambientia.net 9

2) Tekeminen

Eli varsinainen palveluiden ohjelmointi

23.10.2014

Page 10: 10 parasta tapaa pilata Liferay-projekti

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

Page 11: 10 parasta tapaa pilata Liferay-projekti

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

Page 12: 10 parasta tapaa pilata Liferay-projekti

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

Page 13: 10 parasta tapaa pilata Liferay-projekti

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

Page 14: 10 parasta tapaa pilata Liferay-projekti

www.ambientia.net 14

3) Ylläpito

23.10.2014

Page 15: 10 parasta tapaa pilata Liferay-projekti

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

Page 16: 10 parasta tapaa pilata Liferay-projekti

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

Page 17: 10 parasta tapaa pilata Liferay-projekti

Puhelin: 040 5340 405

Sähköposti: [email protected]

Twitter: @henrisora

Henri Sora