Co dělají naši developeři?

Třeba koukají přes curl, jestli je v response headerech vše OK. Připravují merge requesty do Skeletonu. Přes Yeoman generátor tvoří nové projekty s Bootstrap 4 a vědí si rady, když se jim v publish modulu vytvoří lesskové soubory a nenaběhne Gulp.

Nerozumíte ani slovo? Prostudujte si následující lexikon forrestích technologií, ať se dostanete trochu do obrazu. I když pokud nejste vývojáři, tak tomuhle žargonu nebudete nejspíš zcela rozumět nikdy.

A B C D E F G H CH I J K L M N O P Q R S T U V W X Y Z
  • A
    • Aplikační server

      Nezbytný pro provoz java web aplikací. Na našich serverech používáme Apache Tomcat, umíme řešit deployment, ale třeba i clusterované řešení. Máme zkušenosti s aplikacemi provozovanými na WebSphere nebo WebLogic. Nebojíme se ani jiného servlet kontejneru.

  • B
    • Bezpečnost

      Automatizované penetrační testy (pomocí nástroje Acunetix) jsou nedílnou součástí našeho testovacího checklistu. U důležitějších řešení přizveme k ručnímu penetračnímu testu kapacity z oboru (DCIT, Kümmel). Při zjištěné chybě opravu distribuujeme napříč všemi našimi řešeními. Mimochodem, nikdo na světě nevyrobí nic bezchybného… Vzdálený přístup k serverům – pomocí OpenSSH jen pro omezenou skupinu uživatelů (pouze pomocí jejich SSH klíčů) a jen z vyjmenovaných IP adres.

    • Bootstrap

      Spousta z nás Bootstrapu zpočátku nevěřila, ale přišli jsme jeho možnostem brzo na chuť. Bez něj už ani ránu!

  • C
    • CDN, WAF

      Navrhujeme co nejrychlejší řešení s vysokou dostupností, proto u vybraných řešení používáme CDN i v kombinaci s WAF.

    • Cloudhosting

      Umíme různá řešení, ale cloudhosting je z mnoha důvodů tou nejvýhodnější cestou (na platformě Unix/Linux).

    • Continuous integration

      Každou změnu, kterou na projektu provedeme, chceme co nejdříve otestovat. Používáme k tomu nástroje jako Jenkins, Teamcity či GitLab (ano i zde se vedou svaté války).

    • CSS3

      Kaskádové styly používáme již druhou dekádu a celých těch dvacet let nás trápí starší prohlížeče, které je třeba podporovat. Psaní CSS si ulehčujeme pomocí LESSu a s příchodem Bootstrap 4 začínáme pokukovat po SASSu.

  • E
    • Eclipse

      Jeden z táborů se kloní k vývoji v Eclipse, respektive STS. Svoboda je pro nás důležitá, takže výběr IDE je volbou každého z nás, i když zrovna tuto volbu tábor vývojářů na IntelliJ Idea vůbec nechápe.

    • Elastic Search

      Rádi zkoušíme nové věci, z Elasticu jsme ale stále nadšení. I nejsložitější dotazy zvládá rychleji než tradiční řešení, k tomu přidejme jeho škálovatelnost a více už netřeba vysvětlovat.

  • F
    • Funkcionální programování

      Je staronovým fenoménem. Ačkoliv většina z nás prošla na škole semestry Lispu, aktuálně jej u nás používáme nesystematicky jen na úrovni Java closures, streamů, někteří z nás koketují s Rx. Rozhodně je to ale oblast, kde bychom se časem rádi víc posunuli.

  • G
    • GIT

      Dlouho jsme používali CVS, ale to už je minulost. GIT používá většina z nás denně. Máme zavedený model branchování, abychom dokázali na projektu pracovat ve více lidech a na více úkolech zároveň.

    • GitLab

      Takový náš malý GitHub. Kromě zpřehlednění oprávnění a vizualizace změn využíváme možnosti pro psaní dokumentace (markdown je super), snažíme se více využívat merge requesty a je to místo pro řešení code review.

    • Groovy

      Již delší dobu se u nás používá pro rychlé customizace na jednodušších projektech nebo integrační části mezi několika moduly. V poslední době ale dáváme přednost Javě 8.

    • Grunt

      Automatizace pro vývojáře. Využíváme primárně pro automatizaci deploymentu a zjednodušení lokálního vývoje, obdobně jako Yeoman pro založení projektu.

    • G Suite (přejmenované Google Apps)

      S nadšením jsme před lety přešli z interních Microsoft Exchange a jednoduchého file serveru na G Suite. Teď si firemní život bez Gmailu, sdílených dat na Drivu, Google dokumentů, kalendářů a souvisejících aplikací z Google balíku již nedovedeme představit.

    • Gulp/Webpack

      Pro nás nerozlučná dvojka pro vývoj a ladění frontendu. Základní nastavení může snadno rozvíjet každý webař.

  • H
    • Haproxy

      Nezbytný u všech našich provozovaných řešení. Slouží jako vstupní prvek umožňující všelijakou konfiguraci, typicky jako HTTPS terminátor a balancer.

    • HTML5

      Základní technologie, kolem které se staví všechny webové projekty. Postupně jsme si prošli cestou od HTML3, HTML4 (taky tzv. DHTML), přes XHTML, až po dnešní HTML5 standard.

  • CH
    • Chef

      Automatizace infrastruktury pomocí kuchařek a vlastních skriptů. Nový server upečeme v produkční podobě v řádu minut. Konfigurace stovek serverů tak díky Chefu držíme v lati.

  • I
    • IDE

      IDE = Integrated Development Editor – nástroj, který vývojáři přináší vše, co ke své práci potřebuje (nebo alespoň většinu z toho). V IDE trávíme většinu času, a proto bývá předmětem svatých válek (stejně jako používání tabulátorů a mezer pro odsazování).

    • IntelliJ Idea

      IDE používané našimi vývojáři v největší míře. Umožňuje nám být blízko našemu kódu a milujeme jeho uživatelskou přívětivost a inteligenci.

    • Intranet

      Provozujeme vlastní informační intranetový portál zvaný Jáchym. Jde o studnici všech možných firemních informací a sdělení. Chystáme jeho novějšího bratra Huga. ;-)

  • J
    • Java

      Naše řešení programujeme v jazyce Java. Využíváme možnosti, které přináší Java 8, opatrně pokukujeme po nových funkcích v Java 11.

    • Javascript

      Stále nedílná součást všech projektů. Z rozvoje, který probíhá, máme velkou radost, i když nás životnost některých JS frameworků stojí občas dost úsilí. Máme radost také z příchodu ES6 a rádi jeho novinky používáme.

    • jQuery

      U jednoduchých webů stále ta nejrychlejší cesta pro oživení webových stránek.

    • JVM

      Záludnosti JVM máme dobře zvládnuté, včetně možností monitoringu, zabezpečení a dostupnosti. Javu na serveru provozujeme od v1.2.

  • L
    • Logování

      Pro provozní uložení a dohledání informací z logů využíváme interně provozovaný balík open-source software NxLog, Graylog, Elastic Search a pro vizualizaci dat nám slouží Kibana. Ale kdo chce (a má k nim přístup), může si prohlížet logy na disku.

  • M
    • Maven

      Pro buildování využíváme Maven. Pokukujeme po Gradle, ale nakonec je Maven prostě nejrychlejší cesta s maximální podporou napříč všemi vývojovými nástroji.

    • Modulární architektura

      Je základem naší platformy a je postavená na kompozici Spring aplikačních kontextů v rámci jediného classloaderu, což se možná změní s příchodem JigSaw. Modularitu jsme dotáhli poměrně daleko – pokrývá nám vše od datové vrstvy po UI. Klíčovými atributy jsou izolace, rozšiřitelnost a kombinovatelnost.

    • Mongo DB

      Máme zatím jen na pár instalacích, kde nám plní úlohu efektivního clusterovacího řešení. Líbí se nám jeho jednoduchost, schemaless přístup, agregační framework. Zatím plní naše očekávání na jedničku, i když pár vrásek nám už taky způsobil.

    • Monitoring

      Provozovaná řešení je nutné monitorovat. Používáme interně provozovaný open-source software Nagios a Zabbix. Pro vnější monitoring našich webových řešení jsme před lety zvolili Pingdom.

    • MyBatis

      Zjednodušuje nám práci s perzistencí objektů do databáze. Máme ho mnohem radši než Hibernate, na projektech pak často využíváme vlastní řešení (Adam). Nepohrdáme ale ani přímou prací s databází pomocí Spring JdbcTemplate.

    • MySQL

      Rychlá databáze, široký výběr nástrojů pro vývojáře i provoz. Umíme ji rozumně škálovat, zálohovat, víme, kde jsou její slabiny a kde je naopak lepší než Oracle.

  • N
    • Node.js

      Javascript na serveru už není žádná specialita, bezproblémově zapadá do našich řešení. A diskuze, jestli je lepší NPM nebo Maven, nás baví pořád.

    • NoSQL

      Dnes už běžná součást složitějších řešení. Většinou ale kombinujeme s klasickou relační databází, která slouží jako primární úložiště projektových dat a NoSQL pak nabízí pohledy pro snadnou prezentaci těchto dat dále.

  • O
    • Objektově orientované programování

      Je základem naší práce, a ačkoliv je mu v dnešní době vytýkána řada nedostatků, myslíme si, že je to zatím to nejlepší, co tu pro produktivní vývoj aplikací máme. Abstrakce, delegace a kompozice, GOF patterny a mnoho dalšího je naším denním chlebem.

    • Oracle

      U velkých klientů je první volbou pro relační databázi. Umíme s ní, ale úmyslně nevyužíváme možnosti, které nejsou přenosné na jiné platformy.

  • P
    • Percona

      O fous rychlejší implementace MySQL, kterou již léta nasazujeme spíše než její předobraz MySQL. Na úrovni API a funkcionality je shodná s MySQL, ale funguje nám rychleji a dává víc možností (zálohování, cluster).

  • R
    • React

      O téhle javascriptí knihovně pro renderování UI se už jen hodně nemluví, ale hojně se používá. U nás na Reactu stavíme aplikace, které mají vymazlené a interaktivní rozhraní. Ekosystém okolo je docela rozsáhlý. Pro datovou vrstvu využíváme GraphQL platformu Apollo. V případě potřeby server side renderingu používáme React v kombinaci s Next.js.

    • Responsive webdesign

      Zaručujeme, že weby a webové aplikace od nás budou optimalizované pro různá zařízení – od telefonů přes tablety až k desktopům. K tomu nám dopomáhá Bootstrap nebo třeba dynamické obrázky, které zajišťují optimální datovou velikost pro právě používané zařízení.

  • S
    • Skupinová/týmová komunikace

      Nově jsme v roce 2016 začali používat open-source nástroj Mattermost, jde o Slack alternativu. Zatím převládají pozitiva tohoto druhu komunikace.

    • Spring

      Hodně využíváme Spring Framework, a to nejen k řešení dependency injection, ale i dalších částí jako Spring MVC, Spring Security, Spring Batch atd. Líbí se nám i podpora pro testování, webové služby, LDAP komunikaci, zkrátka skoro všechno. :-)

  • T
    • Test driven development

      Děláme, abychom si ulehčili práci. Ne vždy je test to první, co napíšeme, ale nevzdáváme to. Velký kus práce Java vývojářů se vyvíjí pouze pomocí testů, aniž by bylo nutné spustit aplikační server.

    • Testování

      Vývoj našich projektů a jejich testování jsou navzájem neoddělitelné. Řešíme to unit testy (JUnit), integračními testy (JUnit), end-to-end testy (Webdriver). Naši testeři provádějí finální prověrku (oproti checklistu), penetrační testování (Acunetix) i performance testy (Gatling). Po nasazení nových verzí nám vždy proběhne automatizovaný smoke testing.

  • V
    • ViM

      Třetí nejoblíbenější IDE v naší společnosti, všechny ostatní se již dlouhá léta bezvýsledně snaží dohnat funkce, které tento magický nástroj má, což uživatelům ViMu umožňuje pohlížet na nás ostatní přezíravě.

  • W
    • Webdriver

      Využíváme pro psaní UI testů, které prověří funkčnost z pohledu uživatele (end-to-end testy, akceptační testy). Testy tohoto typu se vyplatí především v rámci produktového vývoje, kde každá případná chyba ovlivní více projektů. Automatizované testování používáme v kombinaci s Browser Stack Automate.

    • Webový server

      Původně používaného Apache na naší infrastruktuře postupně nahradil efektivnější NGINX. Využíváme jej i jako reverzní proxy keš.