Získej neomezený přístup k 600+ online kurzům v jedinečné akci za bezkonkurenční cenu.
Kup předplatné

Výsledky vyhledávání

pro ”c++” jsme našli 183 výsledků

Články (119)

Všechny články
Co bys měl vědět o Předplatném online kurzů pro rok 2018
Novinky
16.11.2017
Skillmea

Co bys měl vědět o Předplatném online kurzů pro rok 2018

Předplatné Learn2Code online kurzů jsme letos trochu upravili a máš možnost si jej objednat nebo prodloužit za výhodných podmínek. Vždyť čti dál. Cenu ročního přístupu jsme snížili z 249 Eur na 199 Eur a kromě toho, pokud si předplatné objednáš například v listopadu, přístup získáš až do konce prosince 2018. Máš tak od nás další měsíc studia programování, online marketingu nebo designu grátis .  Co všechno u nás najdešJiž téměř 40 online kurzů můžeš studovat na Learn2Code platformě. Další kurzy budou neustále přibývat, zmíním jen ty nejzajímavější, na které se asi nejvíc těšíš: • Python pro začátečníky • Android Developer • JavaScript série • VBA programování • Adobe Illustrator • a mnoho dalších témat Toto vše máš za 199 Eur, což je přibližně 15 Eur na měsíc , pokud přičteme i prosinec 2017 jako bonusový měsíc, který dostáváš zdarma. A to se vyplatí, protože dostaneš desítky kurzů, stovky hodin videomateriálu, certifikáty o absolvování kurzů, podporu od lektorů v diskusích. Předplatné jako dárekNevíš, čím obdarovat sebe nebo své blízké na Vánoce? Máme pro tebe super tip - Learn2Code Předplatné :) Vzdělávání je ta nejlepší investice do budoucnosti pro tebe nebo tvé blízké. A proto nám napiš email a vystavíme ti dárkový poukaz.[Image] Garance včetně penězLearn2Code kurzy prošly stovky spokojených studentů, nekupuješ tedy kočku v pytli. Pokud sis přesto nejistý, jestli se ti bude online forma vzdělávání zamlouvat a zda ti bude vyhovovat, garantujeme ti vrácení peněz v ochranné lhůtě 14 dnů. V případě, že tedy nebudeš s našimi kurzy spokojen, vrátíme ti plnou částku zpět. O vrácení peněz nás požádej emailem do 14 dnů od tvé objednávky.[Image] Pojď do toho! Veškeré info a přihlašování do předplatného  najdeš na této stránce . Pokud máš nějaké dotazy nebo nejasnosti, napiš nám email nebo zavolej :) 
Jak na vlastní Virtuální privátní server - část 1.
Vzdělávání
21.01.2021
Lubo Herko Edited

Jak na vlastní Virtuální privátní server - část 1.

