Jak prověřit dovednosti vývojáře React Native

Vydáno: Poslední aktualizace:
Dovednosti vývojáře React

Zatímco o Reactu se mluví ve velkém, React Native se postupně stal důležitou součástí světa JavaScriptu. Umožňuje vývojářům psát mobilní aplikace, které lze přenést na iOS i Android. Výhodou je, že místo toho, aby vývojáři mobilních aplikací museli rozvíjet samostatné dovednosti pro iOS (Objective-C a Swift) a Android (Java a Kotlin), mohou čerpat z JavaScriptu, který je v současnosti nejpoužívanějším jazykem. Stejně jako u všech technologických stacků však nestačí pouze znát JavaScript. Musíte do hloubky rozumět jazyku React Native. Jak tedy zaměstnavatelé poznají, zda má vývojář React Native potřebné dovednosti?

Průvodce prověřováním dovedností vývojářů React Native

Tento průvodce poskytne technickým náborářům všechny informace, které potřebují k prověřování kandidátů na vývojáře React Native. Uvnitř najdete:

Co je to React Native Developer

1. Co je React Native?

React Native je framework navržený a spravovaný společností Facebook s cílem zjednodušit proces vývoje multiplatformních mobilních aplikací, především v oblasti uživatelského rozhraní. Je postaven na další knihovně JavaScriptu React, která rychle dosáhla statusu nejoblíbenějšího a nejuznávanějšího nástroje mezi frontovými vývojáři. Její vzestup však přitáhl určité kontroverze.

React Native, vydaný v roce 2015 jako open-source projekt, rychle rozdělil komunitu mobilních vývojářů. Před příchodem React Native existovala řada nástrojů zobrazujících webové stránky napsané v jazycích HTML, CSS a JavaScript uvnitř samostatného prohlížeče, který napodoboval nativní aplikaci. Pokud vám to zní neohrabaně, máte pravdu. Ukázalo se, že jejich používání je otravné a nebyly příliš oblíbené.

React Native se naopak vyhýbá stejným zkratkám jako jeho předchůdci. Hierarchie zobrazení vykreslovaná aplikací je zcela nativní pro systém, na kterém běží. Jinak řečeno, aplikace vypadá jako nativní aplikace, nikoli jako webová stránka. Díky tomu jsou aplikace React Native k nerozeznání od běžných aplikací napsaných v jazycích Swift, Objective-C, Kotlin nebo Java. Chcete-li se přesvědčit, jak to funguje v praxi, podívejte se na populární aplikace, jako je Facebook, Messenger, Instagram nebo Discord. I odborník by měl problém poznat, které části těchto aplikací byly napsány v React Native a které pomocí jiného technologického zásobníku.

1.1 Rozdíl mezi React vs React Native

React i React Native jsou open source projekty, které vytvořila společnost Facebook, ale nejedná se o totéž. Reagovat je knihovna JavaScriptu pro vytváření přední části webových aplikací, zatímco React Native je framework, který poskytuje jednotnou sadu nástrojů pro vytváření mobilních aplikací pro iOS i Android. Z toho vyplývají zásadní rozdíly, jako například to, že React se vykresluje v HTML, zatímco React Native nikoli. React Native také dává vývojářům React Native možnost převést nebo přemostit nativní pohledy napsané v jazycích specifických pro danou platformu, jako je Swift nebo Kotlin, do něčeho, co lze použít v React Native.

Navzdory rozdílům jsou si však React a React Native pozoruhodně podobné, přičemž React Native využívá mnoho ze základů Reactu. Práce s React Native vyžaduje použití 70-80% komponent a postupů Reactu. Z tohoto důvodu není křivka učení pro vývojáře Reactu, který se chce naučit React Native, příliš strmá. Přesto se jedná o dvě samostatné technologie, které by se neměly vzájemně zaměňovat.

2. K čemu se React Native používá?

Největší výhodou React Native je, že umožňuje vývojářům React Native vytvářet aplikace pro různé platformy, aniž by se museli učit a používat více technologických balíčků. Facebook tento přístup nazývá "naučit se jednou, psát kdekoli". Jejich cílem při vývoji React Native je sjednotit znalosti potřebné k vytváření mobilních aplikací.

