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

Synchr. - Č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 Office 365 (online), Power Platform aplikace, Dynamics,…

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 š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

Co jsou to virtual tables?

A

Umožňují přístup k externím datům přímo z Dataverse, aniž by bylo nutné data fyzicky ukládat. Fungují jako propojení mezi Dataverse a externím zdrojem dat.

Můžu se připojit přes různé connections k Sharepointu, Salesforce, SQL atp. Má to určité limity.

21
Q

Jaké storage typy máme v dataverse?

A

Data Storage (databáze), File Storage (soubory) a Log Storage (audity)

22
Q

Co je to TDS Endpoint?

A

TDS Endpoint je užitečný pro SQL dotazy na Dataverse, pro reporting a analýzu dat. Nepodporuje úpravy dat, ale umožňuje přímý přístup k datům bez nutnosti API volání, což usnadňuje integraci s BI nástroji a SQL servery.

23
Q

Co je “key” property v reactu a k čemu slouží?

A

React potřebuje jednoznačnou identifikaci pro každou položku v seznamu, aby mohl detekovat změny v DOMu. Bez key by React nepoznal, která položka byla změněna, přidána nebo odstraněna.

24
Q

Co je to “Man in the Middle”? A jak se bránit?

A

Je to typ kybernetického útoku, kdy útočník stojí v komunikaci uživatele a serveru a může tak odposlouchávat zprávy (data) - Sniffing nebo i zpráva upravovat (Data Injection). Případně může zachytit token a použít ho k přihlášení a získání dat (Session Hijacking).

Protocol HTTPS šifruje data mezi klientem a serverem. Vyhýbat se veřejným WiFi, používat VPN pro šifrování komunikace.

25
Q

Co se stane když pošlu email?

A

Pošle se požadavek serveru o odeslání emailu, server zjistí kam poslat email dotazem na cílovou doménu, jakmile zjistí cílový server, naváže s ním spojení a předá email. Nakonec server zjistí kam email uložit (např. do emailové schránky)

26
Q

Co se stane, když otevřu webovou stránku?

A

Dotazem na DNS se přeloží url na ip adresu, prohlížeč naváže spojení s cílovým serverem, v případě zapezpečené stránky proběhne “TLS handshake” pro šifrování komunikace. Následuje odeslání požadavku (GET) pro získání dat stránky a cílový server požadavek zpracuje a vrátí odpověď, html content.

27
Q

Jaké jsou vrstvy http?

A

Aplikační vrstva - komunikace mezi klientem a serverem (reqeust-response)

Transportní vrstva - Přenos dat, http nešifrovaný, https šifrovaný.

Internetová vrstva - Komunikace přes IP protocol, směřování paketů

Síťová vrstva - Nejnižší vrstva, fyzická, Ethernet nebo WiFi, data putují přes routery a switche

28
Q

Co je to TLS Handshake?

A

Je to proces navázání šifrované komunikace mezi klientem a serverem.

  1. Zahájení spojení
    Klient odešle ClientHello zprávu na server, která obsahuje podporované verze TLS.
  2. Odpověď serveru
    Server zprávou, která obsahuje vybranou verzi TLS.
  3. Ověření serveru
  4. Výměna klíčů a šifrování
  5. Dokončení handshake
29
Q

Jaký je rozdíl mezi Class componentami a Functional componentami v React?

A

Funkční komponenty jsou modernější a od příchodu react hooks, které se používají ke změně stavu a životnímu cyklu (useEffect), v podstatě nahradili class componenty.

Class componenty vyžadují více kódi, jsou méně přehledné a o něco pomalejší. Mají stav (this.state, SetState) a životní cyklus (componentDidMount, componentDidUpdate, componentWillUnmount)

30
Q

Jaký je rozdíl mezi typescript a javascript? Proč typescript vznikl a proč se používá?

A

TypeScript je nadstavba (superset) JavaScriptu, která přidává statické typování (při kompilaci) a další vylepšení. Kód v TypeScriptu se musí přeložit (transpilovat) do JavaScriptu, aby fungoval ve webových prohlížečích.

Slouží k odhalování chyb už při kompilaci, ale i má i plnou podporu objektově orientovaného programování oproti javascriptu.

31
Q

Co to je MS Graph a k čemu se používá?

A

Je to API rozhraní od MS. Umožňuje vývojářům číst, zapisovat a spravovat data z různých Microsoft služeb pomocí jednotného API.

Outlook (E-mail, Kalendář, Kontakty)
OneDrive (soubory a dokumenty)
SharePoint (dokumenty, seznamy, metadata)
Teams (chaty, schůzky, kanály, volání)
Azure Active Directory - Entra ID (uživatelé, skupiny, oprávnění)
Planner (úkoly a projekty)
To Do (správa osobních úkolů)

32
Q

Jaké jsou rozdíly mezi var, let a const v typescriptu?

A

Let a const jsou scopovatelný, mají kontext jeho v daném scopu a nelze k nim přistupovat před inicializací, var má kontext v celé funkci nebo třídě a před inicializací vrací undefined.

Const - konstanta nemůže měnit svojí hodnotu (může měnit objekty a arraye), musí mít hodnotu při inicializaci.

Var - Lze

33
Q

Proč existují soubory .tsx?

A

TSX soubory kombinují TypeScript a JSX. JSX umožňuje propojení javascript kódu s xml komponentami. Typescript přidává statickou typovou kontrolu a další rožšíření.

34
Q

Jaký je rozdíl mezi klientským skriptem a PCF?

A

Client skripty můžeme provolávat na různé eventy na formulřá, případně z ribbonu, přímo na tlačítku nebo enable rules. PCFko je komponenta nabindovaná přímo na control v aplikaci (field, dataset).

35
Q
A