Každý týden jeden blog. Takové jsem si dal předsevzetí do nového roku. Hned první týden se to nepodařilo, ale co už 🤦🏻‍♂️ . V tomto textu (nebo seriálu?) budeme řešit tvůj vlastní Virtuální privátní server (VPS). Konkrétně: • zjistíme co to VPS vlastně je a jaké jsou výhody a případné nevýhody, • zkusíme analyzovat naše potřeby a vybrat vhodné parametry našeho serveru, • VPS koupíme, nastavíme, zajistíme a připravíme pro naši aplikaci, • z GitHub repozitáře nasadíme naši aplikaci do produkce pomocí GithubActions (CI), • koupíme doménu a nasadíme SSL certifikát pomocí letsencrypt. Je to hodně práce, pome na to.[Image] K čemu mi je vlastní server?Hned na začátku si to vyjasněme: VPS je pro většinu projektů zbytečný. Při dnešních možnostech, jak svou aplikaci umíme nasadit do produkce a zpřístupnit ji uživatelům na pár kliků, je často zbytečné řešit komplikované nastavování vlastního serveru. Hlavně údržba a řešení případných problémů nám může připomenout, jak špatně jsme se rozhodli. Přesto VPS má své místo a někdy se opravdu může hodit, například: • pokud máš linux v malíčku, nebo svůj VPS už máš (jsi zkušený/á), • pokud výkon sdíleného hostingu viditelně nestačí a už neumíš svou aplikaci dále optimalizovat, • pokud nepostačují dostupné technologie sdíleného hostingu (potřebuješ doinstalovat vlastní knihovny, tooly), • pokud má aplikace extrémní nároky na výkon procesoru, velikost paměti, nebo potřebuješ ukládat gigabajty/terabajty dat, • pokud jsou data, se kterými pracuješ příliš senzitivně na to, aby byla uložena na jednom místě spolu s daty jiných uživatelů sdíleného hostingu. Asi bychom našli i další případy, specifika, kdy se hodí VPS, tyto nám však prozatím postačí. Pokud tedy spadáš do některého z kritérií, čti dále. Jaký výkon serveru potřebuji?Brzdí. Než přistoupíme ke koupi serveru bychom měli vědět, jaké jsou naše požadavky. Alespoň přibližně. Potřebujeme spoustu jader procesoru? Nebo si vystačíme s jedním, případně dvěma jádry? Potřebujeme spoustu operační paměti, nebo terabajty dat na disku? To jsou těžké otázky, ale poradím ti: • Pokud aplikace neexistuje a chceš VPS jen vyzkoušet, zvol nejlevnější server jaký je v nabídce. Zda máš 1 procesor, nebo 32 procesorů - terminál reaguje vždy stejně rychle. • Pokud je aplikace nová a neznáš její nároky, začni raději s méně výkonným a levnějším serverem. Například CPU s jedním nebo dvěma jádry a 2G RAM. Většina providerů disponuje jednoduchým škálovacím nástrojem. Pokud se zvýší nároky, pohneš v administračním rozhraní nějakým sliderem a šup, máš o dvě jádra více, případně dvojnásobek RAM - do pár vteřin. • Pokud jsi narazil na limity sdíleného hostingu, pravděpodobně znáš důvod, proč chceš vyzkoušet VPS. Nejlepší pokud si komunikoval s podporou svého providera a potvrdili, že jsi narazil na limit jejich CPU, nebo RAM. Kde koupit server?Takže, pokud víme alespoň přibližně co chceme, udělejme průzkum. Osobně mám vyzkoušených těchto prodejců VPS: • Linode, DigitalOcean, Hetzner, WebSupport Ubuntu Server a terminál bude u každého prodejce stejný. Řídit se tedy můžeme podle následujících kritérií: 1. cena 2. ještě jednou cena 3. možnosti administračního rozhraní a případného navyšování výkonu do budoucnosti 4. lokalita datového centra (co nejblíže uživatelům) Moje zkušenost V poslední době to u mě osobně vyhrává Hetzner (hetzner.de). Frajeři mají vynikající ceny (vlastní server v době psaní tohoto textu umíš získat již za 3E/měsíc) a navyšování počtu CPU a RAM je řešeno jednoduchým sliderem v administračním rozhraní. Super věc 🎉. Datové centrum můžeš zvolit relativně blízko – Falkenstein, Nemecko. TIP: V levém horním rohu změníš jazyk webu z německého na anglický. 😎 Vytvoření účtu HetznerJak se už konečně tedy dostaneme k vlastnímu serveru? Takto: 1. Vytvoř si účet na hetzner.de (klik) 2. Klikni na linku, kterou ti Hetzner poslal na email zadaný při registraci 3. V sérii formulářů vyplň své iniciály (poslední formulář vyžaduje údaje o platbě, žádná platba předem však není nutná) 4. Po vyplnění a odeslání formulářů se implicitně zobrazí formulář - nastavení tvých iniciál. Vpravo nahoře klikej na čtverečky a vyber z nabídky možnost "Cloud": Pokud máš po absolvování předchozích kroků před sebou takovou obrazovku:[Konzole cloudu Hetzner.de. je vše v pořádku.] Můj server!Už jsme blízko. V seznamu projektů (předchozí obrázek) klikni na "Default" (tento název umíš změnit přes ikonu tří teček v pravém horním rohu karty produktu) a následně "Add server".[Vytvoření nového VPS.] Parametry serveruNyní zvolíme parametry serveru. V tomto případě zvolíme nejlevnější variantu, ale některé možnosti popíšeme blíže. Parametry serveru tedy nastavíme následovně: 1. Location (umístění datového centra): Falkenstein, protože je nejblíže Slovensku. 2. Image (operační systém): Ubuntu 20.04, protože s ním umím pracovat a také existuje obrovská komunita uživatelů Ubuntu serveru, což usnadní vyhledání návodů a řešení případných problémů. Se serverem Ubuntu bude dále pokračovat i tento tutoriál. 3. Type (typ serveru): Standardní, protože nám nevadí, že spolu s naším VPS budou na fyzickém serveru běžet i jiné virutální servery. Dedikovaný typ serveru je vhodný jen tehdy, potřebujeme-li opravdu velký výpočetní výkon pro naše použití. Z dalších možností typu serveru vyberme hned první s označením CX11 a tedy 1x VCPU, 2GB RAM, 20GB SSD v ceně €2.99 za měsíc. 4. Volume (externí disk): Nevytváříme externí disk. 1. TIP: Pokud vytvoříme VPS o velikosti SSD 20GB a potřebujeme více dat, nemusíme hned měnit velikost SSD na serveru, ale můžeme připojit k serveru externí disk. Má to jednu velkou výhodu a jednu menší. Velkou výhodou je, že v případě zvyšování výkonu (např. z 1CPU a 2GB RAM na 4CPU 8GB RAM) můžeme zvolit možnost, že nechceme navyšovat i velikost SSD – tedy SSD zůstane na hodnotě 20GB. Takové rozhodnutí nám v budoucnu umožní i krok zpět a tedy snížení počtu VCPU a RAM. Takto můžeme ušetřit nemálo finančních prostředků, pokud potřebujeme zvýšit výkon VPS jen dočasně, ne natrvalo (např. pokud je aplikace přetížena jen v období Vánoc). 5. Network (síť): Nevytváříme síť, protože nevytváříme skupinu serverů, které potřebujeme mít na jedné síti (např. pokud bychom potřebovali zvlášť VPS pro webserver a databázový server). 6. Additional features (další možnosti): V případě možnosti User data nespekulujeme (zatím). To se nám může hodit tehdy, chceme-li některé činnosti automatizovat, například automaticky přidat uživatele do systému, spustit různé skripty po instalaci a podobně. Backups jsou pravidelné zálohy, což je nutnost na produkčním serveru, kde běží ostrá aplikace. Tato služba je však zpoplatněna – 20% z ceny našeho serveru. Pokud tedy vytváříš produkční server, nafurt, tak doporučuji i se zálohami. Pokud jen testuješ, tak je to na tobě 😉 . 7. SSH Key (SSH klíč): Pokud máš zkušenosti s *nix systémy, možná máš vytvořený svůj id_rsa.pub klíč. Pokud ano, tady ho můžeš použít a tak se autentifikovat při připojování k serveru. V opačném případě (a to je náš případ) ti bude zasláno heslo k root uživateli na tvůj email. Tady tedy nespekulujeme a zatím nezaškrtneme tuto možnost. 1. TIP: Povolit vzdálený přístup pro root uživatele není bezpečné a používá se pouze pro prvotní nastavení serveru (první přihlášení do nového VPS). Jedním z prvních kroků po přihlášení se do nového VPS by mělo být vytvoření vlastního uživatele, který se bude přihlašovat pomocí klíče (ne hesla) a zakázání vzdáleného přístupu pro root uživatele. To bude také náš postup. 8. Name (Název): Toto je název serveru, který je zobrazen v administračním panelu hetzner, ale iv konzole po připojení k serveru přes SSH protokol. TIP: Vzpomeň si na nějaké názvy světů, postav z tvých oblíbených počítačových her, komiksů nebo filmů 😎 . Hodně čtení kvůli pár klikům. Nastavení serveru tedy může vypadat i takto:[Nastavenie parametrov VPS.] První SSH spojení Po potvrzení nastavení chvíli počkáme na spuštění nové instance našeho VPS. Zároveň nám Hetzner doručí email s informacemi o IP adrese, na kterou se budeme připojovat a heslem pro root uživatele. Tak zkontroluj email a pojď se přihlásit na server přes SSH. Jaký program použít k přihlášení přes SSH? Pro MacOS je to Terminal nebo iTerm. V případě linuxu (jakéhokoli) je to velmi podobné MacOS - tedy opět Terminal. Uživatelé Windows mohou použít pro SSH připojení program Putty, případně nainstalovat WSL doplněk a použít WSL terminal. Napiš nám pokud se setkáš s nějakým problémem, pořešíme. Z emailu jsem se dozvěděl, že IP mého serveru je 78.47.244.57 a heslo k uživateli root je ss3PgfWnHwxUhUaKEEr9 (ani nezkoušej, server v době čtení tohoto textu již nebude existovat).[Email s autorizáciou do nášho VPS.] TerminalPříkaz ssh, který použijeme v MacOS, Linux nebo WSL terminálu má následující syntax: ssh pouzivatel@ip_servera Tedy v našem případě: ssh root@78.47.244.57 Terminál si vyptá heslo, můžeme ho jen zkopírovat a přilepit. Při zadávání hesla do terminálu se nezobrazují žádné hvězdičky ani odezva. Proto jen potvrdíme příkaz klávesou Enter. Pokud se na server připojujeme poprvé, SSH se zeptá, zda chceme server uložit do seznamu SSH serverů. Napíšeme yes a spojení se v případě správného hesla úspěšně naváže:[Image] První připojení k serveru přes SSH. Při prvním přihlášení je nutné změnit heslo uživatele root. Zadáme staré heslo a vytvoříme nové. Hotovo. Náš nový VPS server Ubuntu 20.10 je vytvořen. Co dál?V další části blogu budeme pokračovat s nastavením našeho serveru: 1. vytvoříme si na lokálním počítači SSH klíč 2. vytvoříme na serveru vlastního uživatele a nastavíme přihlašování přes SSH klíč 3. zajistíme server pomocí firewallu, fail2ban a jiných nástrojů 4. nainstalujeme a spustíme webový server (nginx) 5. nainstalujeme a spustíme databázový server (postgresql, pokud budeš potřebovat tak i MySQL) 6. nainstalujeme závislosti (git, nodejs, ...) Ve třetí části budeme řešit deploy naší aplikace na VPS: 1. koupíme doménu a nasměrujeme ji na server 2. naklonujeme naši aplikaci na server, spustíme ji pod doménou a vytvoříme k ní službu (systemd service aby se automaticky spustila při případném restartu serveru) 3. pomocí certbot nastavíme doméně SSL certifikát a zpřístupníme aplikaci pod HTTPS 4. pomocí GithubActions nastavíme continous integration tak, aby se po push do main branche spustily automatizované testy a v případě bezchybnosti se aplikace rovnou nasadí do produkce Hodně roboty máme. Ale hodně se také naučíme. Čtvrtá část není.
Co má společného Picasso a WordCamp Košice 2020?
Události
26.02.2020
Skillmea

