Programujeme letenky

Vývojáři GOL IBE v C.E.E. Group Travelport
Programátorský web
Background image - Futurama office park
Publikováno 12.8.2020
Programuj bez výjimek

Michala vytáčela práce s výjimkami natolik, že se o tom rozhodl napsat krátký článek.

Článek na blogu

Publikováno 29.6.2020
Kompilovaná konfigurace

Pokud máte větší projekt, který se delší dobu rozrůstá o nové moduly v různých technologiích, můžete se dostat do potíží, jak v tak pestrém prostředí automatizovat konfiguraci jednotlivých komponent.

Co jsme s tím udělali my?

Publikováno 23.5.2020
DevOps

Developers, testes, scrum masters, product owner, operators, business, service desk, facilitator jako jeden tým. Jaké výhody to přináší a jak se liší naše zkušenosti s teorií se snažil zjistit náš test lead Libor.

Online DevOps introduction

Publikováno 16.4.2020
I na nuceném home office se najde čas na dobrou konferenci

V pondělí 6. 4. 2020 proběhla online TEST STACK konference, která měla 5 hlavních témat: Jan Rücker - Jak jsme testovali Kingdom Come: Deliverance, Ladislav Prskavec - Testování infrastruktury s nástroji Terraform a Terratest, Michal Vaněk - Jak testujeme zabezpečení pro chytrou domácnost, Jaroslav Reken - „Otestuj“ ma ak to dokážeš?! a Marcel Veselka - Jak se mění trh s test automatizací a jaké jsou aktuální trendy. Náš QA Libor konferenci po očku sledoval a prý stojí za to se na její záznam kouknout :)

Online Test stack konference

Publikováno 20.3.2020
systemd --user u nás

Jaká úskalí můžete čekat, když chcete spravovat služby pomocí systemd pod nerootovským účtem?

Naše zkušenosti a řešení

Publikováno 26.2.2020
Risk Storming

Včera náš QA Libor Šimo vedl pro testerskou komunitu [pro:]TEST! workshop na téma Risk Storming. Společně s našim programátorem Jirkou představili účastníkům projekt Trawys a ti pak pomocí karet TestSphere vytvořili plán testování.

Risk Storming na [pro:]TEST!

Publikováno 3.2.2020
Sessions nyní v Redisu

Před časem jsme připravili článek o možných chybách při nasazování Memcached. Způsob, jakým Memcached pracuje s pamětí (rezervuje paměť pro záznamy určité velikosti) nás nakonec přivedl zpátky k Redisu, který jsme původně zavrhli (nezamykal záznamy a nyní to už umožňuje). Článek o potížích s přechodem na Redis nemáme, jelikož žádné nebyly.

Redis

Publikováno 31.1.2020
Interní Hackathon

Jirka, Petr a Michal si vyzkoušeli malý interní hackathon aby po třech dnech mohli předvést rychlé a efektivní řešení aplikace, která je připravena do produkce s vysokou mírou škálovatelnosti výkonu díky AWS. Zároveň využívá i již napsaný kód v PHP díky frameworku Bref.

Framework Bref

Publikováno 27.1.2020
Striktní překlady v Typescriptu

Máte rádi pořádek v překladech své aplikace? My také! Michal připravil knihovnu v Typescriptu i s postupem použití včetně příkladových problémů, které knihovna řeší.

Repozitář na GitHubu

Publikováno 3.12.2019
Postřehy ohledně doplňování DTD ke GOL API

Letenkové GOL API, které vyvíjíme, je definováno v DTD. I když ve finále nyní používáme JSON. Sem tam musíme rozšířovat existující struktury, takže jsme sepsali pár principů, jak to dělat.

Základní principy návhu XML API

Publikováno 20.11.2019
PragueJS - Sharing code between iOS, Android & web

Marian, který má na starosti vývoj našeho nového frontendu pro GOL IBE, připravil pro PragueJS meetup #9 přednášku Sharing code between iOS, Android & web using React Native. Přednáška je nyní dostupná na Youtube.

Sharing code with React Native na Youtube

Publikováno 18.11.2019
EuroSTARconf 2019

