Marek Gach29.4.2013Zpět

CakePHP developer? We Want You

Hledáme člověka na práci. Člověk by měl umět CakePHP nebo jiný framework v PHP a pak být schopen nás přesvědčit, že je tento framework lepší volba. Nabízíme zajímavou práci na dvou projektech - systém správy redakce známého magazínu a fantasy herní portál. Jde o skutečnou práci za kterou dostanete sjednanou odměnu. Bude nutná alespoň částečná docházka do Kurzoru. Proč na to kývnout, to si přečtěte níže v článku.

Co nás sem přivedlo

Kromě vlastního systému 3OS, který funguje jako rychlý a spolehlivý redakční systém pro provoz všech našich webů klasické stavby – včetně toho, na který se právě díváte – jsme reálně vyvíjeli projekty ve dvou frameworcích: Zend a Ruby on Rails. Šlo vždy o větší projekty. 

Zkušenosti s frameworkem Zend ukázaly, že ve starší verzi 1.0 je použitelný i na větší projekty. Křivka učení byla překvapivě rychle stoupající. Základy bylo možné zvládnout za měsíc. Jediným limitem je, že tato verze neřeší ACL, databázi pokročilejší konfigurace. Vše si člověk musí napsat sám nebo vhodně převzít. Nevýhodou je také to, že docela dlouho trvá než si člověk osvojí formuláře a pokročilejší práci s nimi. Pak je ale možné zvládnout i pokročilejší formuláře lépe než třeba v Nette

S příchodem nové verze Zend Framework 2.0 se spousta zmíněných věcí integrovala přímo do knihoven frameworku. Jedinou nevýhodou je to, že Framework v nové verzi je naprosto nepochopitelně dokumentovám a v některých věcech hodně odlišný od předchozí verze. Doplatila na to například naše česká vyhledávačová jednička při přepisu svých portálu na novou verzi frameworku. Dle slov kolegy byl problém i v tak elementárních věcech jako routing. S příchodem nové verze přestal nabízet školení Zendu i David Grudl se slovy: „Omlouváme se, ale školení Zend Frameworku již nenabízíme. Po uvolnění Zend Framework 2.0 rozhodně doporučujeme přejít na jakýkoliv jiný framework.“ 

Oproti tomu Ruby on Rails je fenomén, který zahrnuje víc než framework. Je špičkový ve všech měřitelných parametrech a zejména co se podpory týče, PHP frameworky působí proti RoR jako dětské projekty. Jeho marketing je mnohem propracovanější, chcete-li. Na druhou stranu, tento marketing, zabírající na startéry nových projektů, nějak selhává při práci s novými programátory, kteří by se měli RoR učit aktivně používat. Ať děláte co děláte, v ČR prostě dost kvalitních lidí na RoR neseženete. A když ano, jsou si toho vědomi a z toho plyne jejich mzda. 

Ruby s Rails jsou skvělý jazyk (Ruby) propojený s výborným řešením (Rails). Framework se neutápí se na vlně filozofujícího teoretismu, ale velmi aktivně implementuje nové a nové technologie – viz změna mezi verzí 3.0 a 3.1. Jsou celé aplikace, které můžete skládat jen z dobře fungujích pluginů. Na druhou stranu, že u toho nepotřebujete umět programovat, je mýtus – ale míra programátorských dovedností požadovaná není tak značná, jako by byla např. u zmiňovaného Zendu. 

Proto je škoda, že se RoR neučí na školách (kromě pár výjimek) a vůbec neexistuje větší podvědomí o tom – dobře postavená aplikace = RoR. V tuto chvíli pro nás nicméně nedává komerční smysl preferovat RoR, byť na něm stále aktivně provozujeme dva projekty a pravděpodobně na RoR budeme v budoucnu i stavět Kurzorovo CRM. 

Rozhodování

Poslední dobou, s rostoucím počtem projektů, se však naprosto logicky objevuje požadavek pokročilý vývoj v Kurzoru sjednotit. Je mnohem efektivnější mít jeden framework ve kterém už budeme dělat všechny další velké věci, než tříštit síly na podporu dalších a dalších řešení.

Při výběru vhodného frameworku jsme museli myslet na:

  • lidi - ideálně abychom postihli relativně velkou skupinu možných zaměstnanců a spolupracovníků, kterou můžeme bez velkých vstupních bariér do projektu zapojit. Z toho plyne konkrétní podmínka, aby framework byl v PHP,
  • čas - protože je času vždy málo, lepší je framework, který se dobře učí, který stojí na principech již objevených, který je možná méně výkonný, ale více srozumitelný a velmi dobře dokumentovaný,
  • budoucnost - abychom se nemuseli mlátit po dvou letech do hlavy, že jsme vlastně udělali hodně špatnou volbu a teď neseme následky. To znamená rozšiřitelnost, inovace, neustálý vývoj a rostoucí komunita frameworku.

