Alexander
Alexander
есть аналог на go ? apache camel ? есть что-то похожее ? jboss drools ? bpmn ?
Alexander
а зачем в go аналоги всяких мультитулов ?
Alexander
инструмент надо выбирать под задачу
Alexander
именно. поэтому го пока не для энтерпрайза.
Alexander
точнее не замена той же джаве
invariance
invariance
С каких пор энтерпрайз вообще подразумевается в контексте одного языка какого то
invariance
в 2017 году
invariance
вы че, люди)
Alexander
дело не в языке. дело в экосистеме
invariance
Именно
invariance
и вы продолжаете говорить, что го не для энтерпрайза, а вот джава другое дело
invariance
хотя их можно юзать в одной экосистеме и жить счастливо
Alexander
invariance
и еще кучу инструментов и языков
Alexander
у го маленькая ниша в традиционном тырпрайзе
Alexander
но шансы вклинится есть
Alexander
так я и начал блин с того, что у го хорошие шансы вклиниться
Alexander
но задач, которые с помощью го решаются лучше чем на других инструментах - пока невелико
Alexander
именно поэтому я на нем пилю пет проекты, ну и может попробую потихоньку какие-то эмули в рабочем окружении поднимать
Alexander
вдруг прокатит
invariance
Alexander
видел монолиты, которые жрали несколько десятков гигов памяти просто при запуске
Anton
Йеп, вот что-то вроде такого
Anton
+ когда у нас какой-то кусок начинает создавать проблемы, то можно его выкинуть и переписать сильно оптимизировав на чём хочешь
Fedor
все зло от сервисов на яве ))))
Anton
Само собой, что при масштабировании тут возникает целая куча проблем: с дискавери, хелф чеками каждого сервиса и вот этим всем, но до этого момента всё прекрасно для развития и поддержки проектика :)
Valentin
Alexander
Alexander
а если ограничивать ресурсы на JVM то тупить начинает
Alexander
в место эластика начал вот это использовать - https://github.com/blevesearch/bleve
Alexander
ну если еще sphinx n-граммы допилят то можно на него смело пересаживаться
Fedor
И все-таки где можно почитать best practice для go?
Alexander
https://golang.org/doc/effective_go.html
Fedor
по прежнему решаю задачки из тура и у меня волосы дубом встают от того, как ужасно это выглядит
Fedor
вот что в effective_go, что в статьях из интернетов, для обработки ошибко создают структуру из строк, и метод, который для этой структуры возвращает общую строку с ошибкой
Fedor
в туре же просят сделать type ErrNegativeSqrt float64, и написать для него метод такой, что: ErrNegativeSqrt(-2).Error() будет возвращать строку с ошибкой
Fedor
тоесть проверка на ошибочное состояние должна происходить внутри метогда вызывающего ошибку
Fedor
нахрена это надо, если я этот метод буду вызывать только если уже проверю, что у меня число отрицательное?
Alexei
Aleksandr
Fedor
это понятно, вопрос почему они предлагают тип ошибки делать float64
Fedor
https://go-tour-ru-ru.appspot.com/methods/20
Alexei
он лишь выводит в текст отрицательное число
Fedor
Может я и правда не так условие понимаю, но
объявив для него метод
func (e ErrNegativeSqrt) Error() string
такой, что ErrNegativeSqrt(-2).Error() возвращает "cannot Sqrt negative number: -2"
Fedor
как я понял, они хотят что бы этот метод возвращал текст ошибки, только если передано отрицательное число
Fedor
что не имеет смысла, если проверка идет перед вызовом метода
Fedor
я уж даже на русский перешел что бы лучше условие понимать...
Alexei
Fedor
ну я по сути так и сделал
Aleksandr
Aleksandr
Sqrt должна вернуть не-nil значение ошибки, когда получает на вход отрицательное число, т.к. не поддерживает комплексные числа.
Fedor
ок, тоесть проверки внутри они от меня и не ждут
Fedor
хорошо, спасибо
Alexei
это было бы бессмысленно
Fedor
ну вот это меня и удивлят, что это бессмысленно, а вроде как просят
Aleksandr
Aleksandr
Roman
Roman
иии?
Alexander
Alexander
куда все будут ходить за модельками
Alexander
нет ни одной проблемы, которую нельзя решить введением еще одного слоя абстракции (с)
invariance
😂
Aleksandr
наследование ради наследования, хэлперы в моделях, протечка вьюшек в модели, модели в контроллеры, обмазывание статикой и магией, "фейсбуку это скажите" - слышали, слышали...
Aleksandr
да, god object, конечно.
3030
получилось у меня заставить работать goland+docker+debug, но вот только как-то частично. Где-то брейкпоинты срабатывают, где-то нет. Не срабатывают когда в самом goland'е брейкопоинт с крестиком стоит: http://prntscr.com/heot3h
В соседнем файле, крестика нет и бп работает: http://prntscr.com/heotfz
Anton
а как жить, когда нужно шарить модельки данных между сервисами?
Вас же не заставляют прям каждую модель пилить в микросервис и потом думать как они вообще должны работать друг с другом. Пилите сервисы на логические куски, группируйте модели и их взаимодейтсвие. А если у вас ситуация, что всё взаимодействует со всем, то да, микросервисы вам не подходят. Микросервисы это не грааль, а всего лишь подход.
folex
Вечер добрый.
Скажите, у кого-нибудь работает
go get git.apache.org/thrift.git/lib/go/thrift?
У меня бесконечно висит, видимо их git висит :(
пробовал так же зеркало
go get -u github.com/apache/thrift/tree/master/lib/go/thrift, но там странное:
package github.com/apache/thrift/tree/master/lib/go/thrift: cannot find package "github.com/apache/thrift/tree/master/lib/go/thrift" in any of:
/usr/local/Cellar/go/1.7.5/libexec/src/github.com/apache/thrift/tree/master/lib/go/thrift (from $GOROOT)
$HOME/go/src/github.com/apache/thrift/tree/master/lib/go/thrift (from $GOPATH)
И я как-то теряюсь что делать дальше.
Vasily
go get -u github.com/apache/thrift
Vasily
а, не , там всё равно подпапка
Vasily
go get git.apache.org/thrift.git/lib/go/thrift/...