React Native poskytuje vývojářům deklarativní způsob vytváření uživatelských rozhraní. Laicky řečeno, ve srovnání s nativním UIKitem pro iOS nebo SDK pro Android nabízí mnohem mírnější křivku učení. To znamená, že jej mnoho vývojářů aplikací používá jako způsob, jak se dostat k vývoji mobilních aplikací. To také vedlo ke vzniku řady konkurenčních nástrojů, jako je Flutter od společnosti Google nebo nedávno oznámený SwiftUI od společnosti Apple, které byly vyvinuty na podobných principech.

Přestože však představuje snadný způsob, jak se pustit do vývoje aplikací, React Native je základem některých výkonných aplikací. Bloomberg, Airbnb a UberEats jsou skvělými příklady aplikací vytvořených pomocí React Native.

Co by měl náborář IT vědět o vývojáři React Native

3. Co je důležité vědět o React Native pro IT náboráře?

Vzhledem k tomu, že React Native je stále poměrně mladý framework, prochází řadou změn, které mají buď menší, nebo větší dopad na práci vývojářů. Většinou jsou tyto změny dobrovolné a existuje jen málo nebo žádné tvrdé zastarávání, které by mohlo vývojáře React Native přimět k migraci své kódové základny.

Vzhledem k tomu, že se jedná o otevřený zdrojový kód, je komunitě k dispozici plán všech plánovaných změn a vylepšení. Díky nedávnému přidání háčků a ještě větším změnám usnadňujícím používání, které jsou plánovány na blízkou budoucnost, bude proces tvorby mobilní aplikace ještě rychlejší a pohodlnější než kdykoli předtím.

Nespornou výhodou React Native je široká a nápomocná komunita. Mnoho otázek na všech úrovních již bylo zodpovězeno buď v článku na blogu, v záznamu na Stack Overflow, nebo v nějaké mikroknihovně zveřejněné jako balíček NPM. Existuje spousta zdrojů, kde se mohou začátečníci učit a pokročilí vývojáři rozšiřovat své znalosti.

Důležité je však nezapomínat na to, že přístup Facebooku "nauč se jednou, napiš kamkoli" nelze zaměňovat s přístupem "napiš jednou, napiš kamkoli". V React Native je stále obtížné napsat aplikaci, která by fungovala v systémech iOS a Android. Je to proto, že stále existuje mnoho funkcí závislých na systému, které vyžadují rozdělení částí kódu do samostatných verzí pro iOS a Android. Přesto je cílem React Native sjednotit dovednosti pro tvorbu aplikací, nikoliv vytvořit jednu aplikaci, která bude fungovat na obou platformách.

3.1 Jaké zkušenosti by měl mít vývojář React Native

Při posuzování životopisu vývojáře React Native záleží na typu pozice, na kterou je kandidát nabírán. Zapojení do komerčních projektů je nutností, pokud mluvíme o seniorních nebo vedoucích pozicích, protože u těchto pozic se očekává know-how související s obchodem. U ostatních úrovní na tom tolik nezáleží. Jednou z výhod příspěvků do open source je, že mohou náborovému pracovníkovi poskytnout další informace o stylu kódu nebo způsobu, jakým kandidát komunikuje s komunitou. Shrneme-li to, je opravdu důležité porozumět potřebám týmu a odpovědnosti dané role ještě před zahájením výběrového řízení.

Jak ověřit dovednosti React Native ve fázi screeningu?

4. Technická kontrola dovedností vývojáře React Native na základě životopisu

React Native je poměrně unikátní z hlediska toho, jak se k němu lidé dostávají a z jakého prostředí pocházejí. Někteří weboví vývojáři, kteří znají JavaScript a případně i samotný React, mohou chtít rozšířit své dovednosti o vývoj mobilních aplikací. Naopak někteří nativní mobilní vývojáři mohou rozpoznat silné stránky přístupu a nástrojů React Native a chtěli by je využít při své každodenní práci. Oba mohou být pro tým významným přínosem, přičemž ti první mohou přinést vzory a osvědčené postupy specifické pro JS nebo React, ti druzí zase znalosti o některých funkcích a omezeních specifického mobilního prostředí. Bylo by dobré, aby náborář věděl, jaká přesně bude role kandidáta a jaká sada dovedností je v týmu žádaná.