Minulý týden se v Praze konala velká 4 denní testerská konference EuroSTAR 2019 a náš test lead Libor se na ní velmi těšil. Poktkal dokonce svůj velký vzor, jednoho ze zakladatelů Rapid software testing, pana M. Boltona :)

Krátké poznámky z EuroSTARconf_2019

Publikováno 16.11.2019
Devel.cz 2019

Na konferenci Devel.cz se dává dohromady menší výprava každý rok, letos jsme byli ve dvou. Konference byla neobyčejně málo webová a o to víc hardwarová. Na papíře to moc lákavě nevypadalo, ale rozšíření obzorů a strhující Ondřej Žára stáli za to.

Poznámky z Devel.cz

Publikováno 12.11.2019
WordPress plugin pro GOL-IBE

Jak GOL-IBE k pluginu do WordPressu přišel.

Celý článek

Publikováno 5.11.2019
20. výročí Travelportu v ČR

Dne 17. 11. 2019 to bude 20 let od založení naší české pobočky Travelportu v České republice. Při té přiležitosti jsme v úterý 5.11. připravili odpolední workshop a slavnostní večeři v prostorách Lobkowiczkého paláce na Pražském hradě. Poslechli jsme si mimojiné Tomáše Sedláčka a Taťánu le Moigne a snědli dobré jídlo.

Reportáž z našich oslav

Publikováno 11.10.2019
TesenaFest 2019

3. 10. workshop agilního vývoje a 4. 10. konference na téma testování. Tak to byl program našeho testera minulý týden. Níže odkaz a pár fotek.

TesenaFest 2019

Publikováno 18.9.2019
Clash of TestStack 2019

O víkendu proběhla v Praze soutěž testerů Clash of TestStack. Sice jsme tam neměli vlastní soutěžící tým, ale náš QA Libor pomáhal akci organizovat a jako Travelport jsme se zařadili ke sponzorům akce a přispěli dobrým jídlem a pitím :)

Clash of TestStack

Publikováno 18.9.2019
Teribear - 1000km překonáno

Teribear - 1000km překonánoV rámci Teribearu se zadařilo a kilometrů jsme nakonec nasbírali solidní množství. Nejvíce z programátorů přiložil nohu k dílu Petr se solidními 72km. Ale každý kilometr se počítá.

Závěrečná zpráva a další informace

Publikováno 11.9.2019
Teribear hýbe Travelportem

Travelport patří k partnerům charitativní akce Teribear hýbe Prahou, kterou pořádá Nadace Terezy Maxové dětem. Akce probíhá bez přestávky 10 dnů (i v noci) na Vítkově, kde je možné sbírat kilometry na jedenapůlkilometrovém okruhu. Zapojila se nejen značná část firmy, ale i naši příbuzní a spřátelené duše. V tuto chvíli máme posbíráno 679.5km a nekončíme.

Aktuální výsledky našeho týmu

Publikováno 27.8.2019
Interní prezentace ELKu

Sem tam používáme u našich menších produktů reportování do ELKu. Aplikace loguje přímo (nebo nepřímo přes Logstash) do Elasticsearche a programátoři nebo manažer produktu si naklikají v Kibaně reporty jaké potřebují (například podklady pro fakturaci). Rádi bychom podobné využití ELKu rozšířili i na dashboardy k probíhajícím testům nebo pipelinám. Obecně by nějaký obdobný nástroj měl patřit do základní sady nástrojů každého programátora (podobně jako nějaká relační databáze nebo testovací framework). Proto jsme si udělali interní prezentaci základních principů ELKu.

Prezentace naprostých základů ELKu

Publikováno 20.8.2019
Bug hunting jako interní soutěž

Dokončujeme vývoj nového nástroje na prodej letenek a aby se k zákazníkům dostalo co nejméně chyb, tak jsme uspořádali celofiremní bug hunting. Cílem nebylo jen najít chyby, které prošly předchozím testováním, ale dostat produkt blíže interním zaměstnancům a získat případný feedback. Hlavní cena byla snídaně pro 2 v Cafe Louvre a po velkém boji byla udělena rovnou 2 vítězům :)

Poděkování na Linkedinu

Publikováno 16.8.2019
Past na konstruktor - static v C++