Co má společného Picasso a WordCamp Košice 2020?

WordCamp je nezisková konference, která se pořádá v 75 městech po celém světě. Je určena zejména fanouškům redakčního systému WordPress, zároveň má však značný přesah do marketingu, podnikání i osobního života. Rozvíjí znalosti a dovednosti, které jsou v dnešní IT době velmi žádané. Pablo Picasso byl významný umělec 20. století, který měl mnoho talentů. Možná o nich ze začátku ani nevěděl, ale postupným tvořením a rozvíjením se z něj stal maestro. Tak jako Picasso, i ty máš v sobě různé talenty, ale musíš je objevit a rozvíjet.[Image] Díky konferenci WordCamp Košice 2020 máš možnost získat znalosti a dovednosti o používání a škálování systému WordPress, poznat příběhy lidí z WordPress komunity, můžeš se stát součástí této komunity – objev a rozviň svůj #wordpresstalent. „Třetí ročník WordCampu v Košicích s sebou opět přináší nové změny, kterými se snažíme zvyšovat úroveň konference. Jednou z těch větších jsou nové prostory - Kasárny/Kulturpark. Ty se nacházejí v centru města, jen pár minut chůze od Hlavní ulice.“, uvedli organizátoři konference.   Už 16. května tě v prostorách Kasáren/Kulturpark čekají zajímavé přednášky i workshopy z různých oblastí tvorby, používání či propagace webu. Tématické okruhy přednášek a workshopů se budou střídat, takže pokud si např. hardcore dev, budeš mít program vystaraný na celý den. Learn2Code má rádo WordPress a proto jsme hrdým partnerem této konference. Ahoj a vidíme se 16.5.2020 v Košicích na WordCampu.
Jak zjistit, zda je číslo zadané ze vstupu prvočíslem?
Tipy a triky
16.10.2019
Skillmea

Jak zjistit, zda je číslo zadané ze vstupu prvočíslem?