Slovníček vývojářů React Native

5. Slovníček React Native pro technické náboráře

Aktuální standardy JavaScriptu ECMAScript2015 (alias ES6), ECMAScript2019 (alias ES10)
Nadmnožina jazyka JavaScript, která přidává silné psaní TypeScript
Knihovny React Native React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL

Správci balíčků

NMP, příze
Rozšíření JavaScriptu JSX
Nástroje, které pomáhají udržovat styl kódu ESLint, TSLint, Prettier
Testovací běžci Jest, Mocha

5.1 Jaké technologie hledat v životopise vývojáře React Native

Důležité je sledovat, jakou normu JavaScriptu uchazeč zná. Počínaje rokem 2015, kdy byl vydán standard ECMAScript2015 (známý také jako ES6), je každý rok vydáván nový standard JavaScriptu. Aktuální iterace z roku 2019 se nazývá ECMAScript2019 (ES10). Tyto různé standardy mohou mít vliv na rozhraní API React Native, které kandidát dosud používal.

Nejvýznamnější změna nastala mezi standardy ES5 (2009) a ES6 (2015). Kód napsaný v novějších standardech však lze vždy přenést do starších pomocí nástrojů, jako je Babel.

5.2 Další věci, na které je třeba si dát pozor v životopise vývojáře React Native

Dovednost, která se může hodit i vývojáři React Native, je TypeScript. Jedná se o nadmnožinu jazyka JavaScript, která používá statické typování. Statické typování obecně pomáhá mnohem dříve odhalit některé chyby v kódu (nenahradí však v této věci unit testy) a umožňuje vývojářům vyjádřit své záměry ohledně veřejných API, které vystavují veřejnosti, jasnějším a lépe strukturovaným způsobem.

Existuje také mnoho ad-hoc knihoven React Native zaměřených na řešení konkrétních problémů, jako je navigace nebo správa stavu. Jejich znalost silně souvisí s typy projektů, na kterých kandidát pracoval. Pokud kandidát uvede knihovny jako React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL nebo mnoho dalších, může to být zajímavý vstupní bod diskuse o předchozích zkušenostech kandidáta.

Otázky k pohovoru pro vývojáře React Native

6. Otázky k pohovoru pro React Native

Životopis vám ukáže, jak uchazeč prezentuje své znalosti. To však nestačí k tomu, abyste zjistili, zda má schopnosti, které potřebujete. Koneckonců, do životopisu může kdokoli napsat cokoli. Poté je třeba se ho na jeho dovednosti zeptat v rámci telefonického screeningu nebo s ním vést pohovor poté, co projde fází hodnocení kódovacích dovedností.

6.1 Otázky týkající se zkušeností vývojáře React Native

Otázka 1: Mohl byste popsat aplikace, na kterých jste v minulosti pracoval? Jak jste v těchto aplikacích použili React Native?

Důvod: Tato otázka by měla sloužit především jako zahřívací kolo, aby se uchazeč otevřel a převzal iniciativu a hovořil o svých obecných zkušenostech. V návaznosti na to je důležité se zeptat, jak React Native používal jejich tým. Náborový pracovník tak může posoudit, jaké oblasti React Native může kandidát znát - např. zda byl RN použit v celé aplikaci, nebo jen v některých obrazovkách, zda byl přemostěn s nativními částmi napsanými v Objective-C/Java atd.

Q2: Proč jste se s týmem rozhodli použít React Native? Co pro vás bylo největším prodejním argumentem? Jak pomohl v aplikacích, na kterých jste pracovali?

R: Odpověď na tuto otázku může náborovému pracovníkovi napovědět několik věcí. Částečně ukazuje, jakou pozici nebo odpovědnost měl kandidát v týmu - podílel se na rozhodovacím procesu? A i kdyby ne, jsou si vědomi klíčových účelů React Native, které mohly prodat nápad jejich kolegům? To také ukazuje, zda je kandidát schopen učinit technické rozhodnutí na základě obchodních požadavků aplikací, se kterými pracoval, nebo zda jen sleduje trend.

