Download - HHVM & Hack

Transcript

HHVM & Hackaneb jak to píše Facebook

Standa Jaša

▷ 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

HHVM at Etsy

https://kinsta.com/blog/hhvm-vs-php-7/

HHVM at Etsy

https://kinsta.com/blog/hhvm-vs-php-7/

▷ 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

Facebook View Layer (2)

Vsuvka - Facebook React JSX syntax

Hack v praxi http://hacklang.org/

▷ <?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

Díky za pozornost!Otázky?

Standa Jaš[email protected]


Top Related