CategoryProgramování

Lodash

Ať už píšete svoji aplikaci v jakémkoliv jazyce, určitě používáte nějaké ty knihovny pro takové ty základní funkcionality, jako je hledání v poli, porovnávání objektů a podobně.

Pokud píšete v JavaScriptu, pak se vám určitě bude líbit Lodash. Najdete v něm téměř všechny základní funkcionality ať už pro práci s čísli, poli, řetězci a podobně. Krom samotného rozsahu jeho nespornou výhodou je výborná dokumentace.

Java dokumentace

java the legend
object oriented vs functional programming
modern java ee design patterns
microservices for java developers

Vypnutí kešování www stránek

Někdy budete muset na úrovni HTML hlaviček vypnout kešování požadované stránky (cache). Důvod je zřejmý: měnící se obsah a snaha o zajištění distribuce aktuálního obsahu. Pak by se mohlo hodit info jak na to.

Nejdřív finta…

Možná nejjednodušším řešením jak zamezit kešování je změna adresy v samotném odkazu na stránku, kterou nechcete kešovat:

Ze serveru se generuje stránka, která obsahuje pokaždé jiný odkaz. Ten se mění díky vkládání časového razítka přímo do URL odkazu a proto bude stránka po každé znovu načtena…

A nebo pak jinak…

HTML

NodeJS

PHP

Python s Flaskem

Nginx

Apache .htaccess

IED: alternativa k NPM

ied
NPM je skvělý a určitě je jedním z hlavních důvodů, proč NodeJS zažívá takový boom.
V současné době se NPM prokousalo k 3. verzi, která řeší víceméně všechny neduhy 2. verze, jako je rychlost, adresářová struktura, velikost stahovaných dat a podobně.

IED

I když je NPM 3 opravdu daleko lepší než 2, stále má své rezervy. A na ně příjdete například v momentě, kdy si vyzkoušíte alternativního správce balíčků jako je IED, který je v rámci NodeJS plně kompatabilní, což znamená, že i přes velké změny v interní struktůře uložiště pozžívaných knihoven ve vaší aplikaci, poběží vše jak má.

Asi nejvýraznější výhodou je jeho opravdová rychlost při instalaci požadovaných balíčků specifikovaných v package.json. Otestoval jsem NPM i IED na ne příliš velké aplikaci, která používá cca 20 knihoven z NPM repozitáře. Pomocí NPM jsem měl nainstalováno za 24 sekund, ale s IED jen za 6. A to je opravdu fofr!

Protože 3. verze NPM už má flat model instalovaných balíčků, neni úspora místa a vše co s tím ouvisí (velikost stahovaných dat a podobně..) tak významné. Cca 44MB zabíral adresář node_modules instalovaný jak pomocí NPM i IED.

Asi jedinou nevýhodou na kterou jsem u IED narazil je absence příkazu udate, pro aktualizaci stažených, nainstalovaných NPM balíčků. NPM má příkaz npm command, který se pokusí aktualizovat všechny balíčky definované v package.json. A to dělá docela rychle: očekování nových verzí cca 20 balíčků v projektu trvalo cca 1.5 sekund. Dobrý.

NPM závislosti

Jednou z neskutečných výhod NodeJS je jeho NPM. Jedná se o dnes nejrychleji rostoucí balíčkovací systém. Repozitář obsajuje hotové balíčky snad na vše co vás napadne. Stačí jen stáhnout a použít.

No a pak se může hodit online grafická vizualizace závislostí jakéhokoliv baličku. Jedná se o webovou stránku, kde zadáte název NPM modulu a získáte pěkný obrázek s grafickým znázorněním závislosti zadaného balíčku. Výsledek můžete prohlížet i jako 3D model… 🙂

npm-zavislosti
Tohle je graf závislostí populárního balíčku express.

PhantomJS: web screen capture

phantomjs2

Už jste někdy potřebovali automaticky a sbírat náhledy webových stránek z prohlížeče (screenshoty)? Pak asi nejjednodušším řešením je použití PhantomJS, který, jak o sobě uvádí, je full web stack, no browser required řešením:

Výsledkem scriptu je sada PNG obrázků se screenshoty požadovaných webových stránek. Jedná se o rychlý návod jak na to. Samotný script by se dal ještě dopracovat…
PhantomJS se dá použí ke spoustě dalších věcí. Já jej používám např. i pro vytváření PDF dokumentů na webovém serveru.

JavaScript and Node FUNdamentals

5178Ep21UkL._SX384_BO1,204,203,200_

Javascript And Node Fundametals

Mongoose a new Date()

Pokud v NodeJS používáte pro práci s databázi MongoDB knihovnu Mongoose a snažíte se ulehčit si práci při ukládání dat do collections skrze defaultní hodnotu prvku jako já:

Pak se dočkáte nemilého překvapení, že vám nebude čas v databázi sedět s reálným časem. Až jako já prohledáte všechny možnosti kde se na vašem serveru nastavuje timezone a zjsitíte, že máte vše OK, začnete pátrat kolem MongoDB, respektive přímo v Mongoose…

UTC

No a pak zjisíte, že váš čas je ukládán v UTC, a proto nesedí.

clock-change-time-dst

Řešení

Protože jsem v databázi měl opravdu skutečný čas, je potřeba zrušit hodnotu default v definici mongoose schematu vaší collection a datum s časem si vypočítat sám:

Jemný úvod do funkcionálního programování

Jestli píšete v JavaScriptu a rádi byste rozšířili své konvenční programátorské vidění světa o funkcionální programování, pak si určitě přečtěte článek A practical introduction to functional programming na blogu Mary Rose Cook.

Atom a terminál

Nedovedu si představit, že bych něco vyvíjel a nepoužíval u toho terminál. A je jedno v jaké fázi vývoje: kódování, deploy aplikace na server, práce s git repozitáčem, či cokoliv jiného… Terminál potřebuji stále. A proto vždy spouštím nejdřív xTerm2 a v něm pak Atom.
Mezi jednotlivými aplikacemi přepínám, což není nejpohodlnější a taky nejefektivnější a nejpřehlednější. Vždy musíte řešit jak nastavit okna abyste viděl to co chcete…

No a tady pomůže integrace terminálu přímo do Atomu. Různých pluginu pro Atom existuji více. Většinu z nich jsem opravdu vyzkoušel, abych si nakonec jako nejleší vybral terminal-plus. Krom toho, že opravdu umí vše co od terminálu očekáváte, má skvělou integraci do Atomu. Všechno spolu dobře a pěkně vypadá, radost terminál použít.

atom-terminal-plus

atom-terminal-plus

Plugin má skvělé konfigurační možnosti a dá se nastavit téměř cokoliv. Co mě potěšilo je kompatabilita vyhledu s barevným schématem atom-material-ui, který používám. Bomba je možnost spustit/otevřít více terminálových oken, ty si barevně odlišit a třeba i přejmenovat. Do terminálu se odkudkoliv v editoru pohodlně dostanete klávesovou zkratkou ctrl+`.

Terminál v Atomu je skutečně užitečný plugin, zvyšující efektivitu práce v něm.

© 2017 pepa.holla.cz

Theme by Anders NorénUp ↑