Q3: Jak jste v těchto aplikacích řešili stav? Jak to fungovalo?

R: Tato otázka je poněkud techničtějšího rázu. Vzhledem k tomu, že React Native je ve svém jádru pouze vrstvou uživatelského rozhraní, je důležité vědět, čím kandidát vyplnil zbývající prázdná místa, z nichž jedním je správa stavu. To má potenciál otevřít diskusi o jednosměrném toku dat (redux, flux) nebo o zpracování stavu z externích služeb (REST, GraphQL). Dává to také smysl pro schopnost kandidáta posoudit klady a zápory zvoleného přístupu, což je klíčová dovednost při vlastním rozvoji.

6.2 Otázky týkající se znalostí a názorů vývojáře React Native

Q1: Jaké komponenty lze v React Native použít? Jak se liší? Kdy kterou použít?

R: Tuto otázku si může uchazeč vyložit různými způsoby. Komponenty lze rozdělit buď na kontejnerové/prezentační, nebo na stavové/čisté/funkční. Nezáleží na tom, který způsob myšlení zde kandidát projeví, tato otázka je spíše o tom, aby kandidát dokázal hovořit o účelu nebo hranicích každé z nich nejlépe v kontextu své vlastní zkušenosti.

Q2: Jak v aplikaci opakovaně používáte kód? Jaké znáte techniky sdílení společné logiky a jaký na ně máte názor?

R: Existuje několik způsobů, jak dosáhnout opakovaného použití kódu, z nichž nejoblíbenější jsou komponenty vyššího řádu, vykreslovací rekvizity, háčky a kontext. Jejich použití je obvykle založeno na preferencích týmu, takže zde jde hlavně o to, aby kandidát vysvětlil, proč by použil jeden z nich místo druhého. To by mělo náboráři poskytnout představu o tom, jak hluboké jsou kandidátovy znalosti, porozumění interním principům React Native a jak moc kandidátovi záleží na čistém a udržovatelném kódu.

Q3: Jak aplikaci ladíte? Jaké nástroje používáte a jak jsou užitečné?

R: Většinu času věnuje vývojář React Native čtení, analýze a ladění stávající kódové základny. Proto jsou dovednosti a znalosti potřebné k řádnému a efektivnímu ladění aplikace klíčové. Kandidát by mohl zmínit různé přístupy, které se liší od použití prostých protokolů přes připojení debuggeru až po použití bodů přerušení nebo kontrolu hierarchie zobrazení prostřednictvím nástrojů React Dev Tools. Každý z nich má nějaké specifické případy, ve kterých nejlépe vynikne, takže by kandidát měl také uvést příklad situace, ve které byl použit. Bonusové body získáte za zmínku o jednotkovém testu, který chybu reprodukuje a díky němuž projde jako způsob, jak určit, že chyba byla opravena a zůstane opravena i v budoucnu.

Q4: Setkali jste se někdy s problémy s výkonem vaší aplikace? Co jste použili k jejich diagnostice? Jak jste je vyřešili?

R: Skeptici často poukazují na výkon React Native, pokud jde o jeho užitečnost. Je sice pravda, že je snadné spadnout do některých pastí, které způsobují pokles snímkové frekvence, ale pochopení vnitřních funkcí Reactu a React Native stačí k tomu, aby se tyto problémy zmírnily. Kandidáti mohou zmínit techniky, jako je zapamatování, vylepšení, jako jsou čisté komponenty, nebo nástrahy, jako jsou inline funkce. Ty pokrývají značnou část důvodů způsobujících nižší odezvu rozhraní. Když kandidáti mluví o nástrojích, jako je profiler, a konceptech, jako je prolínání a vykreslování mimo obrazovku, je jasné, že se setkali se skutečně složitými problémy (pravděpodobně s animacemi). V ideální odpovědi by mělo být také zmíněno, že pro zlepšení výkonu je třeba mít k dispozici sadu metrik, které je třeba minimalizovat nebo maximalizovat (jako FPS, spotřeba paměti nebo procesoru atd.), protože bez nich je těžké posoudit, zda se vývojář React Native ubírá správným směrem.

Q5: Co testy? Použili jste je? Jak pomohly vašemu týmu? Jaké druhy testů jste používali?

