Blog

Golang Talks #1 - ako sme začínali a čo nás prekvapilo a potešilo?

Wednesday, Dec 9, 2020 | by Nelo | video inspiration

Nakoľko zorganizovať meetup je v tejto dobe stále obtiažne, veľmi sa tešíme, že sa nám podarilo stretnúť so zaujímavými ľuďmi z odboru a vyzdieľať s vami formou série podcastov praktické skúsenosti s Go z rôznych perspektív. V tomto prvom diele sa po krátkom zoznámení a začiatkoch rozprávame: čo môže začínajúceho programátora v Go zaskočiť čo sa nám osobne na Go páči a čo podľa nás môže programátorom chýbať Radi by sme sa spoločne s Palom Tóthom a Kornelom Kabelem poďakovali našim hosťom (v abecednom poradí podľa priezviska):

Pokračovať v čítaní

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í

Go Cheat Sheet

Saturday, Nov 7, 2020 | by Nelo | programovanie cheat-sheet

Na uľahčenie programovania v Go je tu malý ťahák v PDF formáte alebo v PNG formáte. Všetky príklady a o čosi viac nájdete aj nižšie na tejto stránke. Obsah: Inštalácia, štruktúra programu, kompilácia a spustenie Premenné a konštanty, typy, ukazovatele Polia, výrezy, mapy Cykly a rozpätia Podmienky a prepínače Funkcie, uzavretia a lambdy a odloženie Metódy a rozhrania Súbežnosť a synchronizácia Inštalácia https://golang.org/doc/install $ go version späť na obsah

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í

Generické programovanie v Go

Saturday, Aug 1, 2020 | by Nelo | programovanie generics inspiration

Generické programovanie je štýl písania algoritmov alebo typov, v ktorom nie sú typy definované priamo, ale budú určené neskôr (pri kompilácii - C++/Rust alebo za behu programu - Python/TypeScript) v časti kódu volajúceho generický algoritmus. To umožňuje výrazne zvýšiť znovupoužiteľnosť kódu a redukovať duplicity a tým aj chyby. Typický use case sú napríklad generické algoritmy Map, Reduce, Filter, alebo generický typ (container) Node v binárnom strome. V novej verzii Go sa uvažuje pridať formu parametrického polymorfizmu.

Pokračovať v čítaní

Prečo programovanie v Go?

Saturday, Jun 27, 2020 | by Nelo | video inspiration

V tomto videu si ukážeme prečo vznikol tento programovací jazyk a dáme si ochutnávku čo ponúka, ale povieme si aj o kritike Go. Prejdeme si základné vlastnosti a čo na Go hovoria osobnosti ako autori Wordpressu, ExpressJS alebo NodeJS. Obsah: Prečo vznikol tento programovací jazyk Ciele návrhu Go Vlastnosti Popularita Kritika Čo hovoria osobnosti - Matt Mullenweg, TJ Holowaychuk, Ryan Dahl Hlavné výhody Go Súbežnosť (Concurrency) Staticky typované Automatický manažment pamäte Vysoký výkon Škálovateľnosť Cross-platformové Bohaté knižnice a nástroje Kde a ktoré spoločnosti používajú Go?

Pokračovať v čítaní

TAK ČO HOVORÍŠ ?

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

Kontaktuj nás