
Alexey
14.01.2018
21:09:59
https://github.com/gopherjs/gopherjs
https://github.com/gopherjs/gopherjs/blob/master/doc/packages.md
вопрос в другом, если есть gopherjs, то нафига вообще js?

Alexander
14.01.2018
21:11:01

Google

Alexey
14.01.2018
21:11:11
какой псих будет продолжать писать на js когда есть go?

Alexander
14.01.2018
21:11:33

Alexey
14.01.2018
21:11:49
по крайней мере что-то длиннее однострочечников писать на js смысла нет
если веб-апликация, то только golang!
если фоном помигать, кнопкой по экрану поплавать за мышкой - ну, это наверно и на js можно написать, чо. если оно глюканет, ничего страшного. да и кода не много.

Alexander
14.01.2018
21:12:41
сделают React на go посмотрю)
а совместимость с js, то есть вызов js внутри go?
как то много кода выходит
смотрю из репозиторий
document.write("Hello world!");
->
js.Global.Get("document").Call("write", "Hello world!")

Alexey
14.01.2018
21:14:58
https://github.com/gopherjs/gopherjs#providing-library-functions-for-use-in-other-javascript-code

Alexander
14.01.2018
21:15:08
и дебажить чувствую будет больно
пока не вижу это для SPA

Google

Alexey
14.01.2018
21:16:05
оно поддерживает source map
так что не так уж и больно
вообще, это ж go! это не богомерзкий js. в go дебажить приходится сильно меньше.

Alexander
14.01.2018
21:17:33
среда выполнения все равно js
и разные браузеры

Alexey
14.01.2018
21:18:24
ну, логи глянешь, чо :-)

Alexander
14.01.2018
21:18:38
не проект интересный, посмотрим что из этого получится

Alexey
14.01.2018
21:19:06
если что, webasm из этого не получится
а gopherjs уже получился. он же довольно давно существует.
там и биндинги к реактам всяким есть
https://github.com/gopherjs/gopherjs/wiki/bindings

Den
14.01.2018
21:24:04

xPushkin
14.01.2018
21:24:29

Demuz
14.01.2018
21:24:32

Alexander
14.01.2018
21:24:33

Alexey
14.01.2018
21:24:43

Demuz
14.01.2018
21:25:26

xPushkin
14.01.2018
21:25:37
Если я не ошибаюсь, то JSON ключи принято называть с маленькой буквы.

Demuz
14.01.2018
21:26:02

Google


Alexander
14.01.2018
21:26:21
https://github.com/gopherjs/gopherjs/wiki/bindings
package hellomessage // import "myitcv.io/react/examples/hellomessage"
import (
"myitcv.io/react"
)
//go:generate reactGen
// HelloMessageDef is the definition of the HelloMessage component
type HelloMessageDef struct {
react.ComponentDef
}
// HelloMessageProps is the props type for the HelloMessage component
type HelloMessageProps struct {
Name string
}
// HelloMessage creates instances of the HelloMessage component
func HelloMessage(p HelloMessageProps, children ...react.Element) *HelloMessageElem {
return buildHelloMessageElem(p, children...)
}
// Render renders the HelloMessage component
func (h HelloMessageDef) Render() *react.DivElem {
kids := []react.Element{react.S("Hello " + h.Props().Name)}
for _, v := range h.Children() {
kids = append(kids, v)
}
return react.Div(nil,
kids...,
)
}
func (h HelloMessageDef) RendersDiv(*react.DivElem) {}
вместо
import React from 'react';
class HelloMessage extends React.Component {
render() {
return <div>Hello {this.props.name}</div>;
}
}
как то дико )))


Alexey
14.01.2018
21:28:17
сравнивать размеры хелловорлдов как-то глупо. особенно у строго типизированного языка с эксплицитными импортами и типизацией с языком где слабая динамическая типизация с неявными всякими шнягами.

Alexander
14.01.2018
21:28:44

Demuz
14.01.2018
21:28:59

Alexey
14.01.2018
21:29:50

Alexander
14.01.2018
21:30:11
а вариант на js читается проще
да и функционально одинаковые вещи по обьему неплохо сравнивать
я на Go в фронт не полезу))) как backend и утилитки супер!

Alexey
14.01.2018
21:31:26
надо сравнивать по объему что-то реальное по размерам, а не прелюдию же

Demuz
14.01.2018
21:32:03
@Chebyrash , получается, если перезаписываешь значение переменной по указателю, так бытрей даже получается, чем перебирать всю карту, карту в карте и внутри нее еще карту? Я не опираюсь на скорость. Просто по логике так получается?