R: Testování je stále překvapivě kontroverzní téma. Ať se to někomu líbí, nebo ne, aplikace se musí před odesláním do výroby alespoň nějakým způsobem otestovat, aby se zajistilo, že nové funkce fungují podle zadání, a hlavně, že se nerozbily ty staré. Silný a specializovaný tým QA tomu rozhodně napomáhá, ale existence unit testů nebo snapshot testů dává vývojáři React Native okamžitou zpětnou vazbu, kterou může použít k opravě kódu. Testy jsou pro vývojáře nástrojem, který výrazně zvyšuje jejich důvěru ve změny zaváděné do kódové základny. Test zachytí okamžik, kdy aplikace funguje správně, a od tohoto okamžiku tuto správnost udržuje. Existuje více testovacích běhů v JavaScriptu, v kontextu React Native se nejvíce doporučuje Jest, zejména proto, že pochází od autorů React Native. Kromě toho lze použít react-test-renderer, který buď testuje chování konkrétní komponenty, nebo snímkuje celou hierarchii pohledů a chrání ji před neočekávanými změnami.

Q6: Jak udržujete styl kódu ve vašem týmu? Jak společně spravujete kódovou základnu?

R: Jedná se o lehčí otázku, která má odhalit uchazečovy znalosti různých nástrojů používaných v procesu vývoje. Odpovědi zde mohou být velmi široké. Mohou sahat od nástrojů Prettier a ESLint, které odpovídajícím způsobem automatizují formátování kódu a kontrolují, zda napsaný kód odpovídá pravidlům stanoveným týmem, až po pojmy jako kontinuální integrace nebo dokonce systémy pro správu verzí, jako je Git. Kandidát může zmínit i takové postupy, jako je revize kódu. Hlavním cílem otázky je ukázat, jak a jakým způsobem kandidáti spolupracovali se svými týmy a kolik opakovatelné práce dokázali automatizovat.

6.3 Otázky na chování vývojáře React Native

Q1: Jaký byl váš největší úspěch v kariéře? Jaká byla největší chyba? Jaké kroky byste podnikli, abyste úspěch zopakovali nebo se vyhnuli opakování chyby?

R: Docela obecná otázka, ale ukazuje schopnost sebepoznání a sebekritiky uchazeče. Obojí je potřeba v procesu učení, který je stálou součástí práce skvělého softwarového vývojáře.

Q2: Jak byste řešili situaci, kdy je termín vašeho projektu stanoven na zítřek, ale stále zbývá implementovat některé funkce?

R: To není vůbec těžké si představit a je velká pravděpodobnost, že se kandidát s podobnou situací již v minulosti setkal. Možná se kandidát snažil vyjednávat a získat více času na dokončení práce. Možná si sedl s vlastníkem produktu nebo manažerem, aby stanovil priority funkcí a držel se nějakého MVP. Možná implementoval některé funkce rychle, ale nepříliš udržovatelně, aby získal čas a nastavil si připomínku, že později provede úklid. Existují různé přístupy a cílem této otázky je ukázat personalistovi, zda kandidáti chápou důležitost obchodních cílů a zda jsou schopni učinit určité kompromisy na technické úrovni, aby je splnili.

Q3: Jaké zdroje byste doporučili juniorním/běžným vývojářům, které by jim umožnily zlepšit jejich dovednosti? Chtěli byste být mentorem takového vývojáře? Dělali jste to v minulosti?

R: Odpověď na tuto otázku je nepřímým způsobem, jak zjistit, které z těchto zdrojů uchazeč použil dříve a proč. Náborový pracovník tak získá další informace o jeho minulosti. Část týkající se mentoringu může naznačit, zda vývojář React Native rád sdílí znalosti, což může mít také pozitivní dopad na tým.

Q4: Jaké oblasti mobilního vývoje nebo vývoje softwaru byste rádi prozkoumali nebo se s nimi blíže seznámili? Proč?

R: Tato otázka náboráři napoví, jaká témata by mohla být pro uchazeče zajímavá a jakým směrem by se chtěl v kariéře rozvíjet. Náborovému pracovníkovi umožňuje posoudit, zda by se projekt, na který je kandidát přijímán, hodil.

Testy kódování React Native Developer