Občas se nám stalo, že jsme změnili pořadí souborů při kompilaci a aplikace začala padat. Záhada. Kolega Milan se rozhodl ji rozlousknout a výsledek popsal v krátkém článku se snadno pochopitelným příkladem.

Celý článek

Publikováno 2.8.2019
Administrátorská osmisměrka s našimi oblíbenými technologiemi

Kolega Tomáš pro pobavení v rámci svých programátorských experimentů připravil osmisměrku, která ukrývá jména technologií, které využíváme při vývoji. Zkuste si je najít.

Osmisměrka

Publikováno 18.7.2019
Playback č. 15

Po delší době jsme opět uspořádali další playback týkající se návrhových vzorů používaných v Riganti Infrastructure. Přednáška je z velké části soustředěna na způsoby přístupů k databázi ze svého projektu.

Ladislav Šesták: Návrhové vzory použité v Riganti Infrastructure

Publikováno 10.7.2019
Statická analýza C++ kódu

Po prvních krůčcích se statickou analýzou PHP kódu, se do ní s nástrojem Cppcheck pouští i C++ tým. A pokukuje i po silnějším Cppdependu.

Cppcheck

Publikováno 25.6.2019
Jak jsou důležité automatizované testy

Na 74. setkání [Pro]Test! komunity se probíralo téma: Proč si bez automatizovaného testování brzo ani neškrtnete a náš QA tam nemohl chybět. Padla i zajímavá otázka ohledně automatizace v zemědělství: Proč vznikl kombajn a ne robot s kosou? :)

Událost na Meetupu

Publikováno 28.5.2019
Manuální testy VS automatizace pomocí Codeception

To bylo téma našeho QA na 73. setkání testerské komunity [Pro]Test! Libor vyzdvihoval důležitost manuálního testování při kritice vyvíjeného produktu a roli novodobého testera v prostředí agilního vývoje. A aby to všechno mohlo fungovat, tak nutnost zautomatizování opakujících se regresních testů.

Událost na Meetupu

Publikováno 23.5.2019
AWS Webinář: Ochrana před DDoS

Celý název byl AWS CZSK Webinář 2019: Jak chránit vaše webové aplikace před DDos útoky a udělali jsme si čas se v menší skupince těch, co měli zájem, podívat v "premiérovém vysílání".

Záznam Webináře na Youtube

Publikováno 17.5.2019
experience for business

Konference X4B sice podle názvu spojuje téma User (Customer) experience s obchodem, ale v praxi šlo hlavně o vývoj inovativních nových produktů a služeb (nebo přesněji zážitků). K výpravě z oddělení ecommerce se připojil i zástupce programátorů.

Poznámky z Konference X4B 2019

Publikováno 30.4.2019
Hledáme administrátora do DevOps týmu

Do stránky Hledáme přibyl popis, jakého nového kolegu bychom si přáli do týmu.

Popis pozice IT admin/DevOps

Publikováno 29.3.2019
Jak u nás testujeme?

Náš test lead Libor Šimo byl pozván Radimem Danielem Pánkem a Tomášem Přibylem do live-streamu #TEST-STACK, aby představil, jak se u nás testuje a jaké nástroje používáme.

Celý záznam rozhovoru je uložen zde

Publikováno 21.3.2019
Dramaticky jednoduché GUI pro aplikace příkazové řádky

Michal připravil článek s nečekaným objevem v podobě tvorby GUI pro Windows.

Celý článek

Publikováno 18.3.2019
Typescript Best Practices

Vypadá to, že Typescript se stává oblíbený už i u nás a tak bylo na čase sdílet zkušenosti skrze všechny naše týmy. Proto jsme vytvořili nový veřejný repozitář s osvědčenými postupy, který budeme postupně obrušovat k dokonalosti

Odkaz na repozitář

Publikováno 07.03.2019
Používání Technologií v roce 2019

Ze zvědavosti jsme se pustili do průzkumu, jak hodně se v praxi využívají technologie, o kterých se kolem nás tolik píše a mluví.

Vyhodnocení ankety

Publikováno 04.03.2019
Jak si ohlídat cenu letenky?

