▷ release cyklus každé dva týdny / resp. 2x denně
▷ kód se mění tak rychle, že se nedá použít find, grep, atd.
- soubory tam (už zas) nejsou, než skončíte search
▷ velmi plochá project-based architektura
▷ většina lidí používá vim / emacs => IDE to nenačtou
▷ např. jedna base class má 25 000 podtříd
▷ každou změnu musí schválit další programátor
Jakub Vrána byl ve Facebooku
▷ většina kódu neřeší view layer, ale používá rovnou XHP, eg.
$body = <body/>;
$html = <html/>->appendChild($body);
$body->appendChild(<h1>Hello {$name.$surname}</h1>);
▷ echo $html;
Facebook View Layer
▷ Původně PHP => C++ => gcc
▷ Teď virtuální stroj s databází, kde si drží bytecode
▷ Implementace PHP 5.6.99
▷ Dva týdny nightly a každý měsíc release (sudé a liché verze)
▷ wikipedia.org nebo wordpress
▷ Důvody:
o rychlost
o lepší chybové hlášky
o hack
HHVM
▷ Facebook už nebavilo hackovat PHP, tak si ho napsali znova
▷ php 5.3 je pořád standard pro syntaxi, i když už je chvíli EOL
▷ hack “nutí” typové anotace pro všechny typy
▷ hh_client v reálném čase analyzuje code-base v
▷ hackify - .php => .hh
▷ h2tp - .hh => .php54+
Hack Language
▷ <?hh // strict
o only typed-arrays, only hack code, no global state
▷ <?hh // partial
o default, allows // UNSAFE,
▷ <?hh // decl = unsafe whole file
▷ function foo() { // UNSAFE … }
Hack Modes