Om Spring Boot
Det Java-baserade Spring Boot är ett webbramverk med öppen källkod som används för att skapa mikrotjänster och fristående applikationer. Spring Boot förkortar längden på koden och gör det enkelt att köra Spring-applikationen, samtidigt som Spring-ramverket uppnår flexibilitet och infrastrukturstöd genom injektion av beroenden.
Spring Boot konfigurerar Spring-applikationen automatiskt, ger fristående kvalitet utan app distribuering med webbservrar, och är också självständig när det gäller att bestämma vilka paket och standardinställningar som ska installeras för beroenden.
Statistik över Spring Boot-utvecklare
För närvarande finns det en stor efterfrågan på Spring Boot i företagsvärlden på grund av den utmärkta, höga skalbarheten och tillgängligheten.
Hittills har mer än 37 000 ändringar (commits) laddats upp till GitHub. För att förtydliga är en commit en ögonblicksbild av ett arkiv (repository) som visar alla de senaste källkodsändringarna direkt i arkivet.
Intervjua en Spring Boot-utvecklare
Tips för en första intervju
Innan en Spring Boot-utvecklare anställs måste experterna som genomför intervjun alltid förbereda flera korta frågor för att ta reda på om kandidaten uppfyller alla kriterier som behövs inom företaget. De viktigaste frågorna ställs först, och därefter följer en grupp av tekniska och praktiska frågor.
Vår specialist på talangrekrytering Maria Kyryliuk betonade:
"Utvecklare som talar passionerat om sitt jobb, bra social kompetens, är respektfulla under intervjun och ser till att kameran är synlig och fungerar, samt uppmärksammar samtalet, och har goda kunskaper i engelska är alla bra tecken. Och naturligtvis, om jag känner att det finns ett bra samtalsflöde och ömsesidig förståelse, är detta det slutliga intrycket som rundar av intervjun."
Tekniska färdigheter som du bör leta efter hos en Spring Boot-utvecklare
En bra Spring Boot-utvecklare bör känna till flera olika tekniska färdigheter för att kunna utföra och slutföra tilldelade uppgifter.
När det gäller arkitektur och programvarudesign bör den perfekta matchningen känna till några arkitektoniska mönster:
- Peer-to-peer mönster
- Broker mönster
- Master-slave mönster
- Model-view-controller mönster
- Layered mönster
- Event-bus mönster
- Client-server mönster
- Blackboard mönster
- Pipe-filter mönster
- Interpreter mönster
Därefter kommer OOP, eller objektorienterad programmering, och dess grundläggande begrepp är inkapsling, abstraktion, arv, polymorfism, användardefinierade typer, fördefinierade typer och operationer.
Det finns en annan viktig färdighet som är ett måste, nämligen kunskap om mikrotjänster och deras användning. Javautvecklarna måste uppdatera sina färdigheter och kunskaper och följa trenden med att bygga mikrotjänster i stället för monolitiska tillämpningar. För detta är goda kunskaper om Docker Container en nödvändig förutsättning.
Docker har visat sig vara användbart inte bara för att skapa, utan även för att kompilera mikrotjänstprogram, och det i olika miljöer. Utvecklarna måste i sin tur känna till DURS-principerna väl, och de fungerar som en mikrotjänstbas. Det finns några grundläggande principer i DURS: felisolering, domänstyrd design, decentralisering, kontinuerlig leverans och DevOps också.
Den erfarne Spring Boot-utvecklaren måste också känna till hur man använder mikrotjänstarkitekturområden på rätt sätt. Dessa viktiga områden är auktorisering, autentisering, nätverkssäkerhet, datasäkerhet och driftsättning.
När det gäller mönstren för mikrotjänster är de som listas nedan populära och praktiseras av erfarna utvecklare.
- Delivery pipelines
- GraphQL API:er
- Säkerhet genom design
- Docker Rootless Mode
- HTTPS måste användas för säkerhet
- Hantering av känslig information
- Beroenden måste undersökas.
- Undvika säkerhetsattacker
- RSocket slutpunkter
- Tidsbaserad säkerhet
- Bästa praxis för moln- och klusterspecifik säkerhet
- Tillträdes- och identitets-tokens
- Skanning av Docker- och Kubernetes-konfiguration
Utvecklaren måste också känna till de bästa metoderna för mikrotjänster som anges nedan:
- Mikrotjänster som är inriktade på användarnas behov
- Designmetoder för mikrotjänster API
- DevSecOps-strategi
- Försvar i djupmönster
- Hantera sessioner
- Automatiska säkerhetsuppdateringar
- Centraliserad programvara för säkerhet och övervakning
- Aggregering av programloggar
- Distribuerad spårning
DevOps-verktyg
Ett annat stort plus för utvecklaren är kunskap och färdigheter om DevOps. Kunskap om ett eller flera av de verktyg som anges nedan är en god tillgång:
Utvecklarna måste skapa och utveckla lämpliga enhetstester för den specifika koden. För enhetstestning av Java-kod används alltid JUnit. JUnit har också ett överordnat ramverk, Xunit. Inom ett projekt säkerställs enhetstesternas täckning genom att enhetstesterna utförs och implementeras. Enhetstesterna utförs manuellt, men även med automatiserade metoder.
Det finns en princip som kallas "först testning, sedan kodning", och JUnit bygger på just detta. Enkelt sagt hjälper JUnit till att skapa bättre effektivitet och kvalitet i utvecklarens arbete. Funktionerna i detta ramverk för programvara med öppen källkod är följande:
- Annoteringar
- Påståenden (Assertions)
- Test Runners
- Automatiskt utförande av testsekvenser
- Testsviter
- Framsteg i testerna
- Inventarier (Fixtures)
Ett typiskt enhetstest innehåller ett testfall för att kontrollera programmets funktionalitet eller en metod i klassen. Med input och resultat i åtanke skapas testfallet för att kontrollera både input och resultat. Kontrollen av ingångsförutsättningarna är klar.
Dessutom är resultatkontrollerna efter villkoret klara. För varje testfall kan du utse ett enda positivt och negativt test i enlighet med detta. Sådana tester kan integreras med verktyg som Ant, Maven och Eclipse och kan även integreras med IDE:er.
Vad skiljer en bra Spring Boot-utvecklare från en bra utvecklare?
Den perfekta matchningen är en fantastisk Spring Boot-utvecklare som har en god förståelse och stor kunskap om Java-webstandarder som filter och servlet. Ett annat plus är om utvecklaren känner till meddelandeköer (ActiveMQ/RabbitMQ/Kafka), Docker, microservice-mönster och hur en cache-server fungerar (Redis). Utvecklaren bör också kunna skriva en ren kod och tillämpa TDD-praxis på ett bra sätt.
Hur Proxify hjälper dig att hitta de bästa Spring Boot-talangerna
Om du själv tar dig an rekryteringen och matchningen av talanger kan hela processen med att hitta en talang bli svår utan hjälp. Denna process kan ta mycket tid i anspråk för att lyckas från början till slut eftersom den omfattar mer än att bara publicera en annons eller planera intervjuer med kandidater och sökande.
Processen kommer att innebära att man lägger ner mycket tid och resurser på att introducera och även utbilda kandidater där det är lämpligt, och fler processer längs vägen. Och dessutom, föreställ dig bara alla kostnader och konsekvenser om du väljer fel kandidat under anställningsprocessen och urvalet.
Proxifys specialister och experter på talangrekrytering kan erbjuda dig sin specialitet genom en noggrann och tidsbesparande process för att välja rätt talang för dig, eftersom vi lyfter fram högkvalitativa utvecklare som kan börja arbeta nästan omedelbart, inom några dagar efter att de valts ut.
Vår process för att matcha rätt talang består av följande:
-
Uppgifter för självbedömning som tilldelas de kandidater som är utvalda.
-
En första-intervju som en rekryterare bokar in med kandidater som slutfört en inledande uppgift med framgång. I den här fasen fokuserar vi på att testa tekniska och icke-tekniska färdigheter, kunskaper i det engelska språket samt kandidatens tidigare och nuvarande erfarenhet.
-
Nästa steg i processen är en exakt, teknisk uppgift genom ett bedömningstest.
-
Slutligen avslutar vi processen med en teknisk intervju som organiseras och leds av en Spring Boot-utvecklare med lång erfarenhet.
Vi gör vårt bästa och ser till att tiden för att anställa en perfekt matchning förkortas, till skillnad från de flesta byråer eller rekryteringsföretag som kan förlänga processen under en längre tid. Detta beror främst på att Spring Boot-ramverket skjuter i höjden i popularitet under flera år i rad-mest framträdande är Proxify, där efterfrågan och behovet av detta har ökat avsevärt under hela det senaste decenniet.
Viktiga aspekter och utvärdering av en Spring Boot-utvecklare
Vi tänkte att våra egna tekniska intervjuare och utvecklare är bäst lämpade att svara på frågan om hur man hittar de viktigaste faktorerna som gör en Spring Boot-utvecklare till en bra person att anställa. Därför intervjuade vi Koray Gecici, Besfort Shehu och Ramazan Sakin och bad dem att ge oss sina personliga tips om de viktigaste faktorerna när man bedömer Spring Boot-utvecklares senioritet, erfarenhet och tekniska kunskaper.
Enligt Ramazan Sakin, utvecklare och Spring Boot-utvecklare, bör en lämplig kandidat känna till följande:
"VCS-konceptet, liksom Git-användning, och dessutom erfarenhet av CI/CD och verktyg som Bamboo, Jenkins, GitLab med flera."
Ramazan Sakin
Dessutom tillägger mjukvaruingenjör och Spring Boot-utvecklare Besfort Shehu:
"Rätt passform bör känna till Starter POMs, Autoconfiguration, Spring Boot CLI, såväl som Spring Boot Initializer."
Besfort Shehu
Dataingenjör och Spring Boot-utvecklare Koray Gecici lade också till:
"För att bedöma expertisen ligger fokus på att fråga vad utvecklaren vet om injektion av beroenden, instansiering av bean med en IOC-behållare och IOC i allmänhet, innebörden av en controller, tjänst, databas och enhetspaket, autokonfiguration, kodtäckning och grentäckning samt att skilja mellan integrationstest och enhetstest."
Koray Gecici
Fördelar med Spring Boot
Att använda Spring Boot ger många fördelar och bekräftar den allomfattande praktiska karaktären som gör arbetsprocessen enkel och funktionell för ingenjörer och utvecklare, även ur många andra aspekter.
En fördel med Spring Boot är användningen av och beroendet av Java, som annars kanske är det mest populära programmeringsspråket, men som också ger en testuppsättning som är standard och avsedd för Java-baserade applikationer.
En annan viktig fördel är autokonfigurering, och experterna är enhälligt överens om detta. Det innebär att Spring-applikationen enkelt kan konfigureras på ett enkelt sätt och i enlighet med de JAR-beroenden som utvecklaren har valt.
Vilka fördelar nämnde Spring Boot-utvecklarna?
Vi frågade våra utvecklare på Proxify om deras erfarenhet av Spring Boot och vad de ansåg vara de mest användbara och praktiska funktionerna och fördelarna i detta avseende. Med hjälp av deras expertis har vi sammanställt värdefull information nedan.
Sakin betonade:
- Inget behov av XML-konfiguration
- Minskad mängd koder som är standardiserade
- Inbäddning av Tomcat, Jetty och Undertow
- Mindre tid behövs för utveckling genom en RAD-plattform (Rapid Application Development).
Gecici tillägger dessutom:
- Enkel, praktisk och lätt att starta och installera
- Förenklad hantering av beroenden
Och Shehu utvecklade vidare med:
- Inget behov av WAR-filer för distribution
- Ett rikt och brett användarkollektiv och tillgång till kostnadsfria källor och material.
- Skapa fristående program
Andra Spring Boot-fördelar som bör nämnas är:
- Hantering av fjärråtkomst/utmärkt administrativt stöd
- Inkluderade plugins för arbete med databaser
- Inbäddning av HTTP-servrar
Intervjufrågor att tänka på (+ svar)
- Förklara skillnaden mellan Spring Boot och Spring.
Förväntat svar: Spring representerar ett ramverk med öppen källkod som stöder Java-appar, medan Spring Boot är ett mikrotjänstramverk, ett tillägg till Spring som läggs till ovanpå Spring-ramverket. Vi kan dra slutsatsen att Spring innehåller flera ramverk (eller "lager"), och Spring Boot är ett av dem. Det senare har dock visat sig vara lättare att arbeta med och tar bort de annars nödvändiga boilerplate-konfigurationerna (när du slutför en spring-appinställning).
- Vad är meningen med Spring Boot JPA?
Förväntat svar: JPA är en kort term för Java Persistence API, ett gränssnitt, och det används för hantering av relationsdata för Java-apparna. För att arbeta med JPA måste vi också inkludera ORM (Object Relation Mapping) - dessa två är anslutna eftersom ORM gör det möjligt för oss att få databas-tabeller som ett resultat av konverteringen av Java-objekt. I allmänhet är JPA utmärkt för små processer i en query och förkortar boilerplate-koden.
- Vad är Spring Boot ”profiler”?
Förväntat svar: När det finns delar av en appkonfiguration grupperade tillsammans kallar vi dessa profiler. Profilerna representerar en grupp konfigurationsinställningar, och denna gruppering hjälper oss att korrekt ställa in en exakt, korrekt konfiguration i respektive lämpligmiljö.
- Vad kan du säga om "Initializr"?
Förväntat svar: Om vi behöver skapa en struktur för ett Spring Boot-projekt använder vi det webbaserade verktyget Spring Initializr. Detta verktyg hjälper utvecklare att välja det bästa och mest lämpliga projektkonfigurationen och hjälper till att använda ett utbyggbart API på bästa möjliga sätt. Vi kan se initializr som en katalysator av ett slag eller generator för strukturen i ett spring-projekt.
- Vad är "thymeleaf"?
Förväntat svar: Det Java-baserade biblioteket på serversidan som en utvecklare skulle använda för att skapa webbappar kallas Thymeleaf. Detta bibliotek hjälper oss att skapa och bearbeta text, CSS, XML, HTML och JavaScript likaså. Det som gör det här biblioteket användbart och bra att arbeta med är att det är ganska omfattande, det förkortar den totala utvecklingstiden och kräver inte backend för prototypmallar.
- Vad kan du säga om Spring YAML-konfiguration?
Förväntat svar: Först måste vi definiera och förklara YAML och dess korrelation till Spring Boot. YAML (Yet Another Markup Language) representerar ett tydligt läsbart, flexibelt språk för datasterilisering, och det kan till och med vara en lämplig ersättning för vissa språk, som till exempel JSON. En stor fördel med YAML är att du kan mappa det otroligt enkelt till inbyggda data. Andra fördelar med YAML är den enkla läsbarheten, så det är en perfekt tillgång för konfigurationsarbete, samt möjliggör enkel automatisering av processer. I samband med Spring Boot kan YAML vara perfekt att använda när vi arbetar med hierarkikonfigurationer och när vi måste specificera dem på ett ordnat sätt.
- Vad kan du vidareutveckla vad gäller Spring Boot "huvudklass"?
Förväntat svar: Spring Boot-huvudklass innehåller en huvudmetod. Den här klassen visas oftast i Java-appar. I samband med Spring Boot driver huvudklassen fram SpringApplicationContext eftersom klassen innehåller metoden public static void main().
Om vi har flera deklarerade huvudklasser i en app kan vi med Spring Boot enkelt hitta och definiera en "huvudklass" inom konfigurationen.
- Definiera IoC-behållaren och dess kontext i Spring Boot.
Förväntat svar: Dependency injection blir otroligt effektiv och förenklad när den är automatisk, och den här typen av automatisk process görs med programmeringsprincipen IoC-behållare. Manuell objekthantering försvinner helt om du använder IoC med Spring Boot, och alla objekt med deras dependencies kommer att konfigureras och monteras perfekt.
- Vad är Spring Boot Devtools?
Förväntat svar: För det första är Devtools en uppsättning verktyg, eller en modul som hjälper utvecklaren att testa och felsöka koder och totalt sett förenkla deras arbete. Mer exakt i detta sammanhang är Spring Boot Devtools en förbättring som släpptes av Spring och ingår som en del av Spring Boot 1.3.
Dessa Spring Boot Devtools ger anmärkningsvärda förbättringar i arbete med Spring Boot, såsom:
- Automatisk omstart möjliggör en enkel java-klassladdning, följt av dess konfiguration på serversidan likaså.
- Fjärruppdatering och omstart – Med detta kan vi enkelt starta om och uppdatera en app genom att övervaka alla filändringar i en klassökväg och omedelbart skicka dem till en fjärrserver. I slutändan startas den här servern om.
- Egenskapsstandardvärden, för enkel inaktivering av cachning och enkel siduppdatering utan att behöva starta om appen – allt med hjälp och implementering av Thymeleaf och dess 'spring.thymeleaf.cache'
- Remote Debug Tunneling – Tunneling av JDWP (Java Debug Wire Protocol) direkt till appen via HTTP är otroligt enkelt nu.
- LiveReload är den medföljande servern i Devtools, och det gör det möjligt för appen att börja uppdatera webbläsaren på ett automatiskt sätt. Denna webbläsaruppdatering eller "automatisk uppdatering" inträffar med alla ändringar vi gör på vägen.
Sammanfattningsvis, förvänta dig att Spring Boot-appen kommer att starta om snabbt när du gör kodändringar.
- Vad är @RequestMapping? Och @GetMapping?
Förväntat svar: Den typ av anteckning som ger oss information för routningen kallas @RequestMapping och den används mest för metodnivå eller klassnivå inom kontrollantklassen. Så om du använder @RequestMapping kan du förvänta dig mappning från en global begärandesökväg i kontrollantklassen.
Till skillnad från anteckningen på klassnivå som nämns ovan är @GetMapping den sammansatta anteckningen som ansluter metoder. Den här anteckningen hittar alla HTTP GET-begäranden och mappar dem enkelt till vissa hanteringsmetoder efter behov.