navody

Konštanty a vlastné typy v Go

Sunday, Nov 22, 2020 | by Lenka | navody programovanie const enum type

V Go je veľmi jednoduché vytvoriť si vlastný typ (custom type), vytvoriť konštantu vlastného typu alebo enumerátor (enum). Konštanta (Constant) Ako už názov KONŠTANTA (constant) označuje niečo fixné - pevné/stálé, aj v programovacích jazykoch je to rovnaké. Keď je raz hodnota konštanty definovaná, už viac nemôže byť zmenená. V Go to platí rovnako. Konštanta v Go môže byť akýkoľvek z jednoduchých a zložených typov - celočíselná konštanta (integer), konštanta s plávajúcou desatinnou čiarkou (float, complex), znak (character), reťazec (string), pravdivostná konštanta (boolean).

Pokračovať v čítaní

Rozhranie v Go: Interface

Sunday, Nov 15, 2020 | by Lenka | navody programovanie interface

To, že je Go skvelý a výnimočný jazyk sme si už veľakrát dokázali. Poďme sa bližšie pozrieť na rozhranie (interface). Úvod Rozhrania v Go boli navrhnuté podľa protokolov z programovacieho jazyka Smalltalk. Ide o špecifikáciu jednej alebo viacerých metód ich názvom, parametrami a návratovými typmi, ktoré sú spoločné pre entity určitou zdieľanou vlastnosťou. Rozhrania však nešpecifikujú telo - správanie metódy. V súvislosti s Go rozhraniami sa môžeme stretnúť s pojmom Duck typing - ak to kráča ako kačka, ak to kváka ako kačka, tak to musí byť kačka!

Pokračovať v čítaní

Fraktálové obrázky v Go

Saturday, Oct 31, 2020 | by Nelo | navody programovanie image webserver complex concurrency

Fraktály sú dobre známe sebe-podobné množiny, ktoré vyzerajú podobne v rôznych úrovniach zväčšenia. Najznámejší fraktál nesie meno po svojom objaviteľovi, polsko-francúzsko-americkom matematikovi - Benoitovi Mandelbrotovi. V roku 1980, keď ako jeden z prvých použil počítačovú grafiku na zobrazovanie fraktálnej geometrie pomocou IBM strojov. V Go vďaka natívnej podpore komplexných čísel a knižníc na prácu s obrázkami vieme jednoducho vytvoriť web server, ktorý interaktívne generuje fraktálové obrazy do png. Vytvoríme si Go server, HTML a jednoduchý JavaScript, pomocou ktorého budeme hľadať zaujímavé štruktúry:

Pokračovať v čítaní

Štruktúry a rozhrania v Go

Sunday, Oct 25, 2020 | by Nelo | navody programovanie struct interface function pointer

Často potrebujeme zoskupiť dáta do typov, s ktorými sa ľahšie pracuje. V objektovo orientovaných programovacích jazykoch sa to rieši pomocou tried, ktoré zapuzdrujú dáta a metódy, ktoré nad nimi pracujú. Go ponúka objektovo orientovaný prístup, metódy a rozhrania, ale nepodporuje hierarchiu tried, podtriedy a dedenie. Vychádza z OOP princípu “composition over inheritance” a podporuje polymorfizmus prostredníctvom rozhraní, čím výrazne zjednodušuje štruktúru programov, zvyšuje flexibilitu a prepoužiteľnosť kódu. Štruktúry: struct Štruktúry sú hodnotové agregované typy.

Pokračovať v čítaní

Súbežné programovanie v Go

Sunday, Oct 18, 2020 | by Nelo | navody programovanie concurrency channels

Veľká výhoda Go je, že bolo od začiatku navrhované na jednoduché súbežné programovanie. Súbežnosť nie je paralelizmus, ale je nutným predpokladom k paralelizmu, druhým je bežať program na viacjadrových procesoroch. Gorutiny sú základom súbežného programovania v Go. Od systémových threadov sa líšia tým, že ich inicializačný zásobník malý (typicky 4KB namiesto 1MB) a môže dynamicky rásť a zmenšovať sa. Gorutiny majú taktiež menšiu réžiu ako thready a sú obyčajne multiplexované na menší počet systémových threadov, teda nie 1:1.