Alexey
14.01.2018
21:32:10
и надо сравнивать не объем, а скорость разработки. и скорость с которой человек сторонний может войти в проект например. разобраться кто на ком стоял

Alexey
14.01.2018
21:32:23
а это проще если в коде больше эксплицитных штук и меньше имплицитных

Alexander
14.01.2018
21:33:00

Alexey
14.01.2018
21:33:17
в проде и go то не особо видно :-)

Alexander
14.01.2018
21:33:54

Alexey
14.01.2018
21:33:57
полагаю gopherjs не успеет распространиться значимо до момента когда львиную долю вебапликаций начнут по большей части на C++ и Rust'e писать :-) через webasm

Alexander
14.01.2018
21:34:33

Alexey
14.01.2018
21:34:35
Среди софтвера который управляет SDC - тоже как-то golang не видно :-)

Google

Alexey
14.01.2018
21:34:55
но golang не входит в поддерживаемые языки в яндексе. то есть это партизанство было и осталось.

Alexander
14.01.2018
21:35:23

Alexey
14.01.2018
21:35:33
на сях вроде нет
c++, python и java
в основном ручки на c++ (самые важные и нагруженные), всякие прототипы и то что не особо важно - на питоне.
java несколько особняком

Admin
ERROR: S client not available

Alexander
14.01.2018
21:38:40
что все так java любят
питон сейчас понятно почему все юзают - bigdata и машинное обучение, все нормальные инструменты на питоне

xPushkin
14.01.2018
21:41:00

Alexander
14.01.2018
21:42:35
капаюсь у них в репе, все через grablew
не нафиг))) пойду go сны покодю))) совращаете меня тут скалами да котлинами))))

Oleg
14.01.2018
22:03:04
gopherjs это стеб. rust не взлетит - слишком большой порог входа. а вот гошечка взлетела. Именно потому что порог входа маленький. Ну и против бинарей не попрешь.

Alexey
14.01.2018
22:23:37

yuriy
14.01.2018
22:25:23
ну гофержс это какая то шиза) прикол js в отсутствии ограничений, минус жс в v8
писать го код с тонной ограничений, чтобы потом получить яваскрипт
это самое больное что только может быть

Oleh
14.01.2018
23:21:43
менше помилок

Google

yuriy
14.01.2018
23:22:06
да в мире в котором нет тайпскрипта это неплохая задумка)))))))

Oleh
14.01.2018
23:22:45
тайпскрипт нужно еще розбирать как работает) а тут родная гошечка)

yuriy
14.01.2018
23:23:26
родная гошечка...
это сколько лет должно быть))))

Max
15.01.2018
03:39:12
Господа, день добрый.
Есть дефолтный сервер net/http, ставлю ему http.HandleFunc("...", callback) соответствующий хандлер.
Если в колбеке сделать panic, то сервер выплюнет мне стектрейс и продолжит крутить этот же колбек дальше.
Т.е. если я открываю в браузере "/home/" и в обработчике там вызывается panic, то мне выплюнются все стектрейсы от нескольких горутин, которые попытались обработать этот колбек (т.к. сервер не отдает response, браузер посылает как минимум два запроса за секунду).
Собственно вопрос - как заставить сервер в таком случае (при перехвате panic) просто отдавать 500 ошибку?

Arteev
15.01.2018
03:44:13

Max
15.01.2018
03:47:22
1. не делай panic 2. Возвращай сам 500
в моем случае, у меня в недрах хандлера был косяк с указателем, но я об этом сразу не догалался, т.к. читал прежде всего свои log.print(err), которые срабатывали, если в этот самый хандлер зайти еще раз

Arteev
15.01.2018
03:51:15

Max
15.01.2018
03:54:40

Arteev
15.01.2018
04:07:44

Max
15.01.2018
04:17:55
В любом случае благодарю. Судя по соответствующему proposal на гитхабе с этим же предложением там также предлагается оборачивать все руками

Arteev
15.01.2018
04:26:57
?не за что

Marlik
15.01.2018
05:40:44
Люди, есть какие-нибудь бест практик по созданию web приложений? Может какие статьи на русском, переводы, образцы кода на гитхабе? А то залез в тырнет, столько незнакомых фраз начитался))

Egor
15.01.2018
06:44:59
Best practices пока особых нет. Смотри популярные проекты: gorilla toolkit, beego, gitea

Demuz
15.01.2018
07:09:45

Alex
15.01.2018
07:23:48
Вообще, пользоваться его разработками некое "табу" для уважающих себя и сообщество людей