Rekurze patří mezi základní techniky funkcionálního programování, protože umožňuje velmi hutně a stručně vyjádřit, čeho chceme dosáhnout, a to bez použití cyklů. Mezi programátory má ale velmi špatnou pověst, protože je velmi jednoduché "vyrobit" stack overflow. Není to však vždy pravda. V moderních jazycích (jako je v JavaScript) může mít rekurze ocas a pak je stejně efektivní jako cyklus. Ne, "ocas" není žádná zkratka z angličtiny ani hipsterská šifra, je to prostě normální český vocas, oháňka, ohon, chvost.
Funkcionální dobrodružství v JavaScriptu
| 2 comments |
Funkcionální programování je boží, bohužel tady prostě zatím nemá vybudouvanou tradici. Asi proto, že tu lidi málo hu.. studujou funkcionální jazyky. S příchodem ES2015 alias ES6 alias JavaScriptu budoucnosti se ale FP konečně může dostat do mainstreamu, a tak se nabízí otázky: Co všechno ES2015 nabízí? Kam až nás může ES2015 posunout? Jak by vypadal JavaScript, kdybychom ho psali striktně funkcionálně? Pohodlně se usaďte, otevřte si popcorn a oblíbenou láhev, začínáme! Vítejte v budoucnosti JavaScriptu, v roce 2015!
Game of Life v Clojure
| 0 comments |
Clojure je boží. Tento týden jsme společně s Alešem Roubíčkem o ní měli v Hradci přednášku. Aleš začal obecným úvodem a představením jazyka, já jsem pak ukazoval, jak se v Clojure napíše Game of Life.
Nebojte se "domácího espressa"
| 3 comments | coffee
Kafe je boží. Teda záleží jaký kafe a jak udělaný, ale každý ví, že nejlepší je piccolo. Teda kdyby existovalo. Co už je o dost míň boží je pokoušet se piccolo espresso vyrobit v domácích podmínkách. Budou vám tvrdit, že to nejde, že je to strašně drahé, nebo že máte zvolit radši jiný způsob přípravy.
Spock
Spock je boží. Nedávno jsem o něm měl talk na super akci, jOpenSpace. No dobře, nebylo to nedávno, ale v listopadu, ale teprv teď jsem si vzpoměl, že jsem o tom zapomněl napsat. Ale to nevadí, protože nás stejně všechny brzo nahradí počítače.
Lambda Days 2014 Krakow
| 0 comments | conference
Na konci února se v Krakowě konala dvoudenní konference o funkcionálních jazycích, Lambda Days, což byla skvělá příležitost udělat si výlet, proszwisztit szi szlowiczka a dozvědět se něco nového.
Být manažerem
| 12 comments | Humanoids
Setkávám se s tím zas a znova - mladí programátoři touží stát se manažery. Zřejmě za to může rozšířený mýtus, že po třicítce měkne mozek a že starý programátor je špatný programátor. Nebudu tady moralizovat, protože před lety jsem to chtěl taky. Naštěstí jsem byl vyléčen a tak vám můžu popsat, do čeho se řítíte.
GOTO 2013 Amsterdam - Erik Meijer
Jedním z hlavních důvodů, proč jsem chtěl jet na konferenci GOTO 2013 do Amsterdamu, byly přednášky Erika Meijera. Byly celkem tři a týkaly se "strojového učení" (neboli machine learning), budoucnosti databází a lightning talk o funkcionálním programování.
GOTO 2013 Amsterdam - Legacy Systems
| 3 comments | conference, legacy
Když se řekne "legacy code", asi se vám vybaví dost netechnické pojmy: Hnůj, špagety, případně roztoky proměnlivé hustoty vyúsťující z různých tělesných otvorů. Starý kód je po technické stránce téměř vždy problém, protože je těžké mu rozumět a změny mohou mít nezamýšlené vedlejší efekty. Jenže je tu i jiný pohled: Starý kód je užitečný, má klienty a vydělává peníze. Už jen fakt, že přežil tak dlouho, je známka toho, že ho někdo potřebuje. Ať se nám to líbí nebo ne, ten starý hnusný kód bez testů je úspěšný kód. A o tom byl track "Legacy & Big Systems" na konferenci GOTO 2013 Amsterdam, kam jsem se podíval díky Vendavu.
GOTO 2013 Amsterdam - Big Data a NoSQL
| 1 comments | BigData, conference, NoSQL
Na konci června jsem se díky Vendavu podíval do Amsterdamu na konferenci GOTO 2013, zřejmě jako jediný z Česko-Slovenska. Díky tomu jsem měl příležitost osobně potkat lidi, jejichž knížky čtu a které považuju za superstar mezi programátory.
Jak v javě strukturovat testy velkých tříd
| 0 comments | JUnit, TDD
Pro každou třídu typicky existuje jedna testovací třída. Tento klasický pattern má ale nevýhodu, když testujete velkou třídu, která se používá v různých scénářích. Testovací třída pak obsahuje mnoho testů, setup různých situací vyžaduje ještě další metody navíc. Pokud mají vaše testovací třídy mnoho metod, měli byste se zamyslet, jak je lépe strukturovat.
Co s novým mekbůkem aneb rady pro konvertity
| 3 comments | Mac
Dnes je to přesně rok, co jsem v mém novém zaměstnání ve Vendavu rozbalil krabici s novým MacBook Pro a stal se po letech s Windows spokojenou apple ovcí. Nikdy jsem toho nelitoval, i když se mi občas zastesklo po některých okenních vychytávkách. Pro zrádce a renegáty jako jsem já tu mám pár tipů, jak si ulehčit nový začátek.
Jak udělat kráter Meteorem
| 0 comments | Fun, JavaScript, Meteor
Meteor je moc príma hračka, která dost zjednodušuje vývoj webových aplikací. Zatím se hodí jen na prototyping a na pokusy na lidech, ale ambice autorů jsou vysoké a držím jim palce. Zkuste si to taky, je to jednoduché a zábavné!
Jak správně pojmenovat test
| 12 comments | clean code, TDD
Na názvu testu záleží! Může se to zdát jako nepodstatná banalita, ale není. Správná metoda pojmenovávání testů zlepší čitelnost testů a pomáhá psát čistší kód. Názvy vašich testů prozrazují, jaký máte přístup k testování.
TDD Outside-in v Ostravě
| 6 comments | TDD
Předevčírem jsem na JUG Ostrava mluvil o unit testech a test-driven vývoji. Na rozdíl od WebExpa jsme měli víc času, a tak jsem se dostal i k tomu, proč nejsou unit testy dobré k odhalování chyb, co vám unit testy říkají o testovaném kódu a v čem je jejich nejsilnější stránka.