Pokračovať v čítaní

Spracovanie chýb a testovanie v Go

Tuesday, Oct 13, 2020 | by Nelo | navody programovanie chyby testovanie

Defekty patria neodmysliteľne k písaniu kódu. V knihe Code Complete Steve McConnell uvádza priemyselný štandard 15-50 defektov na 1000 riadkov kódu (KLOC) v teste a 5 defektov na KLOC v produkcii s nákladmi na testovanie $5 na riadok kódu. Microsoft aplikáciach vstupuje do testov 10-20 defektov na KLOC a do produkcie 0,5 defektov na KLOC. Defekty môžu mať za následok stratu života alebo veľké finančné straty. Koľko defektov je príliš veľa?

Pokračovať v čítaní

Dátové kolekcie v Go - polia, výrezy, mapy

Wednesday, Sep 30, 2020 | by Nelo | navody programovanie array slice map

Dátové kolekcie patria medzi základné typy v každom modernom jazyku. Umožňujú ukladať prvky rovnakého typu a následne k nim pristupovať pomocou indexu alebo kľúča. Go pozná tri základné typy dátových kolekcií: Pole: array[N]T, Výrez: slice[]T, Mapa: map[K]T. Kde T je akýkoľvek typ, K je typ, ktorý implementuje rovnosť (napríklad string) a N je kladné celé číslo. Pole - Array Pole, rovnako ako v iných programovacích jazykoch je súbor rovnakých dátových typov s fixnou veľkosťou.

Pokračovať v čítaní

Go HTTP web server návod časť 3 - statické stránky so šablónami

Sunday, Sep 13, 2020 | by Nelo | navody programovanie webserver

Dnes si vytvoríme jednoduchý webserver statických stránok so šablónami Go webserver so šablónami Go obsahuje balíček html/template, ktorý implementuje prácu so šablonami pre generovanie HTML na základe šablony a dynamických dát. Šablony sú zabezpečené proti vložení a spustení kódu, predpokladajú, že tvorca šablon je dôveryhodný, ale ale kto ju spúšťa s dátami tak nie, preto použité dynamické dáta budú sanitizované a escapované špecifické znaky pre HTML, CSS, JavaScript a URI.

Pokračovať v čítaní

Go HTTP web server návod časť 2 - dynamický rounting

Sunday, Sep 6, 2020 | by Nelo | navody programovanie webserver

Go ponúka jednoduchý router, ale čo ak nám nestačí statický routing a potrebujeme smerovať požiadavky napríklad podľa čísla zákazníka, článku alebo dátumu? Štandardný routing môžeme jednoducho rozšíriť o regulárne výrazy a ďalej napríklad kvôli bezpečnosti kontrolovať HTTP metódu. Na väčšinu aplikácií postačí základná funkcionalita a nie su nutné frameworky, ak však hľadáte sofistikované routing balíčky odporúčam pozrieť Gorilla/Mux alebo Go-Chi. Dynamický router v Go Dnes si vytvoríme jednoduchý dynamický router s rule enginom, ktorý traverzuje stromom pravidiel a hľadá zhodu pomocou regulárnych výrazov.

Pokračovať v čítaní

Go HTTP web server návod časť 1

Monday, Aug 31, 2020 | by Nelo | navody programovanie webserver

Keď potrebujeme aby dve alebo viac aplikácií medzi sebou komunikovali, rozhodujeme sa akú API architektúru použijeme. Synchrónnu (request-response) alebo asynchrónnu (message/event-driven/streaming) s akým protokolom. Synchrónna sa najčastejšie používa pri klient-server architektúrach ak sa častejšie dopytujeme a požadujeme výsledok. Asynchrónna sa používa ak k nám častejšie informácie prichádzajú (počúvanie na udalosti, streamovanie hudby), alebo ich spracovanie trvá príliš dlho, alebo máme viacerých producentov alebo konzumerov správ. REST (Representational State Transfer) definovaný v roku 2000 dodnes patrí medzi najpoužívanejšiu formu synchrónnej komunikácie a API.

Pokračovať v čítaní

TAK ČO HOVORÍŠ ?

Kontaktuj nás ak potrebuješ pomoc, veľmi radi pomôžeme.

Kontaktuj nás