V 15. kapitole online kurzu vyššího programovacího jazyka C++ úrovně Elementary II najdete mezi zadáními praktických příkladů pro domácí procvičení i úlohu, ve které máte najít největší společný dělitel dvou čísel a také úlohu, ve které máte najít nejmenší společný násobek dvou čísel nebo jejich největší společný dělitel.   Sáhnete-li do osnov matematiky druhého stupně základní školy někde do 6. nebo 7. ročníku, zjistíte, že klíčem k vyřešení těchto dvou úkolů je rozklad obou čísel na součin prvočísel. Úkoly patří z hlediska logiky a analytického myšlení mezi začátečnické. Přesto vím, že jsou náročnější. Právě proto jsem se rozhodl napsat tento blog. V tomto blogu nechci řešit tento úkol za vás, ale alespoň bych vám rád podal návod, jak zjistit, zda je načtené číslo ze vstupu prvočíslem. Tento úkol je jeden z dílčích úkolů, které je třeba řešit při dvou zmíněných příkladech, jejichž řešení jste dostali za úkol najít. Ti, kteří zapomněli, co je prvočíslo, ozřejmím i tento pojem. Prvočíslo je celé kladné číslo, které je dělitelné pouze jednotkou a svojí vlastní hodnotou. Budeme se tedy pohybovat pouze v množině kladných celých čísel. Příkladem prvočísla může být např. číslo 5, protože je dělitelné pouze číslem 1 a 5. dalšími příklady jsou 2, 3, 7, 11, 13, 17 atp. Samotné číslo 1 se za prvočíslo nepovažuje. Řekněme, že máme číslo 60, jeho rozklad na součin prvočísel je 2 x 2 x 3 x 5. Už z rozkladu je zřejmé, že jej můžeme vynásobit číslem 1, nic by to totiž nezměnilo na výsledku, pořád byste dostali číslo 60. Vidíte , a právě proto se matematici dohodli, že 1 prvočíslem nebude, nemá totiž již žádný vliv v součinu prvočísel, jehož výsledkem je nějaké číslo. Takže bez zbytečných dalších prázdných frází přejdu rovnou k věci. Následuje tedy zdrojový kód v jazyce C++, který řeší titulek tohoto blogu: 01: #include <iostream> 02: using namespace std; 03: 04: int main() 05: { 06: int iNumb; 07: 08: cout << "Zadaj lubovolne cele kladne cislo: "; 09: cin >> iNumb; 10: cout << endl; 11: 12: bool flag = true; 13: 14: if (iNumb == 1) 15: { 16: flag = false; 17: } 18: else 19: { 20: for (int i = 2; i <= iNumb / 2; i++) 21: { 22: if (iNumb % i == 0) 23: { 24: flag = false; 25: break; 26: } 27: } 28: } 29: 30: if (flag) 31: { 32: cout << "Cislo " << iNumb << " je prvocislo !" << endl; 33: } 34: else 35: { 36: cout << "Cislo " << iNumb << " nie je prvocislo !" << endl; 37: } 38: 39: cout << endl; 40: 41: cin.get(); 42: cin.get(); 43: 44: return 0; 45: } Na řádku 01 je uvedena direktiva preprocesoru #include, jejímž parametrem je standardní knihovna iostream. Potřebujeme ji z důvodu používání objektů cout, cin a manipulátoru endl. Na řádku 02 uvádíme v platnost jmenný prostor std pro celý zdrojový soubor .cpp. Zmíněné objekty cout, cin a manipulátor endl je zároveň součástí tohoto prostoru. Na řádku 04 je uvedena funkce main i se svým návratovým typem, kterým je int (integer). Tuto funkci volá operační systém. Na řádku 05 je uvedena levá programová závorka, kterou začíná tělo funkce main. Na řádku 06 je deklarována proměnná iNumb pro datový typ int. Tato proměnná reprezentuje hodnotu celého kladného čísla, o kterém chceme zjistit, jestli patří mezi prvočísla. Na řádku 08 je pomocí objektu cout zapsán na výstup konzolové aplikace textový řetězec, který vyzve uživatele k zadání hodnoty kladného celého čísla, jehož vlastnost prvočísla testujeme. Na řádku 09 je prostřednictvím objektu cin načtena tato hodnota do proměnné iNumb. Na řádku 10 je prostřednictvím objektu cout a manipulátoru endl přesunut kurzor konzolové aplikace na další řádek. Na řádku 12 je deklarována proměnná flag a zároveň inicializována na hodnotu true. Tato proměnná nám bude po otestování načteného čísla ukládat informaci, zda je číslo prvočíslem nebo ne. Z hlediska logiky algoritmu je nutno proměnnou flag inicializovat před testováním na hodnotu true. Algoritmem budeme totiž testovat, zda načtené číslo mezi prvočísla nepatří. Používá se zde tedy postup vylučovací. Na řádku 14 je testována podmínka, zda v proměnné iNumb není hodnota 1. Pokud ano, program pokračuje kladnou větví a do proměnné flag se na řádku 16 zapíše hodnota false, která reprezentuje stav, kdy načtené číslo prvočíslem není. Na řádcích 13 a 15 jsou pouze uvedeny programové závorky, které uzavírají blok kódu uvedený v kladné větvi. Pokud zmíněná podmínka splněna není, pokračuje se zápornou větví. Blok kódu v záporné větvi uzavřen programovými závorkami na řádcích 19 a 29. Na řádcích 20 až 27 je uvedeno jádro algoritmu, který testuje vlastnost prvočísla u čísel větších než 1. A v čem spočívá idea jádra algoritmu? V každé iteraci cyklu zjišťujeme, zda je číslo dělitelné hodnotou v proměnné i. Nejmenší číslo, kterým může být načteno testované dělitelné, je číslo 2 (viz. řádek 20 – for smyčka) a proto iterujeme od této hodnoty. Proměnnou i postupně inkrementujeme (viz. řádek 20 – for smyčka) a testujeme, zda je hodnota proměnné iNumb dělitelná beze zbytku pomocí operace modulo na řádku 22, která je umístěna v příkazu if. Pokud je číslo dělitelné hodnotou v proměnné i beze zbytku, tak se na řádku 24 uloží do proměnné flag hodnota false, což reprezentuje stav, kdy načtené číslo není prvočíslem. Proměnná i se inkrementuje po iNumb/2 (viz. řádek 20 – for smyčka). Důvodem je fakt, že žádné celé kladné číslo nemůže být přece dělitelné beze zbytku číslem větším než je jeho polovina. Nenajde-li se tedy číslo, kterým je načtená hodnota testovaného čísla dělitelná beze zbytku, neuloží se do proměnné flag hodnota false, čili po ukončení v ní bude uložena hodnota true, což reprezentuje stav, kdy je načteno testované číslo prvočíslem. Na řádku 25 je uvedeno klíčové slovo break a to z toho důvodu, že v případě nalezení jednoho čísla, které dělí načtené testované číslo beze zbytku, není nutné hledat další dělitele. Testované číslo už prvočíslo totiž být nemůže a proto násilně ukončíme smyčku for, urychlíme program, který následně přejde až na řádek 30. Zde se už jen testuje hodnota v proměnné flag. Pokud je v této proměnné uložena hodnota true, tak se zapíše na výstup konzolové aplikace pomocí objektu cout informace o tom, že je načteno testované číslo prvočíslem (viz. řádek 32), pokud false tak informace, že prvočíslem není. Na řádcích 41 a 42 je již jen načítán vstup z konzolové aplikace pomocí objektu cin, což slouží k tomu, aby se hned program neukončil a byl zobrazen výsledek v okně konzole, dokud uživatel nezatlačí libovolná klávesa. Na řádku 44 vrací funkce main operačnímu systému hodnotu 0, která indikuje stav správného ukončení aplikace. Na řádku 45 je ukončeno tělo programu pravou programovou závorkou. Algoritmus, který jsem navrhl a implementoval v jazyce C++, není ještě optimální. Je však pro účely kurzu úrovně začátečník dostačující. Mezi prvočísly lze ještě sledovat určité vlastnosti, nebudu je však tomto bloku vzpomínat, abych příliš posluchače úrovně začátečník zbytečně nadměrně nezatížil. Optimální algoritmus však budu ještě publikovat a rozebírat v dalším bloku a v kurzu, který bude zaměřen i na matematiku. Autorem blogu je Marek Šurka, lektor online kurzů jazyka C++ na Learn2Code.
Objective-C nebo Swift? Který jazyk zvolit?
Vzdělávání
03.09.2014
Marián Kristeľ

Objective-C nebo Swift? Který jazyk zvolit?

