Kirill
ainu
И тут все идет лесом, рендер на сервере обязателен, а если рендер на сервере то на клиент уже наплевать. Всё равно придется делать рендер.
ainu
есть такой сайт, vtb24
ainu
банк такой
ainu
вот он на яваскрипте.
ainu
яндекс, гугл, бинг, мейлру поисковики на данный момент находят странички из него
ainu
а поддержка поисковиками - на мой взгляд и есть переломный период
ainu
для всяких CRM, админок, панелей, клиентбанков и так далее, что не должно поисковиками индексироваться, такой момент уже настал.
Kirill
Kirill
где ты XHR откопал?
Kirill
на дворе 2017 год
Kirill
если меня никто в машину времени не закинул
Mike
я так назвал асинхронные запросы на js
Mike
потому что три буквы быстрее написать
Mike
чтобы суть передать
Mike
а не думать про фетчи и т.п.
Kirill
не пугай)
Mike
))
Mike
короче суть была в том, что ты на серве рендеришь только точку входа по урлу
Mike
а на клиенте потом не странички запрашиваются, а данные
Mike
чет читаю что пишу и не оч понятно
Mike
меня понятно?)
Anonymous
Anonymous
Тем не менее, хочешь web 2.0 - юзаешь js.
Anonymous
И никуда мы не денемся (пока?)
Mike
не ну ты можешь юзать скольугодно общирный зоопарк того, что в js компилится
Mike
кофе, кложур, тайпскрипт, асм, тысячи их
Anonymous
Можно сказать, что js эти языки - это как ассемблер и все остальные языки.
Anonymous
Итого получаем, что js - это ассемблер в мире веб. 😄
Mike
https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript
Mike
ainu
неправда, сейчас сайты постпенно все уходят на SPA, на сервере только инишиал рендер, а дальше клиент подхватывает и только XHR использует для обновления данных
Я вот про что. Инишиал рендер сейчас камень преткновения обычных сайтиков (не SPA). Он обязателен, для него нужен javascript, или go+javascript v8.
Либо отказываемся от react и делаем сервер на rails/laravel/1С-Битрикс/Wordpress - тот же самый initial.
Если есть initial render, то бизнесу уже не надо делать SPA по большому счету, сойдёт и так.
Современная тенденция ведет к тому, что для SEO становится не нужен initial render. И это в корне меняет ситуацию - на сервере уже не нужен javascript, просто несколько http api, они могут быть даже на нескольких языках/серверах.
И эта тенденция круто, ящитаю.
ainu
Эту тенденцию можно назвать "отказ от initial render".
Anonymous
Мало тормозящих атомов теперь ещё и сайты будут требовать по 4 Гб оперативки
ainu
Вторая тенденция есть кстати в мире фронтенда, тоже хорошая, хоть и молодая. Подсчитали, что на компиляцию яваскрипта браузеру тоже нужно время, это дело не мгновенное. Для мегабайтового js нужны секунды.
ainu
В связи с этим появляется тенденция унять жадность
ainu
Например, для вездесущего react (примерно 200-300 килобайт) есть Preact - уменьшенный клон размером 3 килобайта.
ainu
redux весит 2 килобайта.
ainu
Тенденция молодая, но сайты тормозить не будут.
ainu
плюс отказ от всяких jquery
Mike
Я вот про что. Инишиал рендер сейчас камень преткновения обычных сайтиков (не SPA). Он обязателен, для него нужен javascript, или go+javascript v8.
Либо отказываемся от react и делаем сервер на rails/laravel/1С-Битрикс/Wordpress - тот же самый initial.
Если есть initial render, то бизнесу уже не надо делать SPA по большому счету, сойдёт и так.
Современная тенденция ведет к тому, что для SEO становится не нужен initial render. И это в корне меняет ситуацию - на сервере уже не нужен javascript, просто несколько http api, они могут быть даже на нескольких языках/серверах.
И эта тенденция круто, ящитаю.
не правда, кстати. поисковики как бы ни обещали что будут js выполнять, они это уже лет 5 обещают, все еще хуй
An7on
Гугл вроде норм выполняет
ainu
Я вчера проверял =) сайт vtb24.ru (к нему отношения не имею). Без initial render, страницы находятся в 4 поисковиках.
ainu
Яндекс и гугл за title сичтают тайтл не из кода страницы, а установленный яваскриптом.
ainu
Так что переломный момент настал, ждем.
ainu
ждем сайтиков на go, помяните мое слово.
Алексей
Mike
Так что переломный момент настал, ждем.
1) js разный бывает. они выполняют какой-то, но дааааалеко не весь. это я тебе как человек постоянно SPA делающий говорю. Без SPA я долбил сайты, перезагрузка страницы целиком — прошлый век, вылядит отвратительно.
2) мало индексации поисковиками, браузеры не выполняют ничего, кроме js, и это не изменится в обозримом будущем, потому что поддерживать старые тоже надо, поэтому все все равно будут js делать.
Mike
а твой аргумент в том, что мы на сервере все отрендерим хорош, да только потом все равно на странице динамика нужна. без скриптов ты этого не сделаешь как ни крути
Mike
а поисковики не рендерят js со сложным стейтом, который куски дома пересыпает не сразу при загрузке, а отложено
Мерль
olebedev/go-starter-kit: Golang isomorphic react/hot reloadable/redux/css-modules starter kit
https://github.com/olebedev/go-starter-kit
Мерль
ainu
ainu
ainu
Охренеть
ainu
https://github.com/dop251/goja
ainu
в самом деле
Alexei
баньте ее сразу, ща тут фоты положит
Мерль
Вжух
Anonymous
Мерль
http://4gophers.ru/articles/vpn-eto-prosto/
Mikalai
Sander
```bash: /bin/mycnf_generator: cannot execute binary file: Exec format error```
почему не могу запустить бинарник, через макбук все работает
Sander
но сразу как заливаю к debian контейнер то нет
Aleksandr
Sander
go build test.go CGO_ENABLED=0 ?
Sander
я просто компилил go build test.go
Kirill
Sander
как поставить
Aleksandr
вообще да, платформы-то разные)
Kirill
вот и ответ
Kirill
GOOS=linux GOARCH=amd64 go build
Aleksandr
https://dave.cheney.net/2015/08/22/cross-compilation-with-go-1-5
Sander
не хочет компилиться, куча всяких ошибок, но без этих параметров все окай
Kirill
Sander
```
$ GOOS=linux GOARCH=amd64 go build mycnf_generator.go
go build math: /usr/local/Cellar/go/1.6.3/libexec/pkg/tool/darwin_amd64/asm: signal: segmentation fault
fatal error: unexpected signal during runtime execution
[signal 0xb code=0x1 addr=0xb01dfacedebac1e pc=0x17cc70]
goroutine 15 [running]:
runtime.throw(0x689a00, 0x2a)
/usr/local/Cellar/go/1.6.3/libexec/src/runtime/panic.go:547 +0x90 fp=0xc820333250 sp=0xc820333238
runtime.sigpanic()
/usr/local/Cellar/go/1.6.3/libexec/src/runtime/sigpanic_unix.go:12 +0x5a fp=0xc8203332a0 sp=0xc820333250
sync.(*Pool).Get(0x882700, 0x0, 0x0)
/usr/local/Cellar/go/1.6.3/libexec/src/sync/pool.go:102 +0x40 fp=0xc8203332f0 sp=0xc8203332a0
fmt.newPrinter(0x96f0d0)
/usr/local/Cellar/go/1.6.3/libexec/src/fmt/print.go:133 +0x27 fp=0xc820333330 sp=0xc8203332f0
fmt.Fprint(0x9c1220, 0xc82002c018, 0xc8203d0640, 0x2, 0x2, 0x9b22e, 0x0, 0x0)
/usr/local/Cellar/go/1.6.3/libexec/src/fmt/print.go:221 +0x2d fp=0xc820333378 sp=0xc820333330
main.(*builder).init.func1(0xc8203d0640, 0x2, 0x2, 0x464d20, 0x0, 0x0)
/usr/local/Cellar/go/1.6.3/libexec/src/cmd/go/build.go:751 +0x71 fp=0xc8203333d0 sp=0xc820333378
main.(*builder).showOutput(0xc820178850, 0xc820161200, 0x2c, 0xc820151ee6, 0x5, 0xc8200b8000, 0xbc6)
/usr/local/Cellar/go/1.6.3/libexec/src/cmd/go/build.go:1954 +0x3c7 fp=0xc8203334e8 sp=0xc8203333d0
main.(*builder).build(0xc820178850, 0xc82024cd00, 0x9bd028, 0xc820492490)
/usr/local/Cellar/go/1.6.3/libexec/src/cmd/go/build.go:1486 +0x2378 fp=0xc820333df0 sp=0xc8203334e8
main.(*builder).do.func1(0xc82024cd00)
/usr/local/Cellar/go/1.6.3/libexec/src/cmd/go/build.go:1257 +0x3b2 fp=0xc820333eb0 sp=0xc820333df0
main.(*builder).do.func2(0xc8203604e0, 0xc820178850, 0xc82037bde0)
```