Tietoa Spring Bootista
Java-pohjainen Spring Boot on avoimen lähdekoodin verkkokehys, jota käytetään mikropalvelujen luomiseen ja itsenäisiin sovelluksiin. Spring Boot lyhentää koodin pituutta ja tekee Spring- sovelluksesta helposti ajettavan, kun taas Spring- kehys tarjoaa joustavuutta ja infrastruktuuritukea riippuvuuden lisäämisen avulla.
Spring Boot määrittää automaattisesti Spring- sovelluksen, tarjoaa itsenäisen laadun ilman sovellusten käyttöönottoa verkkopalvelimien kanssa, ja on myös varustettu omalla mielipiteellä sen määrittämisessä, mitkä paketit ja oletusasetukset on asennettava riippuvuuksille.
Spring Boot- kehittäjätilastot
Tällä hetkellä Spring Bootilla on maailmanlaajuisesti suuri kysyntä yritysmaailmassa sen erinomaisuuden, korkean skaalattavuuden ja saavutettavuuden vuoksi.
Tähän mennessä yli 37 000 sitoumusta on ladattu GitHubiin onistuneesti. Selvennykseksi todettakoon, että sitoumus on tilannekuva arkistoista (tietojen keskisijainnista), joka näyttää kaikki viimeisimmät lähdekoodin muutokset suoraan arkistoon.
Spring Boot- Kehittäjän haastattelu
Hyödyllisiä vinkkejä esitarkastushaastatteluun
Ennen Spring Boot- kehittäjän palkkaamista, haastattelua tekevien asiantuntijoiden on aina laadittava useita lyhyitä kysymyksiä selvittääkseen, täyttääkö ehdokas kaikki yrityksen tarvitsemat kriteerit. Olennaiset kysymykset kysytään ensin ja tätä seuraavat kysymykset teknisistä- ja käytännön taidoista.
Lahjakkuuksien hankinta- asiantuntijamme Maria Kyryliuk korosti:
”Kehittäjien intohimoinen puhuminen työstään, hyvät pehmeät taidot, kunnioitus haastattelussa, sekä kameran näkyvyyden ja toimivuuden varmistaminen, sekä keskusteluun keskittyminen, hyvä englannin kielentaito ovat kaikki hyvä merkkejä. Ja totta kai, jos minusta tuntuu, että keskustelu soljuu luonnollisesti ja löytyy keskinäinen ymmärrys, tämä on lopullinen vaikutelma, johon haastattelu päätyy.”
Parhaat tekniset taidot, joita odottaa Spring Boot- Kehittäjältä
Hyvän Spring Boot- kehittäjän tulisi tuntea useita teknisiä taitoja annettujen tehtävien suorittamiseen ja päättämiseen.
Mitä tulee arkkitehtuuriin ja ohjelmistosuunnitteluun, täydellisen kandidaatin tulisi tuntea muutama arkkitehtuurinen malli sellaisenaan:
- Peer- to- peer- kuvio
- Broker- kuvio
- Master- slave- kuvio
- Model- view- controller- kuvio
- Kerrostettu- kuvio
- Event- bus- kuvio
- Client-server- kuvio
- Liitutaulu- kuvio
- Pipe-filter- kuvio
- Interpreter- kuvio
Seuraavana on OOP, eli Object- Oriented Programming, ja sen peruskäsitteitä ovat kapselointi, abstraktio, periytyminen, polymorfismi, käyttäjän määrittämät tyypit, ennalta määritetyt tyypit ja operaatiot.
Toinen tärkeä ja pakollinen taito, on tuntemus mikropalveluista ja niiden käytöstä. Java- kehittäjien tulee päivittää taitojaan ja tietojaan, sekä seurata mikropalvelurakentamisen trendejä monoliittisten sovellusten sijaan. Tätä varten tarvitaan hyvä Docker Containerin tuntemus.
Docker on osoittautunut hyödylliseksi, ei ainoastaan mikropalveluiden luomisessa, vaan myös kokoamisessa ja erilaisissa ympäristöissä. Kehittäjien tulee puolestaan tuntea DURS- periaatteet hyvin, ja ne toimivat mikropalvelun- pohjana. DURS: ssa on muutamia perusperiaatteita: vikojen eristäminen, yksikköjohteinen suunnittelu, hajauttaminen, jatkuva toimitus ja myös DevOps.
Kokeneen Spring Boot- kehittäjän on osattava myös mikropalvelu- arkkitehtuurialueiden oikea käyttö. Nämä keskeiset osa-alueet ovat valtuutus, todennus, verkkoturvallisuus, tietoturva, sekä käyttöönotto.
Mitä tulee mikropalvelumalleihin, alla luetellut mallit ovat kokeneiden kehittäjien suosimia ja harjoittamia.
- Delivery pipeline:t
- GraphQL API:t
- Secure By Design
- Docker Rootless- tila
- Suojaukseen on käytettävä HTTPS:ää
- Tietosuojattavan tiedon käsittely
- Riippuvuudet tulee käydä läpi
- Tietoturvallisuus on taattava
- RSocket- päätepisteet
- Aikaperusteinen suojaus
- Parhaat pilvi ja klusteri- spesifit suojaus käytännöt
- Käyttöoikeus- ja henkilöllisyystunnukset
- Scan Docker ja Kubernetes konfiguraatiot
Kehittäjän tulee myös tietää parhaat mikropalvelun käytännöt, jotka on lueteltu alla:
- Käyttäjien tarpeisiin kohdistetut mikropalvelut
- Mikropalveluiden API- suunnittelukäytännöt
- DevSecOps- lähestymistapa
- Puolustus
- Istuntojen hallinta
- Automaattiset tietoturvapäivitykset
- Ohjelmistoturvallisuuden keskitetty valvonta
- Sovelluslokien yhdistäminen
- Hajautettu jäljitys
DevOps- työkalut
Toinen iso plussa kehittäjälle on DevOpsin tuntemus ja hallinta. Tieto yhdestä tai useammasta alla luetellusta työkalusta katsotaan eduksi:
Kehittäjän tulee luoda ja kehittää toimivat yksikkötestit tietyille koodeille. Javan yksikkötestaukseen käytetään aina JUnit: ia. JUnit: lla on aina emokehys, Xunit. Projektin sisällä yksikkötestauksen kattavuus varmistetaan yksikkötestauspakettien toteutuksen avulla. Yksikkötestaus tehdään manuaalisesti, mutta myös automaattisin menetelmin.
On olemassa käytäntö, jonka mukaan ”ensin testataan, sitten koodataan”, ja JUnit pohjautuu juuri tähän. Yksinkertaistettuna, JUnit auttaa tekemään kehittäjän työskentelystä tehokkaampaa ja laadukkaampaa. Tämän avoimen lähdekoodin ohjelman kehysten ominaisuudet ovat:
- Merkinnät
- Assertiot
- Test Runner
- Automaattinen testaussarjan suoritus
- Testaussarjat
- Testauksen edistyminen
- Fixtures
Tyypillinen yksikkötestaus sisältää testitapauksen ohjelman toimivuuden tai luokassa olevan menetelmän tarkistamiseksi. Syöte ja tulos mielessä pitäen, testitapaus luodaan tarkistamaan, sekä syöte, että tulos. Syöttötilan tarkastukset on suoritettu.
Myös jälkikunnon tulostarkastukset ovat valmiit. Jokaiselle testitapaukselle voidaan nimetä yksi positiivinen ja yksi negatiivinen testi. Tällaiset testit voidaan integroida työkaluihin, kuten Ant, Maven ja Eclipse, ja nämä voidaan integroida myös IDE: hin.
Mikä erottaa erinomaisen Spring Boot- kehittäjän hyvästä kehittäjästä?
Täydellinen pari olisi loistava Spring Boot- kehittäjä, jolla on hyvä ymmärrys ja erinomaiset tiedot Java- verkkostandardeista, kuten suodattimesta ja servletistä. Toinen plussa olisi, jos kehittäjä tuntee viestintäjonot (message queue) (ActiveMQ/ RabbitMQ/ Kafka), dockerin, mikropalvelumallit ja kuinka välimuistipalvelin toimii (Redis). Kehittäjän tulisi myös osata kirjoittaa puhdasta koodia ja soveltaa TDD- käytäntöjä hyvin.
Kuinka Proxify voi auttaa sinua löytämään parhaat Spring Boot-lahjakkuudet?
Jos otat rekrytointi- ja kykyjen-hakuprosessin itsellesi, koko prosessi voi olla vaikea ilman apua. Tämä prosessi voi viedä paljon aikaa, ja että saat tulokseksi onnistuneen päätöksen, vaatii se paljon enemmän, kuin vain mainoksen julkaisemisen tai haastattelujen ajoituksen ehdokkaiden ja hakijoiden kanssa.
Prosessi sisältää paljon aikaa ja resursseja vaativaa perehdyttämistä, ja kandidaatteja tulee mahdollisesti myös kouluttaa sijaisuuteensa, kun prosessissa päästään pidemmälle. Kuvittele myös kustannukset ja seuraukset, jos palkkaat väärän ehdokkaan rekrytointiprosessin ja seulonnan aikana jatkoon.
Proxifyn lahjakkuuksien hankinnan asiantuntijat ja ekspertit tarjoavat sinulle erikoisosaamistaan huolellisen ja aikaa säästävän prosessin avulla, jossa sinulle valitaan sopiva lahjakkuus. Koska korostamme hankintaprosessissa huipputason kehittäjiä, jotka voivat aloittaa työskentelyn melkein välittömästi, vain muutamien päivien kuluttua siitä, kun heidät on valittu.
Prosessimme sinulle oikean lahjakkuuden löytämiseen koostuu:
- Itsearviointitehtävästä, jotka osoitetaan ehdokkaille, jotka on valittu jatkoon.
- Esitarkastuspuhelusta, jossa rekrytoijat sopivat ehdokkaista, jotka suorittivat alkutehtävän onnistuneesti. Tässä vaiheessa keskitymme testaamaan hakijan teknisiä ja ei-teknisiä taitoja, englannin kielentaitoa, sekä aiempaa ja nykyistä kokemusta.
- Seuraava vaihe on tarkka, tekninen arviointitehtävä.
- Lopuksi viimeistelemme prosessin teknisellä haastattelulla, jonka järjestää ja johtaa laajan kokemuksen omaava Spring Boot- kehittäjä.
Teemme parhaamme ja huomioimme sekä varmistamme, että täydellisen lahjakkuuden palkkaamiseen tarvittava aika lyhenee, toisin kuin useimmat toimistot tai rekrytointipalveluntarjoajat, jotka saattavat venyttää prosessia pitkään. Tämä johtuu pääasiassa siitä, että Spring Boot- kehyksen suosio on kasvanut pilviin vuosi vuodelta- näkyvimmin Proxifylla, jossa sen kysyntä ja tarve on kasvanut merkittävästi koko viime vuosikymmenen ajan.
Spring Boot- kehittäjän perustiedot ja arviointi
Ajattelimme, että parhaat ihmiset vastaamaan kysymykseen siitä, kuinka löytää olennaiset tekijät, jotka tekevät Spring Boot -kehittäjästä palkkaamisen arvoisen, ovat omat tekniset haastattelijamme ja kehittäjämme. Tästä syystä haastattelimme Koray Geciciä, Besfort Shehua ja Ramazan Sakinia, ja pyysimme heitä antamaan meille henkilökohtaisia vinkkejä tärkeistä asioista arvioitaessa Spring Boot -kehittäjien osaamistasoa, kokemusta ja teknistä tietämystä.
Ohjelmistoinsinööri ja Spring Boot- kehittäjä Ramazan Sakinin mukaan sopivan ehdokkaan tulisi tietää:
"VCS-konsepti sekä Git- käyttö, lisäksi myös kokemusta CI/CD:stä ja työkaluista, kuten Bamboo, Jenkins, GitLab ja muut.”
Ramazan Sakin
Ohjelmistosuunnittelija ja Spring Boot- kehittäjä Besfort Shehu lisää, että oikeanlaisen kehittäjän tulisi tietää:
"Oikean istuvuuden tulisi tietää Starter POM:ista, automaattisesta määrityksestä, Spring Boot CLI:stä sekä Spring Boot Initializerista."
Besfort Shehu
Tietokoneinsinööri ja Spring Boot -kehittäjä Koray Gecici lisäsi myös:
"Asiantuntemuksen arvioinnissa keskitytään kysymään, mitä kehittäjä tietää riippuvuusinjektiosta, IOC- containerin avulla tapahtuvasta bean- instantoinnista, ja IOC: sta yleensä, ohjaimen merkityksestä, palvelusta, tietovarasto- ja kokonaisuuspaketeista, automaattisesta määrityksestä, koodin kattavuudesta ja haarakattavuudesta, sekä erottaa integraatiotestit ja yksikkötestit ” Tietokoneinsinööri ja Spring Boot -kehittäjä Koray Gecici lisäsi.
Koray Gecici
Spring Bootin edut
Spring Bootin käyttö tuo lukuisia etuja ja vahvistaa kaiken kattavaa käytännöllisyyttä, joka tekee työprosessista monelta osin yksinkertaisen ja toimivan insinööreille ja kehittäjille.
Yksi Spring Bootin eduista on Javan käyttö, ja siihen luottaminen. Se on ehkä suosituin ohjelmointikieli, ja tarjoaa myös oletusarvoisen ja Java- pohjaisille sovelluksille tarkoitetun testausasetuksen.
Toinen merkittävä etu, josta asiantuntijat ovat yhtä mieltä, on automaattinen konfigurointi. Tämä tarkoittaa sitä, että Spring- sovellus on helppo konfiguroida yksinkertaisella tavalla ja kehittäjän valitsemien JAR- riippuvuuksien mukaan.
Mitä etuja Spring Boot -kehittäjät mainitsivat?
Kysyimme kehittäjiltämme Proxifyssa heidän kokemuksistaan Spring Bootista ja siitä, mitä he pitivät hyödyllisimpinä ja käytännöllisimpinä ominaisuuksina ja etuina tähän liittyen. Heidän asiantuntemukseensa tukeutuen kokosimme alle arvokasta tietoa.
Sakin korosti:
- XML-määritystä ei tarvita
- Pienempi boiler- plate- koodin määrä
- Tomcatin, Jettyn ja Undertowin embedding
- Kehitykseen tarvitaan vähemmän aikaa RAD- alustan (Rapid Application Development) avulla.
Gecici lisäsi:
- Yksinkertainen, käytännöllinen ja helppo käynnistää ja ottaa käyttöön
- Yksinkertaistettu hallinta ja riippuvuudet
Ja myös Shehu tarkensi:
- Ei tarvetta WAR- tiedostojen käyttöönottoon
- Rikas ja laaja käyttäjäyhteisö, sekä pääsy ilmaisiin oppimislähteisiin ja materiaaleihin
- Erillisten sovellusten luominen
Lisäksi muita Spring Boot- etuja mainittakoon:
- Etäkäytön hallinta/moitteeton järjestelmävalvojan tuki
- Mukana laajennuksia tietokantojen kanssa työskentelemiseen
- HTTP-palvelinten upottaminen
Harkittavat haastattelukysymykset (+ niiden vastaukset)
- Selitä ero Spring Bootin ja Springin välillä.
Odotettu vastaus: Spring edustaa avoimen lähdekoodin kehystä, joka tukee Java- sovelluksia, kun taas Spring Boot on mikropalvelukehys, Spring- kehyksen päälle lisätty laajennus Springiin. Voimme päätellä, että Spring sisältää useita kehyksiä (tai "kerroksia"), ja Spring Boot on yksi niistä. Jälkimmäinen on kuitenkin osoittautunut helpommaksi työskennellä, ja se poistaa muuten vaaditut kattilakokoonpanot (kun viimeistelet Spring- sovelluksen asennuksen).
- Mitä Spring Boot JPA tarkoittaa?
Odotettu vastaus: JPA on lyhyt termi Java Persistence API: lle, rajapinnalle, ja sitä käytetään Java- sovellusten relaatiotietojen hallintaan. Jotta voimme työskennellä JPA: n kanssa, meidän on sisällytettävä myös ORM (Object Relation Mapping) - nämä kaksi ovat yhteydessä toisiinsa, koska ORM: n avulla voimme saada tietokantataulukoita Java- objektien muuntamisen seurauksena. Yleensä JPA on erinomainen pienille prosesseille kyselyssä ja lyhentää yleiskoodia.
- Mitä ovat Spring Bootin "profiilit"?
Odotettu vastaus: Kun sovelluksen kokoonpanon osia on ryhmitelty yhteen, kutsumme näitä profiileja. Profiilit edustavat ryhmää konfigurointiasetuksia, ja tämä ryhmittely auttaa meitä asettamaan oikein tarkan ja tarkan konfiguraation vastaavassa, sopivassa ympäristössä.
- Mitä voit sanoa "Initializrista"?
Odotettu vastaus: Jos meidän on luotava Spring Boot -projektin rakenne, käytämme web-pohjaista työkalua nimeltä Spring Initializr. Tämä työkalu auttaa kehittäjiä valitsemaan parhaan ja sopivimman projektikokoonpanon ja auttaa käyttämään laajennettavaa API: ta parhaalla mahdollisella tavalla. Voisimme nähdä alustajan eräänlaisena katalysaattorina tai generaattorina spring- projektin rakenteelle.
- Mikä on " thymeleaf’"?
Odotettu vastaus: Palvelinpuolen moottori, Java-pohjainen kirjasto, jota kehittäjä käyttäisi verkkosovellusten luomiseen, on nimeltään Thymeleaf. Tämä kirjasto auttaa meitä luomaan ja käsittelemään myös tekstiä, CSS: ää, XML: ää, HTML: ää ja JavaScriptiä. Tästä kirjastosta tekee hyödyllisen, ja hyvän työskennellä se, että se on melko laaja, se lyhentää yleistä kehitysaikaa eikä vaadi taustaa prototyyppipohjien luomiseen.
- Mitä voit sanoa Spring YAML -kokoonpanosta?
Odotettu vastaus: Ensin meidän on määriteltävä ja selitettävä YAML ja sen korrelaatio Spring Bootin kanssa jälkeenpäin. YAML (Yet Another Markup Language) on selkeästi luettava, joustava kieli tietojen sterilointiin, ja se voi jopa olla sopiva korvaaja joillekin kielille, kuten esimerkiksi JSON. Yksi YAML: n suuri etu on, että voit kartoittaa sen uskomattoman helposti alkuperäisiin tietoihin. Muita YAML: n etuja ovat helppolukuisuus, joten se on täydellinen apu konfigurointityöhön sekä mahdollistaa prosessien helpon automatisoinnin. Spring Bootin yhteydessä YAML olisi ihanteellinen käyttää, kun työskentelemme hierarkiakokoonpanojen kanssa ja meidän on määritettävä ne siististi.
- Mitä voit kertoa Spring Bootin "Main class"?
Odotettu vastaus: Spring Boot Main class, joka sisältää päämenetelmän. Tämä luokka näkyy useimmiten Java- sovelluksissa. Spring Bootin yhteydessä Main class ajaa SpringApplicationContextin, koska luokka sisältää menetelmän public static void main()
Jos sovelluksessa on useita ilmoitettuja Main classeja, Spring Bootin avulla voimme helposti paikantaa ja määrittää "main classin" kokoonpanossa.
- Määritä IoC- container ja sen konteksti Spring Bootissa.
Odotettu vastaus: Riippuvuuden lisäyksestä tulee uskomattoman tehokas ja yksinkertaistettu, kun se on automaattinen, ja tällainen automaattinen prosessi tehdään ohjelmointiperiaatteella IoC- container. Manuaalista objektien hallintaa ei enää ole, jos käytät IoC: tä Spring Bootin kanssa, ja kaikki objektit riippuvuuksineen konfiguroidaan ja kootaan täydellisesti.
- Mitä Spring Boot Devtools on?
Odotettu vastaus: Ensinnäkin Devtools on joukko työkaluja tai moduuli, joka auttaa kehittäjää testaamaan ja jäljittämään koodeja ja yleisesti yksinkertaistamaan työtään. Tarkemmin sanottuna tässä yhteydessä Spring Boot Devtools on Springin julkaisema parannus, joka sisältyy Spring Boot 1.3 -versioon.
Nämä Spring Boot Devtools -työkalut tuovat suuria parannuksia työskentelyyn Spring Bootin kanssa, kuten:
- Automaattinen uudelleenkäynnistys mahdollistaa yksinkertaisen Java- luokan uudelleenlatauksen ja sen jälkeen myös sen palvelinpuolen määrityksen.
- Etäpäivitys ja uudelleenkäynnistys – Tämän avulla voimme helposti käynnistää ja päivittää sovelluksen etänä, seuraamalla kaikkia luokkapolun tiedostomuutoksia ja lähettämällä ne välittömästi etäpalvelimelle. Lopulta tämä palvelin käynnistetään uudelleen.
- Ominaisuuksien oletusasetukset, joiden avulla välimuisti on helppo poistaa käytöstä ja sivujen päivitys on helppoa ilman, että sovellusta tarvitsee käynnistää uudelleen – kaikki Thymeleafin ja sen spring.thymeleaf.cachen ja toteutuksen avulla.
- Remote Debug Tunneling – JDWP: n (Java Debug Wire Protocol) tunnelointi suoraan sovellukseen HTTP: n kautta on nyt uskomattoman helppoa.
- LiveReload on mukana Devtoolsissa, ja sen avulla sovellus voi aloittaa selaimen päivittämisen automaattisesti. Tämä selaimen päivitys tai "automaattinen päivitys" tapahtuisi kaikissa muutoksissa, joita teemme matkan varrella.
Yhteenvetona voidaan todeta, että Spring Boot -sovellus käynnistyy uudelleen nopeasti, kun teet muutoksia koodiin.
- Mikä @RequestMapping on? Entä @GetMapping?
Odotettu vastaus: Annotaatiotyyppi, joka antaa meille tietoa reitityksestä, on nimeltään @RequestMapping ja sitä käytetään enimmäkseen metodi- tai luokkatasolla ohjainluokan sisällä. Joten jos käytät @RequestMappingia, odota kartoitusta ohjainluokan globaalista pyyntöpolusta.
Toisin kuin yllä mainittu luokkatason huomautus, @GetMapping on muodostettu merkintä, joka yhdistää menetelmät. Tämä huomautus löytää kaikki HTTP GET- pyynnöt ja yhdistää ne helposti tiettyihin käsittelijämenetelmiin tarvittaessa.