7. Technická kontrola dovedností vývojáře React Native pomocí online testu kódování

Životopis vývojáře React Native obsahuje dovednosti, které uchazeči uvádějí, že mají, a telefonická prohlídka vám dává příležitost ověřit, zda mají teoretické znalosti konceptů souvisejících s vývojem React Native. Ale jen proto, že kandidát má teoretické znalosti, není jisté, že je dokáže uplatnit v praxi při vývoji softwaru. Online test kódování vám může poskytnout náhled na to, jak dobře kandidát dokáže vyvinout aplikaci pomocí React Native.

7.1 Který test pro programování React Native byste měli zvolit?

Existuje několik možností, ale je důležité vybrat si test, který používá konkrétně React Native, nikoli JavaScript nebo React. Zde je několik pokynů:

  • Test odráží práci, kterou vaše společnost vykonává
  • Délka je přiměřená, jedna až dvě hodiny (nebo i méně).
  • Odesílání je automatizované
  • Test může být proveden u uchazeče doma.
  • Kontroluje kvalitu kódu a okrajové případy i řešení.
  • Kandidát má přístup ke všem běžným zdrojům, které používá k vývoji softwaru.
  • Jedná se o in stack projekt, který uchazeči poskytuje nejen přístup k frameworku React Native, ale také k různým knihovnám, které se s React Native používají.
  • Je kalibrován tak, aby odpovídal úrovni polohy.

7.2 Online testy DevSkiller pro vývojáře React Native připravené k použití

React Native testy společnosti Devskiller jsou postaveny na metodice RealLifeTesting™, která zajišťuje zcela přesný obraz dovedností kandidáta. Test lze provést v místě a čase, kde to kandidátovi nejvíce vyhovuje a kde je na to připraven. Mají přístup k jakémukoli zdroji, který potřebují, jako je GitHub, Stack Overflow, Google a další knihovny React Native. To je vlastnost, nikoli chyba, protože ukazuje rozhodnutí, která kandidát dělá v přirozeném programátorském prostředí. Můžete vidět, jak dobře kandidát splní úkol, ale také, jaká rozhodnutí dělá, jakou používá obchodní logiku, efektivitu a čistotu svého kódu a jak dobře zná technologický stack.

Můžete si sestavit vlastní test nebo použít některý z vlastních testů DevSkiller, které sestavili starší odborníci na React Native.

React Native
STŘEDNÍ
Testované dovednosti
Doba trvání
107 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí React Native

Mezery v kódu

hodnocení znalostí JavaScript, React Native

Úloha programování - Úroveň: - Střední úroveň

React Native | Cheeper - nová aplikace pro sociální sítě - Dokončení implementace tak, aby bylo možné provádět základní socializaci.

React Native
SENIOR
Testované dovednosti
Doba trvání
108 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí ES6, JavaScript

Programování - Úroveň: těžká

React Native | Movie Store - Implementujte aplikaci, která uživatelům umožní koupit všechny filmy, které si jen dovedou představit.

React Native
STŘEDNÍ
Testované dovednosti
Doba trvání
101 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí ES6, JavaScript

Úloha programování - Úroveň: - Střední úroveň

React Native | HR Companion App - Implementace aplikace, která pomůže personálnímu oddělení s vedením seznamu uchazečů o zaměstnání, kteří mají být vyhodnoceni.

React Native
JUNIOR
Testované dovednosti
Doba trvání
70 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí ES6, JavaScript

Úloha programování - Úroveň: Snadné

React Native | Ultimate BugTracker - Implementace chybějících funkcí a oprava chyb v aplikaci, která slouží jako interní nástroj pro sledování chyb v softwarové firmě.

Sdílet příspěvek

Další informace o najímání zaměstnanců v oblasti technologií

Přihlaste se k odběru našeho vzdělávacího centra a dostávejte užitečné informace přímo do své e-mailové schránky.

Bezproblémové ověřování a rozvíjení dovedností v oblasti kódování.

Podívejte se na produkty DevSkiller v akci.

Bezpečnostní certifikace a shoda s předpisy. Zajistíme, aby vaše data byla v bezpečí.

Logo DevSkiller Logo TalentBoost Logo TalentScore