Se Zaleť si jsme připravili nový způsob, jak sledovat vývoj cen letenek. Jde o nástroj FlightWatchdog.

Popis fungování od Zaleť si

Publikováno 01.02.2019
ProTest_cz a panelová diskuze

Komunita #proTest_cz pořádala nově panelovou diskuzi a náš tester Libor na ní nesměl chybět :) Probíraly se hlavně otázky "S čím se potýká QA", "Automatizace", "Continuous delivery a zkušenosti s ním" či "Testování na produkci".

Testování

Publikováno 28.1.2019
Párové testování

Minulý rok jsme začali a letos v tom hodláme pokračovat. Mluvíme o párovém testování, které si zatím pochvalují jak programátoři, tak testeři. Hlavní výhodu vidíme ne jen v teoretické časové úspoře, ale i ve sdílení informací a zkušeností.

Testování

Publikováno 25.1.2019
Headless Chrome a jeho využití

Michalovo krátké zamyšlení o Headless Chrome a jeho pragmatické využití, například pro generování PDF z HTML.

Odkaz na článek

Archív: 2016 | 2017 | 2018 | 2019

GOL IBE D4 - React
GOL IBE D4 - React

Vyvíjíme rezervační systém, kterému říkame GOL. Zkratka IBE znamená Internet booking (= rezervační) engine. Rezervujeme primárně letenky. Označení D4 značí čtvrtou generaci, vyvinutou v javascriptovém frameworku Next.js, postaveném na Reactu. Z původního Flow jsme přešli na Typescript. Testujeme v Jestu a Cypressu. Aktuálně máme první zákazníky, ladíme, doháníme funkcionalitu a rozjíždíme React Native verzi.

GOL IBE D3 - PHP
GOL IBE D3 - PHP

Starší verze GOLu. Systém stále intenzivně vyvíjíme a zároveň udržujeme v provozu přes 10 let. To znamená, že v začátcích GOLu vypadal webový vývoj úplně jinak než dnes. Ale neznamená to, že bychom ho dělali celou dobu stejně. Jsme na PHP 7.2, testy píšeme v Codeception a PHPUnit.

GOL API - C++
GOL API - C++

Uvnitř GOLu se skrývá C++ jádro staré více než 10 let. Historicky podporovalo několik zdrojů letenkových a hotelových dat, rezervace aut a pojištění. Stále je v něm co zlepšovat. Při vývoji si pomáháme mockováním všech externích zdrojů dat, se kterými spolupracujeme. To nám umožňuje psát automatické testy. Nový kód píšeme v C14 a když je to potřeba, využíváme Boost.

Trawys - PHP
Trawys - PHP

Vyvíjíme také rezervační systém pro dodatečné služby k letenkám Trawys. K již zakoupené letence umožňuje dokoupit služby, jako jsou konkrétní sedadlo, dodatečná zavazadla nebo jídlo na palubě. Verze PHP je 7.2 a využíváme PHPStan.

Co všechno tedy používáme
  • Next.js, React, Typescript
  • PHP 7.2, začínáme s PHPStan
  • PHPUnit, Selenium, VisualCeption, Jest, Cypress
  • C++ (s možností využívat C11 a C14), Boost
  • Git (Gitlab, včetně CI)
  • Mysql, Memcached, Redis
  • Munin, ELK
  • koketujeme s AWS lambda
  • Debian spravovaný pomocí Ansible
  • nějaký ten Shell a trocha toho Pythonu
  • a mobilní aplikace pro nás vyvíjí externisté
Externí API

Využíváme různá API z cestovního ruchu. Nejvíce používáme API k systému Galileo, které využívají i největší hráči v oboru. V ČR jsou to například Kiwi.com, StudentAgency, nebo Pelikan. Obdobné je to s API Travelfusion.

Hledáme kolegy

Podrobnější popis.

Čím je naše práce specifická
Čím je naše práce specifická
  • Vyvíjíme v týdenních cyklech
  • Refaktorujeme, automatizujeme
  • Produktu držíme podporu
  • Takže víme, jak se mu daří...
  • ... u nás, na Slovensku, v Albánii, v Srbsku...
  • ... nebo třeba Keni, Thajsku nebo Surinamu...