Lv.3 Prep Flashcards

1
Q

Jaký je rozdíl mezi imperativním a deklarativním kódem?

A

Imperativní programování říká “jak to dělat”, deklarativní “co dělat”.

Jednoduchý příklad deklarativního programování jsou xml definice, či html (pouze specifikuji, co chci vidět), případně klientské skripty, které pouze zobrazují či schovávají informace na obrazovce apod.

Příklad imperativního programování jsou custom konektory (jak a čeho dosáhnu). Nebo například klientský skript součtu používáný k součtu n prvků v arrayi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Co je to swagger?

A

Je to open-source framework sloužící k popisu a dokumentaci RESTful webových služeb psaný v YAML nebo JSON.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Jaký je rozdíl mezi synchronní a asyncrhonní metodou?

A

Syn - Čeká na odpověď než program může pokračovat dále. Většinou jednoduchá logika, které by neměla výrazně zpomalovat chod programu.
Async - Program nečeká na odpověď programu (pokud není nucen awaitováním). Vrací takzvané promises. Může obsahovat komplexnější logiku a přesto nezpomalovat program. Je potřeba dávat si pozor, které funkce awaitujeme a jaký to má vliv na chod programu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Co je to SOLID?

A

Je to zkratka pro 5 návrhových principů objektově orientovaného programování.

Single Responsibility - Každá třída (class) by měla mít pouze jednu odpovědnost, tedy pouze jeden důvod k případné změně.

Open/Closed - Software by měl být otevřen k rožříření, ale uzavřen pro úpravy. Tzn. kód by mělo být možné rozšiřovat bez přímých změn existujícího kódu.

Liskov Substitution - Objekty odvozené od určité clasy by měly být schopny nahradit instance této classy bez narušení správnosti programu.

Interface Segregation - Měly by být definovány specifické rozhraní pro každý konkrétní scénář.
př. Definuji scénáře pro tiskárny. Navrchu mám typ IPrinter s metodami tisk, scan, kopírování, 3D tisk. Starší modely ale neumí skenovat ani kopírovat. Vytvořím tedy subclass OldPrinter, kde funkce scan ani copy nebudou povoleny. Založím i subclassy 3DPrinter a ModernPrinter.

Dependency Inversion - Moduly vyšší úrovně by neměli být závislé na modulech nižší úrovně. Oba by měli záviset na abstrakcích.
př. Mám třídu ReportGenerator (který generuje reporty), který potřebuje data source, aby měl z čeho generovat. Vytvořím si tedy třídu DataSource s funkcí get_data. Pokud si v instanci ReportGenerator vytvořím instanci třídy DataSource, poruším tím toto pravidlo, jelikož by se tyto dvě třídy staly přímo závislé na sobě. Místo toho si vytvořím interface IDataSource, kde specifikuji funkci get_data vracející objekt. Třída DataSource bude implementovat tento interface. Třída DataReport nyní může použít jakoukoliv třídu implementující interface IDataSource.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Co je to Platform as a Service? (PaaS)

A

Model tzv. cloud computingu. Poskytuje platformu a prostředí, pro vývoj, testování a nasazení softwarových aplikací. Uživatelé nemusejí spravovat infrastrukturu a hardwarové stroje pod touto platformou.
Poskytuje: Vývojové nástroje (vývoj, testování a nasazování, může být low code, ale i chyb v programu či správu verzí), automatická škálovatelnost aplikací, databáze.
Je to např. Microsoft Azure App Service, ale může být třeba i Google App Engine.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Co je to Infrastructure as a Service? (IaaS)

A

Poskytuje virtuální infrastrukturu jako službu. Uživatelé mají přístup k virtuálním strojům, úložištím a síťovým zdrojům. Typicky Azure Virtual Machine nebo Google Compute Engine.
Jako uživatel nemusím řešit hardware (servery).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Co je to Software as a Service? (SaaS)

A

Poskytuje software jako službu (aplikaci/program) na internetu. Aplikace není třeba instalovat nebo spravovat. Typicky například Miscrosoft 365.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Co je to Function as a Service? (FaaS)

A

FaaS umožňuje nahrávat a spouštět kód (program) bez nutnosti spravovat infrastrukturu. Typickým příkladem jsou Azure Functions často využívané v custom konektorech.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Co je to DNS - Domain Name System?

A

Je to systém doménových jmen, který překladá lidsky čitelná jména (url) na IP adresy, které jsou používány pro identifikaci a lokalizaci na internetu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Co jsou DNS záznamy a jaké typy znáš?

A

Záznamy obsahují informace o doméně sloužící ke specifickým účelům.

A - Address record: Překládá jména na odpovídající IPv4 adresu (AAAA to samé ale na IPv6 adresu) a PTR překládá zpět na jména

