Programujeme letenky

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

Pro dynamickou analýzu kódu v C++ používáme Valgrind. Štěpán v následujícím článku připravil malou ukázku. Pokud Valgrind používáte, možná jste se s ní taky setkali. Pokud Valgrind nepoužíváte, můžete se aspoň podívat, s čím by vám mohl pomoci.

Odkaz na článek

Publikováno 19.11.2021
Learn or die, teach or die: Dědičnost v db modelu

Pár slidů na téma Dědičnost v db modelu - dekompozice tabulek podle 3. normální formy není nutně způsobem, který používat vždy. Krátká LodTod přednáška s živou diskusí proběhla v rámci pravidelného středečního meetingu.

Odkaz na článek

Publikováno 2.8.2021
Automatický deployment mobilní aplikace pomocí Bitrise CI/CD

S narůstajícím počtem variant naší mobilní aplikace GOL Mobile bylo potřeba zautomatizovat vydávání do příslušných obchodů (Google Play a Apple App Store). Martina v následujícím článku popsala důvody, které nás vedly k volbě jednotlivých technologií a detaily celého deployment procesu, který nově začíná pushnutím do produkční větve a končí automatickým upgradem všech variant Android a iOS aplikací patřícím různým zákazníkům.

Odkaz na článek

Publikováno 19.4.2021
JSON, Yaml a Base64

Sem tam každý z nás potřebuje převést JSON na Yaml a zpět, rozkódovat nějaký ten Base64 řetězec z logů. Takových udělátek je na internetu spousta. Ovšem v JSONu a Yamlu je typicky konfigurace aplikace, v Base64 bývají tokeny, prostě citlivá data, která by neměla nikde uniknout. My jsme paranoidní a máme i paranoidní utility, u kterých je riziko ztráty výrazně menší, protože převody se dějí pouze na straně internetového prohlížeče. Dostupné jsou na níže uvedené adrese včetně zdrojových kódu.

https://paranoid-development-tools.netlify.app

Publikováno 8.4.2021
Postman pro každodenní testování API

Postman toho umí opravdu hodně a o pár funkcionalitách vyprávěl i náš QA Libor pro [pro:]Test! komunitu.

Odkaz na detail

Publikováno 10.2.2021
Test Automation in DevOps webinar

Včera se náš QA Libor Šimo účastnil webináře o CI/CD, který pořádala společnost Tesena. Jan Egermaier popisoval, jak nastavit automatizované testy pomocí nástroje GitLab. Závěr je pozitivní: přesně tak probíhá continues integration i u nás :)

Odkaz na obrázek

Publikováno 15.1.2021
Jak psát Use Case

V našich zadáních často využíváme Use Case - strukturovaný postup, jak bude probíhat požadovaná akce. UC podporuje i nacházení a řešení různých nečekaných situací. Mise připravil stručný návod, na co si dát při psaní UC pozor.

Odkaz na článek

Archív: 2016 | 2017 | 2018 | 2019 | 2020 | 2021

GOL IBE D4 - React (Native)
GOL IBE D4 - React (Native)

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. Aplikace má i verzi určenou pro korporátní zákazníky - TripGate a s využitím React Native i verzi mobilní.

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.

Trip Manager - PHP
Trip Manager - PHP

Vyvíjíme také rezervační systém pro dodatečné služby k letenkám Trip Manager. K již zakoupené letence umožňuje dokoupit služby, jako jsou konkrétní sedadlo, check-in, dodatečná zavazadla nebo jídlo na palubě. Verze PHP je 8.0 a využíváme PHPStan. Trip Managera najdete v historii zpráv pod starším názvem Trawys.

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 8.0, využíváme PHPStan (na nižších levelech), testy píšeme v Codeception a PHPUnit.

Co všechno tedy používáme
  • Next.js, React, Typescript
  • PHP 8.0, 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 na mobilní aplikace máme React Native
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...