Full stack

Full stack on tietojärjestelmien kehittämisen osa-alueita yhdistelevä lähestymistapa, joka liittyy käyttäjäkokemuksen suunnitteluunViitanen 2018, 2, järjestelmäkehittäjien työnkuviinViitanen 2018, 24 ja osaamiseen Shropshire, Landry & Presley 2018 sekä kehitystyön tekniseen ympäristöön. Teknisenä käsitteenä full stack voi viitata yksinkertaisimmillaan järjestelmän rakenteen jaotteluun asiakas- ja palvelinosiinZammetti 2020, 1. Full stack voidaan nimetä lyhenteellä, joka muodostetaan siinä keskeisten välineiden nimistä (esim. LAMP = Linux, Apache, MySQL, Perl). Termi full stack perustuu teknisten järjestelmien kuvaamisessa käytettyyn pinon (engl. stack) käsitteeseen, jolla tarkoitetaan järjestelmän arkkitehtuurin kerroksittaista rakennetta. Viitanen 2018, 25 Rakenteessa kullakin kerroksella on oma tehtävänsä ja määritellyt rajapinnat toisiin kerroksiin. Full stackin synonyyminakin käytetty termi solution stack (kirjaimellisesti suomentaen "ratkaisupino") viittaa nimettyihin ohjelmistotuotteisiin ja/tai laitteisiin, joista kokonaisuutena katsotaan muodostuvan palveluarkkitehtuuri (Service Oriented Architecture, lyhennettynä SOA).Bieberstein ym. 2008, 1 ==Ammatillinen ja työnjaollinen näkökulma== Ammatillisena ja työnjaollisena käsitteenä, jollaisena sitä käytetään esimerkiksi rekrytoinnissa, full stack sisältää ajatuksen, että suunnittelija (full stack designer) tai ohjelmistokehittäjä (full stack developer), kykenee ottamaan huomioon, suunnittelemaan ja toteuttamaan käyttäjäkokemuksen eri osa-alueiden tukea tietojärjestelmässä. Full stack developer -käsite on varsin uusi. On esitetty, että sitä on alettu laajemmin käyttää vuoden 2013 tienoilla. Full stack -suunnittelijan rooli on saanut runsaasti huomiota keskusteluissa esimerkiksi sen määrittelyn, hyödyllisyyden ja työmarkkinoilla esiintyvän kysynnän kannalta. ==Käyttäjäkokemuksen näkökulma== Käyttäjäkokemusta (user experience) pidetään erityisesti kuluttajatuotteiden massamarkkinoilla tärkeänä tekijänä tuotteiden ja palveluiden menestyksessä. Käyttäjäkokemuksen käsite poikkeaa aiemmin tietojärjestelmien suunnittelussa keskeisestä käytettävyyden (usability) käsitteestä siten, että käyttäjäkokemukseen katsotaan kuuluvan hedonistinen osa (kuten hauskuuden tai tyydytyksen kokemus), kun taas käytettävyys määrittyy välineellisin tai käytännöllisin kriteerein.Karvonen 2019, 40 Käytettävyyttä kehittämällä pyritään tehostamaan käyttäjän ja laitteen yhteistoimintaa ja toisaalta tekemään sitä käyttäjälle miellyttävämmäksi.Sinkkonen ym. 2002, 19 ==Tekninen näkökulma== Teknisestä näkökulmasta web-järjestelmien full stack koostuu tietokantajärjestelmästä sekä sovellusten kehityksen ja käytön asiakas- ja palvelinympäristöistä. Esimerkiksi MEAN on ilmainen ja avoimeen lähdekoodiin perustuva full stack, joka sisältää MongoDB-tietokannan, Express.js-palvelimen toteutusympäristön, AngularJS-JavaScript-ohjelmistokehyksen ja Node.js-suoritusympäristön. Esimerkkejä full stack -kokoonpanoista Kokoonpano Käyttöjärjestelmä(t) Tietokanta/-kannat Web-palvelin Ohjelmointikieli/-kielet Web-framework BCHS OpenBSD SQLite httpd C GLASS Linux GemStone Apache Smalltalk Seaside LAMP Linux MySQL Apache Perl MEAN.JS Node.js:n tukemat MongoDB Node.js JavaScript AngularJS Carlos Buenon vuonna 2010 julkaisemaa blogikirjoitusta The Full Stack pidetään full stackin idean hahmottamiseen merkittävästi vaikuttaneena "klassikkona". Kirjoituksessa Bueno kuvaa full stack -ohjelmoijan (full stack programmer) generalistina eli laaja-alaisena osaajana, joka kykenee kehittämään sovelluksia itsenäisesti ja joka ennen kaikkea ymmärtää tekemiensä ratkaisujen vaikutukset tietojärjästelmän teknisen kokonaisuuden, sen kerrosrakenteen kannalta. ==Lähteet== * * * * * * * ===Viitteet=== ==Aiheesta muualla== * * ===Opinnäytetöitä=== * * * * * Luokka:Ohjelmistoarkkitehtuuri Luokka:Tietojärjestelmät