Full stack
on tietojarjestelmien kehittamisen osa-alueita yhdisteleva lahestymistapa, joka liittyy kayttajakokemuksen suunnitteluun
[1]
, jarjestelmakehittajien tyonkuviin
[2]
ja osaamiseen
[3]
seka kehitystyon tekniseen ymparistoon. Teknisena kasitteena full stack voi viitata yksinkertaisimmillaan jarjestelman rakenteen jaotteluun asiakas- ja palvelinosiin
[4]
. Full stack voidaan nimeta lyhenteella, joka muodostetaan siina keskeisten valineiden nimista (esim. LAMP =
Linux
,
Apache
,
MySQL
,
Perl
).
[5]
Termi
full stack
perustuu teknisten jarjestelmien kuvaamisessa kaytettyyn pinon (engl. stack) kasitteeseen, jolla tarkoitetaan
jarjestelman arkkitehtuurin
kerroksittaista rakennetta.
[6]
Rakenteessa kullakin kerroksella on oma tehtavansa ja maaritellyt
rajapinnat
toisiin kerroksiin.
Full stackin synonyyminakin kaytetty termi
solution stack
(kirjaimellisesti suomentaen "ratkaisupino") viittaa nimettyihin ohjelmistotuotteisiin ja/tai laitteisiin, joista kokonaisuutena katsotaan muodostuvan
palveluarkkitehtuuri
(Service Oriented Architecture, lyhennettyna SOA).
[7]
Ammatillisena ja tyonjaollisena kasitteena, jollaisena sita kaytetaan esimerkiksi
rekrytoinnissa
, full stack sisaltaa ajatuksen, etta suunnittelija (full stack designer) tai ohjelmistokehittaja (full stack developer), kykenee ottamaan huomioon, suunnittelemaan ja toteuttamaan kayttajakokemuksen eri osa-alueiden tukea tietojarjestelmassa. Full stack developer -kasite on varsin uusi. On esitetty, etta sita on alettu laajemmin kayttaa vuoden 2013 tienoilla.
[8]
Full stack -suunnittelijan rooli on saanut runsaasti huomiota keskusteluissa esimerkiksi sen maarittelyn, hyodyllisyyden ja tyomarkkinoilla esiintyvan kysynnan kannalta.
[2]
Kayttajakokemusta
(user experience) pidetaan erityisesti kuluttajatuotteiden massamarkkinoilla tarkeana tekijana tuotteiden ja palveluiden menestyksessa. Kayttajakokemuksen kasite poikkeaa aiemmin tietojarjestelmien suunnittelussa keskeisesta
kaytettavyyden
(usability) kasitteesta siten, etta kayttajakokemukseen katsotaan kuuluvan hedonistinen osa (kuten hauskuuden tai tyydytyksen kokemus), kun taas kaytettavyys maarittyy valineellisin tai kaytannollisin kriteerein.
[9]
Kaytettavyytta kehittamalla pyritaan tehostamaan kayttajan ja laitteen yhteistoimintaa ja toisaalta tekemaan sita kayttajalle miellyttavammaksi.
[10]
Teknisesta nakokulmasta web-jarjestelmien full stack koostuu tietokantajarjestelmasta seka sovellusten kehityksen ja kayton asiakas- ja palvelinymparistoista.
Esimerkiksi
MEAN
on ilmainen ja avoimeen lahdekoodiin perustuva full stack, joka sisaltaa
MongoDB
-tietokannan,
Express.js
-palvelimen toteutusympariston,
AngularJS
-
JavaScript
-ohjelmistokehyksen ja
Node.js
-suoritusympariston.
[11]
Carlos Buenon vuonna 2010 julkaisemaa blogikirjoitusta
The Full Stack
pidetaan full stackin idean hahmottamiseen merkittavasti vaikuttaneena "klassikkona".
[5]
Kirjoituksessa Bueno kuvaa
full stack -ohjelmoijan
(full stack programmer)
generalistina
eli laaja-alaisena osaajana, joka kykenee kehittamaan sovelluksia itsenaisesti ja joka ennen kaikkea ymmartaa tekemiensa ratkaisujen vaikutukset tietojarjastelman teknisen kokonaisuuden, sen kerrosrakenteen kannalta.
- Bieberstein, Norbert, Laird, Robert, Jones, Keith & Mitra, Tilaka:
Executing SOA: A Practical Guide for the Service-Oriented Architect
. Upper Saddle River, NJ: IBM Press, 2008.
ISBN 978-0-13-235374-8
.
(englanniksi)
- Karvonen, Hannu:
User Experience Goals in Human-Centred Design of Safety-Critical Systems
. vaitoskirja. Jyvaskyla: Jyvaskylan yliopisto.
(englanniksi)
- Loukides, Mike:
Full-stack developers
radar.oreilly.com
. 2014. Viitattu 19.8.2020.
- Shropshire, Jordan, Landry, Jeffrey P. & Presley, Steven S.:
Development of a Metric for Assessing Full Stack Developers’ Expertise
Semanticscholar.org
. 2018. Viitattu 17.8.2020.
- Sinkkonen, Irmeli, Kuoppala, Hannu, Parkkinen, Jarmo & Vastamaki, Raino:
Kaytettavyyden psykologia
. Helsinki: Edita, IT Press, 2002.
ISBN 951-826574-7
.
- Viitanen, Minna:
Full-stack -suunnittelijan roolin hyodyt ja haasteet ketterassa ohjelmistokehityksessa
. Diplomityo, Tietotekniikan diplomi-insinoorin tutkinto-ohjelma,Tampereen teknillinen yliopisto. Tampere: M. Viitanen, 2018.
Teoksen verkkoversio
(viitattu 19.8.2020).
- Zammetti, Frank:
Modern Full-Stack Development: Using TypeScript, React, Node. js, Webpack, and Docker
. Apress, 2020.
ISBN 978-1-4842-5737-1
.
(englanniksi)
- ↑
Viitanen 2018, 2
- ↑
a
b
Viitanen 2018, 24
- ↑
Shropshire, Landry & Presley 2018
- ↑
Zammetti 2020, 1
- ↑
a
b
c
Loukides, Mike:
Full-stack developers
radar.oreilly.com
. 2014. Viitattu 19.8.2020.
- ↑
Viitanen 2018, 25
- ↑
Bieberstein ym. 2008, 1
- ↑
Christian Maioli M (pseudonyymi):
What 'full-stack developer' should mean
TechBeacon.com
. 20.7.2016. Micro Focus. Viitattu 18.8.2020.
- ↑
Karvonen 2019, 40
- ↑
Sinkkonen ym. 2002, 19
- ↑
a
b
What is the MEAN Stack?
MongoDB. Viitattu 17.8.2020.
- ↑
Dzonsons, Kristaps:
BCHS Stack
learnbchs.org
. Viitattu 17.8.2020.
- ↑
A Beginners’ Guide to Installing and Configuring GLASS: Gemstone 64/S Smalltalk / Seaside / Application Server / Object Database Server Environment
kalountos.wordpress.com
. 2015. Viitattu 18.8.2020.
- Huhtala, Harri:
Full-Stack JavaScript: MEAN.JS-projektin luominen
. (Haaga-Helia-ammattikorkeakoulu), 2014.
Teoksen verkkoversio
(viitattu 19.8.2020).
- Nevalainen, Toni:
MEAN Software Stack : MEAN-stack and its relative strengths and weaknesses relative to its competitors
. (Hameen ammattikorkeakoulu), 2018.
Teoksen verkkoversio
(viitattu 20.8.2020).
(englanniksi)
- Nguyen Nhat, Minh:
Building a component-based modern web application: full-stack solution
. (Metropolia Ammattikorkeakoulu), 2018.
Teoksen verkkoversio
(viitattu 21.8.2020).
(englanniksi)
- Reponen, Antti:
Full-Stack: MERN-pino
. (Metropolia Ammattikorkeakoulu), 2018.
Teoksen verkkoversio
(viitattu 19.8.2020).
- Tuhkanen, Aleksi:
Tietojarjestelman rakentaminen startup-yrityksessa full-stack kehittajana
. (Haaga-Helia ammattikorkeakoulu), 2017.
Teoksen verkkoversio
(viitattu 19.8.2020).