Po letech se vrátil k programování a říká: Pochopil jsem, že PHP je zkratka pro Pure Hell for Programmer.

Kdo chce zažít, jaké to je vykopat za pouhý týden tunel pod Mordorem za použití pouze šroubováku, měl by si vyzkoušet život programátora v 21. století. Peklo je procházka růžovým sadem. S určitou licencí k přehánění přinášíme autentické svědectví ze života programátora…

php

Dříve jsem koketoval s programováním v PHP a můj kód byl na slušné úrovni. Ba jsem napsal několik docela hezkých aplikací, které v mém okolí sklidily pozitivní ohlasy.  Nyní jsem po několika letech práce na Server/IT supportu došel k rozhodnutí, že potřebuji životní změnu a rád bych vyzkoušel něco nového.

Náhodu jsem dostal zajímavou nabídku od jednoho bývalého klienta, abych nastoupil jako programátor webových aplikací u něj ve firmě. Po příjemném rozhovoru a s myšlenkou, že programování je stále stejné, že se případné novinky doučím za běhu, jsem nabídku přijal.

První den v práci programátora

První den vše vypadalo skvěle až do chvíle, kdy mi přidělený projektový manager na schůzce povídá: „Klient chce jednoduchou aplikaci s CMS, se statistikami a mailing machine. Na vše je super timinig 30 ManDay, tam je krásná rezerva.“

Trochu mě to překvapilo a nejdříve jsem chvíli zjišťoval, co znamenají výrazy RD, ManDay, PRD a Brief, aby mi bylo vysvětleno že jde o různé názvy pro dokumentaci. Záhy jsem začal přemýšlet, co je super na timingu 30 dní pro aplikaci této velikosti.

Ale tak co už. Patrně to odhadoval někdo kdo to zná, takže jsem si začal připravovat prostředí pro vývoj. Pomáhal mi s tím kolega, který ve firmě již delší dobu pracoval a byl mi přidělen jako buddy, neboli ten, který ti vše do začátku vysvětlí a se vším pomůže. Ihned po příchodu do kanceláře, celý natěšený do práce, jsem ho požádal o pomoc. Vypadalo to nějak takto:

Kolega: Prvně si tam nainstaluj Vagrant.
:  Vagrant, co to je?
Kolega: Vagrant to je virtualizace jako Docker, která běží nad Virtualboxem.
: Ehm, Virtualbox?
Kolega: To je software pro virtualizaci prostředí různých systému, umožňuje ti mít na PC více OS. Pro tebe to bude aplikace, ve které ti poběží tvůj lokální vývojový server. V něm ti pak poběží NGNIX server a další.
: NGNIX?
Kolega: To je webový server jako Apache.
: Aha a kde si stahnu toho indiána? (Povídám s úsměvem)
Kolega: Ach jo, toho si nikde nestáhneš, ten je už v boxu, co dostaneš. Víš co, pusť mě k tomu, já ti to nainstaluju.

Osobně jsem si oddych a byl rád, že mi kolega pomůže. Přeci jenom šlo o pár nových věci, které neznám. Kolega, po nějaké době těžkého oddychování, na mě vypálil další otázku:

Kolega: Jsi zvyklý na Gulp nebo Grunt, nebo používáš jen NPM?
: Jak to myslíš? Na co to mám používat?
Kolega: Na sass a lintování, kompilaci obrázku, prostě klasiku… nebo ještě používáš less?
: Les? Sas?
Kolega: No CSS preprocessory.
: Jo, CSS používám. Ale tamto jsem ještě neslyšel, co jsi to ještě říkal litování?
Kolega:  Ne, lintování, to je od slova Linter. Nebo čím kontroluješ u svého kódu, že splňuje coding standards? Víš co, to teď nechme být. V jakém frameworku vlastně děláš?
: Frameworku?
Kolega: No, pro PHP?
: Jo, dělal jsem v PHP.
Kolega: Aha… No dneska se v čistém PHP už nedělá, jsou frameworky. U nás je to převážně NETTE, na to se zaměř, jinde třeba Symfony nebo Laravel.
: A to nette, je co?
Kolega: Framework od Grudla.
: GRUDL? To je tam ta věc na CSS?
Kolega: Ne, to je programátor, tamto byl GRUNT.
: Aha, no já zatím používal jen Framework jQuery pro Javascript.
Kolega(s žilkou na čele): Tak prvně jQuery není Framework, ale knihovna, a používalo se to tak před 5 lety.
: A dneska se používá co?
Kolega: ES6 a odvozené preprocesory jako je CoffeeScript nebo TypeScript.
: ES6?
Kolega: To je nový standard pro Javascript, nástupce ES5.
: Javasript má standardy?
Kolega: Hmmm…

Po nějaké době, kdy jsme mlčky vedle sebe seděli, kolega s hlubokým výdechem povídá:

Kolega:  Máš to připravený, ještě ti založím repositář.
: Repositář? Jako na archivaci?
Kolega: Ne, Gitový repositář na verzování kódu, CI a deploy.
: CI? Deploy?
Kolega:  No, při nasazení kódu?
Já (s poznáním): To je jako FTP?
Kolega (oči v sloup):  FTP se používalo tak před 10 lety, dneska se používají verzovací systémy s automatickým nasazením.
: Ok. Kde si stáhnu tedy ten NETTE Framework?
Kolega: Ten si nestáhneš, ten získáš přes composer.
: Composer?
Kolega: To je jako Bower, ale pro PHP závislosti.
: A co je Bower?
Kolega (značně otráveně): To je balíčkovací systém pro Javasripty a CSS napsaný pro NODE.
: V N.O.D.E?
Kolega: To je NODE.JS, zjednodušeně Javasript pro server.
: Aha, oni jsou Javascriptové servery?
Kolega: Ne, NODE.JS je implementace Javasriptu pro serverové použití.
: OK, takže si stáhnu ten NODE.JS a v něm pak naistaluju ten Composer a Bower?
Kolega: Bower ano, ale Composer je zkompilované PHP.
: PHP se kompiluje?
Kolega: Někdy ano, ale v NETTE se to nepoužívá, protože tu máš zakešované DI.
Já (retardovaný úsměv): DI? Jako Dopravní informace?
Kolega: Né, Dependecy Injection container. To je návrhový vzor, jako MVC nebo MVP, třeba.
: Aha, to je teda novinek. Nějak vlastně nevím ani jak teď začít.
Kolega: No asi nejdříve si projdi UX a připrav si ER model, pak si udělej migrační skripty, vygeneruj entity a připrav si componenty s faktorkami, potom si připrav lokální repositář, udělej prvotní commit a pushni ho do repositáře na serveru. Až to budeš mít a projdou ti UNIT testy, tak můžeš začít makat na jednotlivých modulech.

V tu chvíli již nebylo v mých silách se kolegy ptát na význam všech těch „sprostých slov“, se smutný hlasem jsem mu poděkoval, a jelikož se můj první den chýlil ke konci, odebral jsem se domu přemýšlet, zda je v lidských silách, se ještě v dnešní době vůbec vrátit mezi programátory.

SPOILER ALERT:

Je to možné. Dělám tu práci rád už druhým rokem a nakonec to nebylo tak těžký, jak se to první den zdálo.

Teď ale vážně. Kdybyste si chtěl/a být programátorem nebo rozvíjet svou kariéru, hledáme vývojáře. Ideálně se znalostí Nette. Podrobnosti najdete na kariérních stránkách!

Kategorie: Agentura, Wunderlidi