O MNĚ

O MNĚ

Jmenuju se Ondřej Krajčík a jsem webový programátor na volné noze.

Programuju v jazyce PHP. Asi jako každý webový programátor tak i já jsem začínal s HTML,CSS, JS. Časem jsem k tomu přidal čisté PHP a vytvořil nějaké jednoduché weby. Postupně jsem k tomu přidal SQL databáze, prošel jsem si základy Joomly a Wordpressu.

V červnu 2014 jsem začal vyvíjet webové aplikace v Nette frameworku a vyvíjím v něm doposud.

Pracovní zkušenosti

  • Růžový slon, s. r. o.
    Vývoj eshopu, vývoj skladového systému - PHP (nette)
    1 rok 3 měsíce
  • Surface, s. r. o.
    Vývoj webů a eshopů na míru - PHP (nette)
    1 rok 2 měsíce
  • DigiDoo, s.r.o.
    Vývoj software pro automobilový průmysl - PHP (nette)
    Od prosince 2016 do součastnosti

Používám technologie

- Nette framework
- Nette tester
- PHP 7.2
- Git
- RabbitMQ
- Doctrine
- Redis
- Docker
- Grunt
- Gulp
- SASS
- LESS
- Typescript

Zajímám se také o

- Facebook React
- Symfony framework

Testování aplikace

Častý problém v praxi bývá nedostatek času na psaní automatických testů, což je velká škoda, protože testy nám ve výsledku šetří čas a dodávají jistotu, že aplikace funguje správně.

Abych alespoň částečně otestoval aplikaci ve které není prostor pro psaní testů napsal jsem si jednoduchou knihovnu, která mně usnadní napsání crawler testů. Crawler testy projdou aplikaci pomocí obyčejných HTTP requestů a zjistí zda stránka nepadá na chybě. Lze taky testovat zda mě aplikace přesměruje na přihlašovací stránku v případě, že uživatel přistoupí na místo kde je vyžadováno přihlášení uživatele apod.

Knihovna je dostupná zde: https://github.com/krajcikondra/netteTesterExtension

Pokud však prostor je píšu i jednotkové (unit) i integrační testy.

Řešil jsem:

- REST API - Příprava API v našem systému s OAuth2 autorizací včetně vytvoření separátního balíčku určeného pro externí služby, který obsahoval klienta naimplementovaného pro komunikaci s našim systémem.
- Napojení na API jiných systémů - Účetní systémy, inzertní servery ....
- Implementace RabbitMQ
- MySQL procedury - Přepočítávání velkého množství databázových záznamů, kde by bylo neoptimální řešit přepočet přímo v PHP neustálým pokládáním dotazů na databázi

Ukázky kódu

Jelikož většinu své práce dělám v týmu několika lidí a jedná se o práci na neveřejných systémech, dovolil jsem si připravit jednoduchý úkázkový projekt. Projekt je napsaný v nette frameworku a je zde připraven docker ve dvou verzích: produkčním a vývojářském.

V dockeru jsou připraveny kontejnery:
  • Apache včetně PHP 7.2
  • MySQL databáze
  • Redis
  • RabbitMQ

Projekt je dostupný na mém bitbucketu: https://bitbucket.org/krajcik/nette-sandbox-docker/