CNAME - Vytváří alias pro existující doménové jméno. (přesměrovává requesty). Například www.fb.com je aliasem pro www.facebook.com

MX (mail exchange) - Určuje mailové servery, které jsou odpovědné za doručování e-mailů.

TXT - Může ukládat různé textové informace, např. ověření vlastnictví domény

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Co je to Table storage a co je to blob storage v azure?

A

Obě jsou služby databáze součástí Azure Storage Services.

Table Storage je úložiště ulkádající jednoduše struktoravaná data do tabulek v podobě obvykle velkého množství záznamů. Každý záznam (řádek) je označen unikátním primárním klíčem, který se skládá z Parittion Key a Row Key. Partition key slouží k rozdělení dat v tabulce (jako složka v počítači) a row key je unikátní identifikátor záznamu (může, ale nemusí být random guid, lepší když nemusí)

Blob Storage dovoluje ukládat a spravovat velké množství nestrukturovaných dat, jako jsou obrázky videa a další binární a textové data. Podporuje verze.
3 základní typy:
Block Blobs - rozděluje data do bloků, každý je uložen nezávisle
Page Blobs - Data jsou organizována do indexovaných stránek
Append Blobs - Postupné přidávání dat na konec souboru, usnadňuje zápisy do logů či žurnálů.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jaký je rozdíl mezi FetchXML a OData?

A

FetchXML je specifický pro Microsoft Dynamics CRM, zatímco OData je univerzálnější a používá se v různých kontextech a na různých platformách. Ve fetchXml se tedy v rámci Microsoftu dají poskládat více specifikované query.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Co je to Azure Function?

A

Azure Functions je služba v rámci cloudové platformy Microsoft Azure, která umožňuje vytvářet a nasazovat funkce (kódy) bez nutnosti spravovat infrastrukturu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Co je to Azure Storage Account?

A

Je to služba bezpečného a velice škálovatelného cloudového úložiště.
Typy jsou Blob Storage, Table Storage, Queue Storage a File Storage.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Co je to OAuth?

A

OAuth je standardní autorizační protokol. Klient se ověří pomocí client id a client secret a díky těmto údajům obdržuje od vlastníka služby dočasné tokeny, které mu dovolují služby využívat.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Co je to Azure Frontdoor a k čemu se využívá?

A

Je to služba typu Content Delivery Network (CDN), která nabízí několik funkcí pro zlepšení výkonu, bezpečnosti a dostupnosti webových aplikací. Automatická škálovatelnost, globální distribuce a bezpečnostní funkce.

17
Q

Co je to Anycast?

A

Jde o přiřazení jedné IP adresy k několika uzlům (nebo serverům) a odesílání požadavků na nejbližší dostupný uzel, což zajišťuje lepší přístupnost a rozložení zátěže serverů.

18
Q

Co jsou to React Hooks?

A

React Hooks jsou funkce, které umožňují vývojářům Reactu používat stav a další funkce Reactu ve funkčních komponentách místo v třídních komponentách.

Důležité:
useState - držet stav a měnit stav
useEffect - Umožňuje reagovat akcemi na změnu stavu či jiné podněty (třeba první render)
useCallback - umožňuje zabránit vytváření nové funkce při rerenderování
useMemo - Slouží k memoizaci hodnoty. Umožňuje optimalizovat výpočet hodnoty tak, aby se opakovaně neprováděl při každém renderování.
useRef - Slouží k vytváření referencí na DOM prvky nebo uchovávání hodnot mezi renderováními komponenty bez vyvolání jejího opětovného renderování.
Navíc:
useContext - drží kontext reactu
useReducer - alternativa k useState pro správu složitějšího stavu pomocí funkce reduceru

18
Q

Co je to Content Delivery Network? (CDN)

A

Jedná se o síť serverů rozmístěných po celém světě sloužící k efektivnímu a spolehlivému doručování obsahu uživateli.

Výhody:
- Zvýšení rychlosti načítání obsahu: CDN snižuje vzdálenost, kterou musí data cestovat, což vede k rychlejšímu načítání obsahu.
- Zvýšení dostupnosti obsahu: CDN distribuuje obsah na více serverů, což zvyšuje jeho dostupnost.
- Zlepšení bezpečnosti obsahu: CDN může poskytovat různé bezpečnostní funkce, jako je ochrana proti DDoS útokům nebo šifrování přenosu dat.

19
Q

Jaký je zásadní rozdíl mezi Table Storage a SQL databází nebo dataversem?

A

Dataverse a SQL databáze jsou relační, jednotlivé záznamy mezi sebou mohou mít různé vazby. Table Storage ukládá jednoduché nerelační data.

20
Q
A