Technologie

Naši IT borci sepsali bodový popis technologií, nástrojů a buzzwordů, které používají. Rozumět jim budou hlavně… zase další IT borci. Takže pokud nevíte, o čem je tu řeč, nevadí – nerozumí tomu ani všichni Forresti.

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.

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 omezené skupině 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!

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.

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.

Cloudhosting

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

Continuos 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.

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.

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 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.

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.

Gulp/Webpack

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

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.

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í).

Instant messaging

Interně provozujeme Jabber XMPP server. Dokonce jsme si v době, kdy to ještě nebylo sexy, implementovali i vlastní Jabber boty, kteří nám zapisují do výkazů práce a zjišťují další informace z informačního systému.

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 nazvaný Jáchym. Jde o studnici všech možných firemních informací a sdělení. Chystáme jeho novějšího bratra Huga. ;-)

Java

Naše řešení programujeme v jazyce JAVA. Využíváme možnosti, které přináší Java 8, na úrovni produktů zatím podporujeme JDK 7, aby naše řešení mohla běžet i v prostředí klienta, kde bývá upgrade verze Javy složitější. Opatrně pokukujeme po nových funkcích v Java 9.

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.

Logování

Pro provozní uložení a dohledání informací z logů využíváme interně provozovaný balík open-source software NxLog, Graylog, ElasticSearch 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.

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.

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.

Objektově orientované programování

Je základ 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.

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).

React

Pořád se ho učíme, ale máme ho stále radši. Nehodí se na vše, co děláme, ale větší SPAčka jinak dělat nechceme (snad to tak ještě dlouho vydrží).

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í.

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. :-)

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.

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ě.

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ý Apache na naší infrastruktuře postupně nahradil efektivnější NGINX. Využíváme jej i jako reverzní proxy keš.

Dlouhodobě úspěšným se může stát i váš projekt!

Pošlete nám poptávku

Přeskočit na hlavní nabídku