Výběr

Do finálního kola postoupily PHP frameworky: CodeIgniter (resp. Kohana), Zend Framework 2, Nette, Yii, CakePHP, Symfony.

Rozhodovaly kritéria: rychlost vývoje, složitost základního CRUD, rychlost naučení, poslední release, velikost komunity, dostupnost rozšíření, ORM implementace, šablonovací systém, podpora testování, podpora PHAR / PHPComposer, bug tracking.

Výběr trval dva dny a vítězně z něj vyšel CakePHP. Líbila se nám například velká příbuznost s Ruby on Rails. Rails má totiž přístup, o kterém můžeme polemizovat v detailech, ale celkově je správný a promyšlený. A tím je i učení snazší. Také čitelnost a srozumitelnost kódu byla ze všech frameworků nejvyšší.

Koho tedy hledáme

Hledáme developera, který buď 

  • má znalosti a praktické zkušenosti v CakePHP,
  • má znalosti a praktické zkušenosti v jiném PHP frameworku a je schopen nám vysvětlit, proč je tento framework lepší volba, než CakePHP,
  • má znalosti a praktické zkušenosti v jiném PHP frameworku a je schopen se na CakePHP přeorientovat což je pro nás ale z časových důvodů nejhorší možná volba.

Chceme člověka, který:

  • se nebojí ukázat svoje reference
  • se rád učí nové věci
  • přemýšlí samostatně a přichází s vlastním řešením
  • dokáže delegovat některé různě složité činnosti na další členy týmu

Nabízíme spolupráci na dvou projektech, které aktuálně řešíme. Nemůžeme vyzradit víc, než že jeden z nich je online fantasy svět a druhý je pokročilý systém správy redakce a CRM informačního webového portálu.

Tyto projekty budeme řešit velmi brzy a spočívá v nich pár měsíců zajímavé práce. A předpokládáme, že pak se naše cesty nerozejdou a budeme pokračovat i v budoucnu.

Jak v Kurzoru pracujeme?

Na rozdíl od jiných webových studií se věnujeme v daleko větší míře návrhu aplikace. V Kurzoru typicky investor nezadává, jak má co vypadat a fungovat. Od toho jsme my. Máme vlastní analýzy a vytváříme finální podobu aplikace tak, aby nabízela co nejlepší UX pro své uživatele. Takto pracujeme u všeho, od webu až po monstrózní projekty webových portálů a aplikací.

Proto nepřijdete k projektu s vágními specifikacemi a vyhnete se WTF momentům typu - po dvou týdnech práce prezentuji výsledek a zjistím, že klient chtěl vlastně něco úplně jiného. Práce programátora u nás tak není tolik stresující, umožňuje lepší plánování a daleko více se můžete soustředit na správný návrh programového řešení a využití korektních postupů a technologií. Někdo jiný se totiž postaral o to, aby to jako celek dávalo smysl.

Proč má cenu pracovat u nás?

  • Můžete být součástí něčeho, co bude The next big thing. Kurzor roste, má potenciál a ví to i naši klienti. 
  • Můžete – a u nás budete k tomu aktivně vybízeni – používat věci, o kterých se v Praze mluví na konferencích. Už jste někdy klientům ukazovali testy v Cucumberu? Vy ještě neděláte CSS v LESS? Mluvíte CoffeeScriptem? Ne – a chcete to umět? Nechceme brzdit nové přístupy a technologie, když věříme v jejich potenciál. 
  • Nemusíte se bát, že vaše nápady budeme házet z okna. Někdy i zdánlivý nesmysl ovládne postupně celý svět.
  • Pracovní doba je flexibilní s tím že máme určité minimální požadavky na přítomnost na pracovišti – typicky polovinu pracovní doby. Je to zejména kvůli efektivnější komunikaci. 
  • V kanceláři nabízíme stálý přísun kvalitních energy drinků a zatraceně dobrou kávu jako bonus.
  • Máme tým mladých a oddaných lidí – viz náš tým – jasně, zní to jako hloupé klišé, ale naši stálí pracovníci tohle považují za jednu z výhod.
  • Získáte odpovídající platové ohodnocení dle zkušeností a zapojení se do projektu.

Zaujalo vás to? Pak se ozvěte:

Marek Gach
gach@kurzor.net
+420 725 475 981
Marek má v Kurzoru hlavní slovo ve vývoji.