Při tvorbě kurzu iOS Developer jsme rozhodovali, který z jazyků si vybrat jako výukový. Z mého pohledu bylo toto rozhodnutí relativně jednoduché, ale pro úplnost si shrňme důvody, proč to nakonec vyhrál jazyk  Swift .[Image] Apple nám na letošní WWDC představil svůj nový programovací jazyk Swift. Ten by měl být rychlejší bezpečnější modernější a mnoho dalšího. Já osobně za jeho hlavní výhody pro začátečníky považuji jednodušší syntaxi, Playground a interaktivní debugovací konzoli. Jednodušší syntaxSkoro vždy, když jsem si povídal s nějakým vývojářem, který Objective-C viděl, nebo se s ním pokoušel pracovat, přišla řeč i na syntaxi tohoto jazyka. Nepadlo na její adresu snad jediné pozitivní slovo. Kopec hranatých závorek, názvy metod s mezerami, hvězdičky a množství zbytečného kódu kolem. Také mi dost dlouho trvalo, než jsem se s tímto stylem zápisu sžil, i když nakonec jsem mu přišel na chuť. Swift je svojí syntaxí velmi podobný rozšířeným jazykům jako například. JavaScript, C, Ruby, atd., takže pro lidi, kteří už v něčem programovali (a nebylo to nic exotického :-)) bude seznámení se Swiftem jednoduché. Ti, kteří nikdy neprogramovali to budou mít také mnohem jednodušší ve srovnání s Objective-C. Swift od nás, mimo jiné, nepožaduje rozdělovat zápis tříd do dvou samostatných souborů, importovat soubory s deklaracemi nebo si lámat hlavu se správou paměti. PlaygroundXCode ve verzi 6 disponuje novým nástrojem s názvem Playground. Jeho účel vyplývá z jeho názvu. Slouží k „hraní si“ s kódem. Obrazovka je rozdělena na dvě části. Vlevo uživatel píše svůj kód a vpravo hned vidí výsledek. Začínající programátor tedy nebude muset řešit, jaký typ aplikace vytvořit, co všechno kde zaškrtnout a zvolit. Stejně tak nebude muset po každé změně znovu spouštět aplikaci. Je to ideální způsob, jak se s jazykem seznámit a poznávat jej do detailů. Playground není omezen pouze na textový výstup, ale poskytuje také grafické prostředí. Stejně tak zobrazuje programátorovi i případné chyby a upozornění, že něco by mohl udělat jinak resp. lepší.[Image] Interaktivní debugovací konzolaBěžně se při vývoji aplikace stává, že napíšu kus kódu, aplikaci spustím, abych viděl, co jsem vlastně vytvořil a následně zjistím, že se nechová přesně tak, jak bych si představoval. Nebo si jen chci ověřit, co by se stalo když... Doposud jsem to mohl řešit tak, že po každé drobné změně jsem aplikaci znovu spustil a ověřil si, zda se daná změna projevila tak, jak jsem očekával. Tato metoda je náročná v případě, že funkcionalita, kterou potřebuji prověřit je „vzdálená“ několika tapnutí na obrazovku, nebo je závislá na specifickém stavu aplikace resp. prostředí se kterým aplikace pracuje, jako např. vzdálený server. Se Swiftem přichází také  Read-Eval-Print-Loop (REPL) . Je to debugovací konzole, která poskytuje interaktivní verzi Swiftu, pomocí které lze komunikovat s běžící aplikací, nebo si jen ověřit své nápady ve skriptovacím prostředí XCode nebo systémové konzole. Již zanedlouhoProti použití Swiftu v našem kurzu momentálně říká v podstatě jen to, že ještě není ve své finální podobě a vývojáři v Apple jej mohou ještě decentně upravit. Osobně si myslím, že pokud se tak stane, bude to v minimálním rozsahu a náš kurz to neovlivní. Autorem tohoto blog postu je lektor kurzu iOS Developer Števo Ľupták. Máte-li nějaké dotazy týkající se Swiftu nebo kurzu, napište je do komentářů.
10 programátorských C++ úkolů pro začátečníky
Vzdělávání
07.10.2021
Skillmea

10 programátorských C++ úkolů pro začátečníky

Naučit se C++ není snadný úkol, když si však chceš uchovat své znalosti v dobré formě, vyžaduje to praxe. Jedna věc je naučit se základy programování v C++ a syntaxi jazyka, ale něco úplně jiného je použít tyto znalosti k tvorbě reálných programů v jazyce C++. V tomto článku si řekneme, kde byste mohli použít jazyk C++ ve své další práci a proč je to stále používaný programovací jazyk. A také ti v článku přineseme 10 programátorských úkolů v C++, na kterých si jazyk procvičíš. K čemu se používá C++?C++ je jedním z nejpoužívanějších programovacích jazyků. Lepší otázkou by tedy mohlo být, k čemu se C++ nehodí? 🙂 C++ je nejčastěji zvolen kvůli své schopnosti efektivně provozovat velké aplikace. Můžete jej také použít k doladění toho, jak program používá svůj hardware. C++ naleznete v operačních systémech, vašich oblíbených multiplayer hrách, připojování na databáze a dokonce i v nových technologiích VR a AR. Kromě toho je C++ populární při tvorbě databázových aplikací, ve finančnictví a ekonomice, využívá se ve vestavěných systémech, real-time systémech, při zpracování velkého objemu dat, dále v robotice a kybernetice, v počítačové grafice (zpracování obrazu, grafický rendering) či komunikačních systémech. Mnoho vývojářů si vybírá C++, neboť dokáže efektivně spouštět jejich programy. Komunita C++ vývojářů je také poměrně široká, umožňuje to jednodušší spolupráci a pomoc, když se člověk při něčem zasekne. 10 C++ úkolů pro začátečníkyKe splnění úkolů použij libovolný editor, který ti vyhovuje. Stanov si cíl a časový horizont, ve kterém chceš úkoly splnit. Klidně udělej jeden úkol každý den, některé úkoly budou možná náročnější a zaberou více času. Začněme s úkoly. 1. Vypište „Hello world“ správuV kterémkoli editoru, se kterým jste se rozhodli pracovat, zkontrolujte, zda můžete napsat kód, který zobrazí tento řetězec znaků. I když se to může jevit jako jednoduchý úkol, zamyslete se nad všemi způsoby, jakými budete chtít zobrazovat zprávy v budoucích programech, které vytvoříte. Tisk chybových zpráv nebo potvrzovacích zpráv pro různé části kódu je důležitý při ladění programu. Mohou se také objevit výzvy nebo výsledky, které budete chtít vytisknout a sdílet s koncovým uživatelem. Vypisování zprávy je dovednost, kterou budete používat poměrně často. 2. Vytvořte program, který sečte dvě celá číslaZjistěte, zda dokážete vytvořit program v jazyce C++, který načte dvě celá čísla ze vstupu klávesnice a sečte je. Výsledek by měl vrátit součet. Jedná se sice o základní kalkulátor, představte si ale jeho sílu ve velké databázi, kde byste pomocí smyček mohli přidávat obrovské množství údajů. Bonusový úkol: Rozšiřte tento program o součet dvou matic (nezáleží, kolik bude mít prvků), abyste vytvořili pole součtových prvků. Máte-li zájem pracovat ve finančním odvětví jako vývojář, pomocí programů, jako je tento, můžete vaší firmě vypočítat důležité údaje. 3. Napište program, který převádí pixely na centimetryMěniče jednotek jsou malé pomocné nástroje. Můžete vytvořit program v jazyce C++, který bude zaznamenávat rozměry v pixelech a vyplivuje přesně stejné měření v centimetrech? Pokud uvažujete o kariéře v oblasti datové vědy, budete muset být dobrý v čištění a formátování údajů. Konverze dat na jinou měrnou jednotku je dobrým praktickým testem. 4. Naprogramujte nástroj pro konverzi teplotyPodobně je užitečný program pro sestavení převodu teploty na jinou měrnou jednotku. Zjistěte, zda můžete vytvořit program, který bude měřit zadanou teplotu ve stupních Celsia a vrátí stejnou teplotu ve Fahrenheitu. 5. Vytvořte multiplikátor s pohyblivou řádovou čárkouVzhledem ke dvěma číslům s pohyblivou řádovou čárkou vytvořte program C++, který vám poskytne součin těchto dvou. Chcete posunout věci na střední úroveň? Na této výzvě vsaďte tím, že povolíte libovolný počet vstupů (nebo jejich množství) a vrátíte součin všech vstupních čísel s pohyblivou řádovou čárkou. 6. Převeďte řetězec na všechna velká písmenaMůžete se rozhodnout, jak dlouhý nebo krátký bude váš vstupní řetězec. Tento program by měl brát zadaná malá písmena a převádět je na velká písmena. Jedná se o velmi užitečný nástroj pro správu databáze nebo čištění dat. 7. Vytvořte kalkulačku, která bude počítat průměrNapište program v jazyce C++, do kterého zadáte pole čísel a výstupem bude jejich průměr. Bonusem by mohla být kalkulačka, která jako vstup použije matici a poskytne průměr každého řádku nebo sloupce. 8. Vytvořte funkci, která zkrátí řetězec na 10 znakůMůžete sestrojit funkci, která přijímá jako vstup řetězec a vrací zkrácenou verzi? Existuje mnoho aplikací pro ořezávání dat, takový nástroj umí odstranit chyby v databázi. Například v údajích o adrese zákazníka by jakékoli PSČ, které má více než pět znaků, bylo nesprávné. Ořezávání celých souborů pomocí tohoto programu může pomoci udržet databáze se správnými údaji. 9. Naprogramujte program, který bude provádět třídění pole číselných prvkůVzhledem k pole, řekněme, 10 čísel, můžete vytvořit program, který vrátí pole v číselném pořadí od nejmenšího čísla po největší? Seřazení dat je účinný způsob využití jazyka C++. Pokud vám vyhovuje malé pole, zkuste pracovat s větším – nebo dokonce s maticí. Třídící algoritmus necháváme na řešiteli. 10. Napište program, který počítá duplicitní položky polePři čištění dat je třeba odstranit duplicitní údaje. V této krátké úloze tedy vytvořte program, který vrátí počet prvků v poli, které jsou duplikáty. Nezapomeňte každý den pracovat na svých programátorských dovednostech, abyste postupně dosáhli vytouženého cíle a stali se dobrými programátory.
Co je etický hacking?
Vzdělávání
20.12.2021
Skillmea

