Jaké nástroje používám při tvorbě webu?

Operační systém: MacOS (Update)

Další varianty: ChomeOS, Windows

Od svých 5ti let používám Windows. Postupně jsem se musel naučit i práci s Linuxem. Další počítač už ale bude na macOS, protože se mi už nevyplatí vše udržovat na několika systémech.

Prohlížeč: Chrome

Další varianty: Opera, Firefox

Snažím se debugovat na co největší množství prohlížečů. Chrome má většinové zastoupení. Ostatní prohlížeče se relativně dobře optimalizují, pokud už mám vytvořený základ pro většinu uživatelů.

Hosting: Digital Ocean (Update)

Další varianty: Wedos, Active24, Netlify

Digital Ocean volím pro větší projekty, které se musí nastavit už od serveru. Jednoduché aplikace nasazuji na Wedos.

Textový editor/IDE: Visual Studio Code/PHPStorm (Update)

Další varianty: Sublime Text, Atom, Brackets

Pokud dělám v PHP, tak využívám skoro na vše PHPStorm. Jakmile pracuji v Ruby, tak už využiju lehčí a pohodlnější variantu Sublime Text/Visual Studio Code. Poslední dobou více pracuji ve Visual Studio Code, protože je jednodušší na nastavení. Také se mi líbí Atom, ale u něho mi přijde, že až moc pluginů je nedodělaných a často mi ukazuje zbytečné chyby.

Verzování: GitHub

Další varianty: Bitbucket

Pro veřejné projekty využívám GitHub, pro interní Bitbucket. (Update 22. únor: GitHub již podporuje Privátní repository zcela zdarma!!!) Potřebuji vše udržovat na jednom místě. Ideální pak je, když vidím jaké změny jsem provedl a kde přesně. Také využívám Git na deploy aplikace. Vše automatizovaně pomocí Capristano.

CMS: Vlastní (Update)

Další varianty: Jekyll, Wordpress, Gridsome

Preferuji vlastní řešení. Je to sice nákladnější, ale možnost rozšíření a optimalizace je nejdůležitější. U cizích CMS nemohu zaručit chod aplikace po aktualizacích.

Buildovací nástroje: Webpack + Babel

Další varianty: Gulp, Grunt

Pro aplikace, které více využívají Javascript (React.js, Vue.js) používám Webpack a Babel. Babel mi dokáže Javascript nový překompilovat do Javascriptu starého. Pokud se jedná o aplikace, které využívají jen třeba jQuery, tak Gulp/Grunt jsou ideální. Lze kombinovat Gulp s Webpackem, ale zatím jsem to nezkoušel.

Preprocesor: Less

Další varianty: Sass, Stylus

Čisté CSS je bohužel pro větší weby nepoužitelné. Potřebuji si vytvořit několik verzí CSS souborů, které mohu kdekoliv includovat. Také potřebuji includovat CSS podle stránek a layoutu. Osobně využívám komponentový přístup, takže mám ve svých projektech i několik desítek komponent. V čistém CSS komponentový přístup není možný.

Frameworky pro backend: Laravel (Update)

Další varianty: Nette, Symfony

Nechci už vymýšlet zabezpečení a ani nechci řešit základní nastavení. Frameworkem ušetřím několik dní. Mohu se soustředit pouze na práci. Často kombinuji tyto dva frameworky podle pocitu. Někdy je lepší PHP, někdy Ruby. Poslední dobou dělám weby na Ruby on Rails a docela to i jde. Mimochodem jsem zastánce spíš light frameworků, než nějakých robustních.

Frameworky pro frontend: Bulma

Další varianty: Bootstrap, Foundation

Frameworkům na front se co nejvíce vyhýbám. Pokud to jde, tak využívám jen určité komponenty. Třeba grid, buttony, formuláře. Čím více nepotřebného kódu budu mít, tím více bude aplikace pomalá. Ideální je používat framework vlastní. Ideálně vlastní framework založený na flexbox gridu.

Frameworky pro javascript: Vue.js (Update)

Další varianty: Ember.js, React.js

Přiznám se, že jsem ještě trošku Frameworky/Knihovnami nepolíbený. Vše jsem většinou dělal jen pomocí jQuery a čistého Javascriptu. Poslední dobou ale zkouším například React.js a musím říct, že mě to s ním baví. Ačkoli jsem zatím nepřišel na nějakou úsporu času. Dokážu si ale představit, že u aplikací, které vyžadují dynamicky měnit obsah, může dost ulehčit práci. Zatím jsem ale nedělal aplikaci, kde by se React.js mohl PLNOHODNOTNĚ využít. Plnohodnotně říkám schválně, protože React.js také něco zabírá a mít ho jen proto, že je cool, je blbost. Kde bych ho ale dokázal využít, tak třeba pokud bych dělal chat aplikaci, fórum, Facebook :) ... Prostě tam, kde lidi často něco mění.