Popis: |
Nykyisin React-kirjastoa hyödynnetään kasvavassa määrin sovellusten frontend-puolen toteutuksissa. Kun Reactia käytetään sovelluksessa, jonka frontend koostuu useista mikropalveluista, päädytään kuitenkin monesti tilanteeseen, jossa samoja React-komponentteja tarvitaan useassa eri palvelussa. Tällöin on käytännöllistä toteuttaa monen eri palvelun tarvitsemat komponentit omana jaettujen UI-komponenttien kirjastonaan. Tässä työssä tutkitaan sovellusta, jossa käytetään edellä kuvatulla tavalla jaettuja UI-komponentteja, mutta jonka frontendistä on alettu toteuttaa uutta versiota. Tämä uusi frontend halutaan toteuttaa ottaen oppia vanhan toteutuksen virheistä, jotta niitä ei enää toistettaisi. Työn tutkimus rajautuu sovelluksen vanhan ja uuden version jaettujen UI-komponenttien tarkasteluun. Siinä pyritään selvittämään, mitä vanhasta jaettujen UI-komponenttien toteutuksesta voitaisiin oppia ja ottaa uudella puolella käyttöön, sekä millaisia ongelmia uudessa toteutuksessa tulisi pyrkiä välttämään. Tutkimuksessa havaittiin, että jaetuissa UI-komponenteissa esiintyy toistuvasti ongelmia, jotka voidaan karkeasti jakaa luettavuusongelmiin, epäyhdenmukaisuusongelmiin, komponenttien rajapintamäärittelyyn liittyviin ongelmiin sekä toistettuun koodiin. Lisäksi vanhassa frontendissä monessa tapauksessa jaettua UI-komponenttia ei hyödynnetä kaikkialla, missä sitä voisi hyödyntää, vaan siitä on toteutettu yksi tai useampi paikallinen versio. Osassa tällaisista tapauksista paikallinen versio eroaa hieman jaetusta UI-komponentista, mutta osassa taas paikallinen toteutus olisi suoraan korvattavissa jaetulla UI-komponentilla. Työssä analysoidaan myös jaettujen UI-komponenttien ja näiden paikallisten toteutusten eroavaisuuksia, jotta saataisiin selville, millaisia tarpeellisia ominaisuuksia nykyisistä jaetuista UI-komponenteista mahdollisesti puuttuu. Työn tuloksissa esitetään sekä konkreettisia parannusehdotuksia komponenteissa havaittuihin ongelmiin että yleisempi yhteenveto siitä, millaiset ongelmat jaetuissa UI-komponenteissa vaikuttavat suoritetun tutkimuksen perusteella olevan yleisiä. Lisäksi esitetään mahdollisia ratkaisuja, joilla vastaavien ongelmien ilmenemistä tulevaisuudessa voitaisiin ennaltaehkäistä. |