Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
целью было создать не простой, а именно обрезанный язык.
На мой взгляд, ReactPHP — это не более, чем попытка доказать, что в PHP можно делать вещи в стиле JavaScript / Node.js.
Редкие фреймворки и библиотеки для PHP спроектированы для асинхронного программирования.
думаешь о Layers, Abstractions, Interfaces, продумываешь архитектуру и заботишься о том, как этот код будет поддерживаться в дальнейшем, и в большинстве случаев… упираешься в простоту Go и приходиться опять искать другую реализацию архитектуры
и не надо пытаться вот тут вот сделать интерфейс, а вот тут вот убрать повторение кода, чтобы следовать DRY
Теперь давайте вспомним, как мы меняем значения двух переменных в PHP:
$a = 1;
$b = 2;
list($a, $b) = [$b, $a];var1, var2, var3 := true, "text", 10var1, var2, var3 := myFunc()a, _, b = b, c, aecho memory_get_usage() - $startMemory, ' bytes';
// 14649168 bytesecho memory_get_usage() - $startMemory, ' bytes';
// 4198640 bytesif ($my_var) { /* .... */ }if($test)
echo "Ok";
echo "Test passed!";А теперь поговорим о процессе развертки Go приложения:
Каждый PHP разработчик знает, что, если ему удасться довести время инициализации большого монолитного приложения до 30мс, это отличный результат! Добавить к этому 50-100мс для обработки самого запроса, и перед нами поразительное общее время ответа.
Развертка приложения — необходимое действие и не зависит от языка программирования и того, что пишут с его помощью. Будучи PHP программистом, сколько Capistrano или Envoy конфигураций вы написали за свою профессиональную карьеру? Сколько файлов, измененных вручную, вам приходилось переносить на хостинг-провайдеры во времена FTP?
$ php5-fpm reload
Далее приводиться огромный список шагов, который не отражает действительность. Первичная настройка капистрано — 5 минут. Деплой — одна консольная команда.
Если время ответа CRUD сервиса на Go составляет 10мс, я бы занялся поиском причин.
А разве то, что делает эта консольная команда, — не тот же самый «огромный список шагов»?
в котором много подводных камней
Многие компании, такие как Facebook, Yahoo!, Wikipedia, Wordpress, Tumblr, начинали свою историю с PHP
fmt.Printf("Employees: %s, %s", <-c, <-c)"Employees: %s, %s", <-c, <-c. То есть для вывода на экран значений она сначала вытащит два значения из канала. Если в канале значений нет, то "<-" будет ждать их появления.select {
case str := <-c:
// значение было в канале и мы его вытащили в str
default:
// канал еще пуст
}
Go с точки зрения PHP программиста