Co je etický hacking?

Slovní spojení etický hacking se na první pohled může jevit jako oxymoron. V tomto blogu ti však vysvětlíme, co je to etický hacking, na jakých principech je postaven, jak se liší od toho neetického hackingu a jak může být přínosný pro firmy. Když vznikl pojem „hacker“, popisoval softwarové inženýry, kteří vyvinuli kód pro sálové počítače. Nyní to znamená zkušeného programátora, který se pokouší získat neoprávněný přístup k počítačovým systémům a sítím využitím slabých míst v systému. Hackeři píší skripty, aby pronikli do systémů, prolomili hesla a ukradli data. I když se hackování stalo pojmem, který nejčastěji popisuje škodlivé a neetické aktivity, nemusí tomu tak být. Hacker může tyto dovednosti stále dobře využít. V tomto článku se podíváme na etické hackování a ukážeme ti, jak můžeš začít svou cestu stát se etickým hackerem. Co vlastně dělají etičtí hacker? Etický hacking je znám také jako white hat hacking nebo penetrační testování. Může to být velmi zajímavá kariéra, protože etičtí hackeři tráví svůj pracovní den učením se, jak fungují počítačové systémy, odhalováním jejich zranitelných míst a zkoušením vkrást se do nich beze strachu ze zatčení. Na rozdíl od neetických hackerů, kteří jsou obvykle motivováni finančním ziskem, etičtí hackeři mají za cíl pomoci firmám (ale i společnosti jako celku) udržovat jejich údaje v bezpečí. Firmy si najímají etické hackery, aby našli zranitelná místa ve svých systémech a aktualizovali chybný software, aby nikdo jiný nemohl použít stejnou techniku ​​k opětovnému proniknutí. Jako etickému hackerovi se ti buď podaří nabourat do systému a poté ho opravit, nebo se pokusíš nabourat do systému a nepodaří se ti to. Oba výsledky znamenají vítězství pro etického hackera a firmu, protože firemní síť a údaje jsou v konečném důsledku bezpečné. Řekněme si ještě jaký je rozdíl mezi etickým hackerem a penetračním testerem. Zatímco termín etický hacking lze použít k popsání celkového procesu hodnocení, provádění, testování a dokumentování založeného na množství různých hackerských metodologií, penetrační testování je jen jeden nástroj nebo proces v rámci etického hackingu. Hledají zranitelná místa Zranitelnost jsou bugy nebo chyby v softwaru, které lze využít k získání neoprávněného přístupu do sítě nebo počítačového systému. Mezi nejběžnější zranitelnosti patří: • zastaralý software, • nesprávně nakonfigurované systémy, • nedostatečné šifrování údajů. Některé zranitelnosti lze snadno otestovat, protože chyby již byly zdokumentovány. V těchto případech musí penetrační tester provést pouze skenování systému, aby zjistil, zda v systému existuje chyba a aktualizovat software. Další zranitelnosti však mohou být neznámé a penetrační tester použije skripty a další nástroje, aby maximálně otestoval systém a zjistil, jestli se nějaké chyby objeví. Ukazují metody používané hackery Etičtí hackeři se mohou vžít i do role učitele. Mnoho firem a zaměstnanců ví jen málo o hrozbách kybernetické bezpečnosti ao tom, jak jejich jednání může zabránit hrozbě nebo pomoci hackerovi ukrást data. Etičtí hackeři pořádají kurzy o kybernetické bezpečnosti a varují zaměstnance před novými hrozbami, když je objeví. Vzdělávání je obzvlášť účinné proti phishingu a jiným kybernetickým útokům typu sociálního inženýrství, které vyžadují, aby útočníkův cíl ​​(člověk) podnikl kroky, aby byla jeho hackerská aktivita umožněna. Když jsou zaměstnanci informováni o potenciální hrozbě, existuje větší šance, že ji bude možné zastavit dříve, než infikuje systém. Pomáhají předcházet kybernetickým útokům Etičtí hackeři také spolupracují s ostatními členy bezpečnostního týmu na vytvoření bezpečnější infrastruktury pro podnik. Etičtí hackeři vědí, jaké druhy hrozeb existují, a mohou týmu pomoci při výběru nástrojů a vytváření bezpečnostních politik, které mohou zabránit hrozbám, o kterých možná ještě ani nevědí. Mohou také pomoci s nastavením systémů pro zálohování a obnovu, které lze použít v nejhorším případě.[Image] Klíčové principy etického hackingu Hranice mezi black hat (nebo neetickým) hackingem a white hat (nebo etickým) hackingem se může zdát nejasná. Koneckonců, existuje také gray hat hacking, které se nachází někde mezi těmito dvěma. Jako etický hacker bys měl dodržovat několik zásad: • Dodržuj zákon: hackování je etické pouze tehdy, pokud máš povolení k provedení hodnocení bezpečnosti systému, který hackuješ. • Poznej rozsah projektu: chovej se jen v intencích smlouvy, kterou máš se společností. Zjisti přesně, co máš testovat a testuj pouze tyto systémy. • Nahlas všechna slabá místa: nahlas všechna slabá místa, která najdeš a navrhni způsoby, jak je opravit. • Respektuj jakékoli citlivé údaje: penetrační tester často testuje systémy, které uchovávají citlivé údaje a bude muset podepsat smlouvu o mlčenlivosti (NDA). Proč je etický hacking důležitý? Záměrným zjištěním zneužití a slabin v počítačových sítích organizace je v podstatě možné opravit je dříve, než je zneužije neetický hacker. Etičtí hackeři tedy pomáhají organizacím identifikovat a eliminovat hrozby zlepšováním celkové bezpečnosti IT v organizaci. Samozřejmě nejsou to jen údaje, které jsou v sázce, pokud jde o počítačovou kriminalitu. Ve zprávě Centra pre strategické a medzinárodné štúdie a spoločnosti McAfee v oblasti bezpečnostního softwaru z roku 2020 bylo zjištěno, že ztráty z počítačové kriminality dosáhly v roce 2020 přibližně 945 miliard USD. Jen pro srovnání, v roce 2018 to bylo zhruba 522 miliard USD, takže nárůst je znepokojivý. Tyto rostoucí náklady se připisují lepšímu vykazování, jakož i efektivnějším technikám hackerů. Kromě ztráty údajů a peněz může počítačová kriminalita poškodit veřejnou bezpečnost, poškodit ekonomiky a podkopat národní bezpečnost. Je zřejmé, že je nezbytné chránit organizace a jejich údaje a etické hackování může v této ochraně hrát klíčovou roli. Druhy etického hackingu Existuje několik etických hackerských metod a základních oblastí, které může profesionál použít. Níže uvádíme některé z nejběžnějších typů etického hackování: • Hackování webových aplikací. Webové aplikace jsou sdíleny přes síť (jako je internet nebo intranet) a někdy jsou založeny na prohlížeči. I když jsou pohodlné, mohou být zranitelné vůči útokům skriptů a etičtí hackeři takové slabiny testují. • Hackování webového serveru. Webové servery provozují operační systémy a aplikace, které hostují webové stránky a připojují se k back-end databázím. V každém bodě tohoto procesu existují potenciálně slabá místa, která musí etičtí hackeři otestovat, identifikovat a doporučit opravy. • Hackování WIFI bezdrátové sítě. Všichni známe bezdrátové sítě – skupinu počítačů, které jsou bezdrátově připojeny k centrálnímu přístupovému bodu. S touto vymožeností však přichází řada potenciálních bezpečnostních nedostatků, které musí white-hat hackeři hledat. • Hackování systému. Přístup k zabezpečené síti je jedna věc, ale hackování systému se zaměřuje na získání přístupu k jednotlivým počítačům v síti. Etičtí hackeři se přesně o to pokusí a zároveň navrhnou vhodná protiopatření. • Sociální inženýrství. Zatímco ostatní metody se zaměřují na přístup k informacím prostřednictvím počítačů, systémů a sítí, sociální inženýrství se zaměřuje na jednotlivce, lidi. Často to znamená manipulaci lidí, aby předali citlivé údaje nebo poskytli přístup, aniž by měli podezření na špatný úmysl. Jaké pracovní pozice může obsadit etický hacker? Firmy všech velikostí a odvětví se obávají bezpečnosti své sítě. Pokud stále dochází k narušení bezpečnosti a firmy budou mít stále citlivé údaje, etičtí hackeři budou žádáni, takže trh práce pro ně vypadá dobře iv budoucnosti. Některé větší podniky mají mezi zaměstnanci etických hackerů, kteří celý den provádějí bezpečnostní testy a penetrační testy. V jiných společnostech může být etické hackování pouze součástí práce, zatímco většinu času trávíte konfigurací sítí a nastavováním nových systémů. Některé z nejpopulárnějších pozic etických hackerů zahrnují: • Penetrační tester • Security Analyst • Etický hacker • Bezpečnostní konzultant • Bezpečnostní inženýr • Bezpečnostní architekt • Analytik informační bezpečnosti • Manažer informační bezpečnosti Závěr Pokud tě kariéra v tomto odvětví zatím láká, možná tě také zajímá, jak se naučit etický hacking. Většina etických hackerů, penetračních testerů a white-hat hackerů se pustí do etického hackingu, protože je zajímá, jak funguje internet a informační bezpečnost. Jedna věc, kterou musí etický hacker vědět, je kybernetická bezpečnost. Jelikož etický hacker se zabývá i softwarovými zranitelnostmi a možná bude muset psát skripty, které mu pomohou s tímto úkolem, budeš se muset naučit i nějaký programovací jazyk (pravděpodobně to bude více jazyků). Pro etické hackery jsou doporučené jazyky jako Python, C, C++ nebo JavaScript. Práce s terminálem, scriptování v Bashi jsou také silně doporučeno, stejně tak nástroje pro testování zranitelnosti jako Metasploit a OpenVAS. Mnoho užitečných nástrojů a postupů etického hackingu se naučíš v našem online kurzu Úvod do etického hackingu. Nejdůležitějším požadavkem je však zvědavost. Takže buď zvědavý a hodně štěstí při etickém hackování!
Lambda výrazy v Javě - část I.
Tipy a triky
21.07.2019
Skillmea

Lambda výrazy v Javě - část I.

V tomto a v následujících článcích se podíváme na zoubek lambda výrazem. Budeme si je vysvětlovat zcela dopodrobna, abychom je pochopili a využívali. Obsahově se zaměříme na tyto oblasti: 1. porozumění lambda výrazům, 2. použití lambda výrazů, 3. funkcionální rozhraní (functional intefaces), 4. reference metod (method references), 5. vylepšení na kolekcích. Proč použít lambda výrazy? Řekneme si pár odrážek, proč je používat. • povoluje použít takzvané funkcionální programování, což je dosud něco, řekl bych divné, protože Java je objektově orientovaný jazyk, • zpřehledňují kód, lepší čitelnost v některých případech, kde bychom použili několik zbytečných řádků, abychom napsali totéž. Možná se zamýšlíš, proč používat funkcionální programování v jazyce, který je objektově orientovaný. Už není OOP tak dobré? Už zanikne? Ne, nezanikne a java je a myslím si, že pořád bude objektově orientovaný jazyk. Toto funkcionální programování ber jen jako další nástroj, který jako vývojář máš ve své ruce. U OOP jsou vývojáři zvyklí přemýšlet v podstatných jménech, v objektech, ve třídách. Například Pes štěká. Štěkání je součástí Psa. Tím pádem metoda, která bude zajišťovat psí štěkání, je součástí třídy Pes. Někdy ale potřebuji kus kódu, metodu – nebo jinak řečeno funkci, která nepatří do žádné třídy speciální. Podsunutí chování do metodyUvažuj nad tím, že máš metodu, která na konzoli vypíše nějaký text. Například staré známé Hello World. Pro tento účel bychom si vytvořili třídu, které by byla metoda pro vypsání Hello Word. Tuto metodu bychom pak vypsali na konzoli v main metodě. Příklad v idea Lambda2. Naším úkolem bude nyní předělat tento kód tak, abych dané metodě podsunul chování a uvnitř té metody se jen provede to chování. Ukažme si na příkladu. Takže jsme udělali, co jsme chtěli. Do metody jsme podsunuli chování jako argument a poté jsme jej provedli. Ale ne tak přesně. Do metody jsme podsunuli něco, co má v sobě chování. Podsunuli jsme implementaci rozhraní, která má v sobě metodu, která provede očekávané chování. Právě tomuto chtějí lambda výrazy zabránit. Chtějí zabránit tomu, abychom podsouvali objekty, ale chtějí, abychom podsouvali funkce. Namísto tohoto: public void printHelloWord(IHelloWord helloWord){ helloWord.sayHello(); } chceme do metody vložit nějakou akci, nějakou funkci. Tento přístup umožňuje chovat se k funkcím jako k hodnotám. public void printHelloWord(funkcia){ funkcia(); } Pokud napíšu String jméno = “Jaro”; tak jsem hodnotu Jaro přidělil do proměnné jméno. Nyní jsme ale nastínili, že do nějaké proměnné bychom chtěli vložit blok kódu, který prezentuje naši funkci. Takže blok kód by se stal hodnotou a ta by se dala vložit do proměnné. Takže tam, kde používám danou proměnnou, tak tam používám i danou funkci, která je v ní. Pro představivost, chceme dosáhnout tohoto: premennaSFunkciou = public void sayHello() { System.out.println("HelloWord impls"); } Toto je možné pomocí lambda výrazů. Nejprve se ale podívejme na tento kus kódu a řekněme si, co nepotřebujeme: • public – označuje mi, jestli je něco veřejně dostupné mimo třídu, dává smysl v kontextu třídy, tady ale přidělujeme do proměnné, tak to nepotřebujeme, neboť funkce je dostupná tomu, kdo pracuje s danou proměnnou. premennaSFunkciou = void sayHello() { System.out.println("HelloWord impls"); } • název sayHello = pokud přistupujeme k hodnotě, která je v proměnné, tak k ní přistupujme názvem proměnné, v našem případě je název proměnné proměnnou SFunkcí, takže ani druhé jméno nepotřebujeme. premennaSFunkciou = void () { System.out.println("HelloWord impls"); } • typ návratové hodnoty – při psaní lambda výrazů nemusím psát, jaký je návratový typ, překladač ví, podle nitra metody, co se vrací. premennaSFunkciou = () { System.out.println("HelloWord impls"); } Toto ale ještě není lambda výraz. Pokud napíšu šipku (pomlčka - a znaménko větší >) mezi závorky a blok kódu, tak tehdy jsme vytvořili labmda výraz. premennaSFunkciou = () -> { System.out.println("HelloWord impls"); } Pokud metoda obsahuje jen jeden řádek, tedy ne více řádků, tak lze dále upravit tento výraz a to tak, že odstraníme složené závorky. Pokud je více řádků, tak složené závorky ponecháme. premennaSFunkciou = () -> System.out.println("HelloWord impls"); Teď si už umíme představit, udělat, to, že pošleme funkci jako parametr metody a uvnitř spustíme danou funkci. public void printHelloWord(------){ -----(); }Do metody můžeme vložit jako argument při volání metody přímo lambda výraz. printHelloWord(() -> System.out.println("HelloWord impls")){ PříkladyNapiš metodu, která vezme jako parametr číslo a vynásobí ho 5ti.nasobokPiatichFunkcia = public int nasobokPiatich(int i){ return i*5; }Přepíšeme to na lambda výraz, vyškrtám všechno, co nepotřebuji. Tedy název, návratovou hodnotu a modifikátor přístupu. nasobokPiatichFunkcia = (int i){ return i*5; }Napíšeme tam šipku a jelikož řádek je tam jen jeden, tak umíme odmazat kudrnaté závorky. nasobokPiatichFunkcia = (int i) -> return i*5;Tady máme další pomůcku, nebo možnost škrtat. Jelikož java kompilátor zná vnitřek metody a ví, co má vrátit, můžu vymazat i return. nasobokPiatichFunkcia = (int i) -> i*5;Když máme jednořádkový lambda výraz bez složených závorek, tak je nezbytné nepoužívat return. SčítáníscitaniFunkce = (int a, int b) -> a+b;  OdčítáníodcitaniFunkce = (int a, int b) -> a-b; Bezpečné děleníbezpecneDelenieFunkcia = (int a, int b) -> { if(b==0) { return 0 ; } return a/b; };Spojení řetězcůstringJoin = (String x, String y) -> x.concat(y);  Stále jsme v Javě. Tedy v typovém jazyce. Jaké jsou typy těchto proměnných, které v sobě drží lambda výrazy? Video:Pokud tě více baví poslouchat a dívat, tak si můžeš prohlédnout sérii videí o lambda výrazech v kurzu Java pro pokročilé. ZáverPokud by ses chtěl dozvědět o Javě víc nebo jsi nepochopil všechno, tak jsem i pro tebe připravil online kurzy o Javě na https://skillmea.sk. Pokud se chceš o mně dozvědět více, tak klikej na jaroslavbeno.sk nebo mě sleduj na sociálních sítích – youtube, facebook, instagram, linkedin.  Zakomponuji i malou reklamu. Ve spolupráci s tvůrci židle Neseda.com ti nabízím s kódem/kuponem JaroslavBeno 10% slevu (aplikovatelná i na zlevněnou židli). Já jsem Jaro a my se vidíme, slyšíme-li Bůh dá příště. Čaves.