@proGO

Страница 1044 из 1674
Nikolay
10.12.2017
19:43:30
но я вообще про другое немного, с чисто функциональными языками до сих пор есть масса нерешенных проблем

Anton
10.12.2017
19:47:52
всем привет! перехожу потихоньку на Go с Node.js, столкнулся с такой штукой, что нужен scheduler, штука, которая будет ставить задания в очередь или выполнять какой-то набор действий по расписанию, например, отправить всем email в 12:00 каждый день. на ноде использовали agenda, может посоветуете что-нибудь? нашёл такую штуку https://github.com/ajvb/kala, но они вроде как в альфе и говорят не использовать в продакшене

Pawel
10.12.2017
19:48:24
но я вообще про другое немного, с чисто функциональными языками до сих пор есть масса нерешенных проблем
Так не только люди с улицы, инженеры тоже как то не пишут на хаскеле от слова почти совсем в сравнении с.. Проблема в том что их адепы и наиболее ряьные сторонники не фига их не понимают, и по этому используют не по назначению, как-то так

Google
Anton
10.12.2017
19:51:02
cron? причем тут вообще нода или го?
нууу.. он же не выполнит какую-то конкретную функцию из скомпилированного бинарника go, ему нужно подсунуть исполняемый файл

Nikolay
10.12.2017
19:51:34
нууу.. он же не выполнит какую-то конкретную функцию из скомпилированного бинарника go, ему нужно подсунуть исполняемый файл
так и не надо, чтобы он из бинарника функцию выполнял, надо бинарнику уметь передавать аргументы, чтобы он дергал только то, что надо

Pawel
10.12.2017
19:53:14
Необязательные аргументы в функциях Go ? Хабрахабр:  Go В Go нет синтаксиса для определения необязательных аргументов в функциях, поэтому приходится использовать обходные пути. Я знаю 2: Передавать структуру, содержащую все необязательные аргументы в полях: funcStructOpts(Opts{p1: 1, p2: 2, p8: 8, p9: 9, p10: 10}) Способ предложенный Робом Пайком с использованием функциональных аргументов: funcWithOpts(WithP1(1), WithP2(2), WithP8(8), WithP9(9), WithP10(10)) Второй способ в принципе делает тоже самое, но с синтаксическим сахаром. Мне не давала покоя мысль, а сколько же стоит этот сахар, кому ещё интересно прошу под кат. Читать далее ➡ https://shbr.xyz/hh344352
не надо тащить в Го костыли из других языков. Всякого рода перегрузки функции, вариацией которых являются необязательные аргументы, не просто так не включили в язык. Приведи пожалуйста пример из практики, в котром без необязательных аргументов никуда

Anton
10.12.2017
19:55:02
так и не надо, чтобы он из бинарника функцию выполнял, надо бинарнику уметь передавать аргументы, чтобы он дергал только то, что надо
ну в идеале, конечно, да. особенно, если вся архитектура на микросервисах и всё такое, узконаправленные процессы, отвечающие за небольшой набор функционала.

Nikolay
10.12.2017
19:55:09
ну в идеале, конечно, да. особенно, если вся архитектура на микросервисах и всё такое, узконаправленные процессы, отвечающие за небольшой набор функционала.
да не в идеале, а вообще. Меня всегда очень удивляли люди, которые в го, ноде, питоне, чем угодно пытаются периодические задачи запихать в сам код

Anton
10.12.2017
19:58:23
да не в идеале, а вообще. Меня всегда очень удивляли люди, которые в го, ноде, питоне, чем угодно пытаются периодические задачи запихать в сам код
ну хорошо, допустим, мы пока не ставим задачу написать супер-распределённый netflix, у которого есть отдельное приложение, рассылающее емэйлы. мне тогда нужно писать логику в свой монолит, что если он запущен с такими-то command-line аргументами, то просто дёрнуть какие-то данные из базы, отправить емэйл и завершиться?

Pawel
10.12.2017
20:00:53
примеров много, кстати, хоть тот же парсинг конфига с подстановкой значений из аргументов. Можно обойтись, да. Но с ними было бы удобнее.
удобней - как сказать. для такой функции можно создать структуру с указателями на не дефолтные значения, не вижу чем это хуже перегрузки функции. Если покажешь пример кода, иллюстрирующий проблему, могу более подробно пояснить свою мысль

Anton
10.12.2017
20:01:56
по сути да. Либо написать отдельный скрипт для этого
окей, а допустим юзер поставил галочку “присылать мне отчёт каждый день”, мне нужно прямо в Go вызвать exec.Command(“crontab -e”) и так далее?

Nikolay
10.12.2017
20:02:55
окей, а допустим юзер поставил галочку “присылать мне отчёт каждый день”, мне нужно прямо в Go вызвать exec.Command(“crontab -e”) и так далее?
при таком раскладе у тебя должен быть отдельный воркер вообще, который мониторит галочки разных юзеров и отправляет, что надо, когда надо

Google
Nikolay
10.12.2017
20:03:09
это не должно быть захардкожено в монолит

особенно если есть вариант, что завтра ты, скажем, переключишься с sendmail на postfix или еще и уведомления в телеграм добавишь

Anton
10.12.2017
20:07:36
это не должно быть захардкожено в монолит
звучит заманчиво, конечно. просто, например, в agenda есть вариант писать все поставленные в очередь задания в базу. тогда удобно сделать выгрузку из базы и показать, например, в админском интерфейсе все задачи, столько-то зафейленных, столько-то успешных. а тут получается нужно писать свой функционал поверх cron: запустился с такими-то параметрами, выполнил функцию такую-то, записал в базу результат выполнения

Nikolay
10.12.2017
20:08:12
язык тут вообще ни при чем

вот что-то более свежее https://github.com/rakanalh/scheduler

Anton
10.12.2017
20:18:51
он правда периодические только умеет, насколько я понял

Nikolay
10.12.2017
20:41:01
https://habrahabr.ru/post/344356/

я так понимаю, это перевод той самой статьи?

Artem
11.12.2017
03:03:09
Приветствую, ищу прогера для комбайна под linkedin. Необходим авторегистратор + рассыльщик. Работа через браузер с подменой отпечатков. Бюджет до 1 к $. Писать в лс

Alexander
11.12.2017
03:12:26
как это не писали, а Kotlin?
а разве Kotlin в native компилится?)

Mike
11.12.2017
03:12:54
а разве не так) нет ни одного разраба который бы не допускал тупейших ошибок в коде в своей жизни )))
И в го их допускать с учетом многословности и копипасты значительно легче))

?
11.12.2017
03:13:41
а разве Kotlin в native компилится?)
https://github.com/JetBrains/kotlin-native

Mike
11.12.2017
03:14:02
Если сравнивать с си и питоном — то и находить легче. Но взять любой другой статически типизированный язык, форсящий DRY, или тем более Rust, который отловит даже гонки данных на этапе компиляции, и как-то уже сомнительное преимущество

Alexander
11.12.2017
03:14:05
И в го их допускать с учетом многословности и копипасты значительно легче))
хрен знает... редко копипастом пользуюсь, через reflect и interface все делаю)

https://github.com/JetBrains/kotlin-native
без jdk не пашет) не собирется)

Google
Mike
11.12.2017
03:16:04
Да какая разница что там на компе разработчика?)

В нейтив то собирается

?
11.12.2017
03:16:20
+

Mike
11.12.2017
03:16:31
600 мегабайт на SSD жалко?

Alexander
11.12.2017
03:17:32
600 мегабайт на SSD жалко?
работает это чудодля backend не сильно быстрее )))

Mike
11.12.2017
03:17:56
Ну я думаю что быстрее, чем рефлексия во все поля)

И непрямые вызовы везде и всюду

по крайней мере не медленнее

А язык значительно более выразительный

Alexander
11.12.2017
03:18:40
тем более kotlin из коробки много чего не умеет, надо либы юзать) большинство это java

А язык значительно более выразительный
с этим не могу не согласиться)))

но пока не вижу как альтернативу для перехода в плане серверной разработки

Mike
11.12.2017
03:19:53
Без либ да, грустно :(

Alexander
11.12.2017
03:21:10
Без либ да, грустно :(
кстати по рефлекции они таи не планируют разве это дело ускорять (+ двже так это рвет php)

Mike
11.12.2017
03:25:00
Все что LLVM врятли
Что не так с LLVM? O_o

Alexander
11.12.2017
03:26:01
Что не так с LLVM? O_o
оно не гуд совсем) для меня)

Mike
11.12.2017
03:26:16
Поясни)

Alexander
11.12.2017
03:28:07
Поясни)
Эта штука которую юзают чтобы полодить яп... но у него есть свой вес, генерация лишнего барахла и тд

Mike
11.12.2017
03:28:34
Эта штука которую юзают чтобы полодить яп... но у него есть свой вес, генерация лишнего барахла и тд
А можно с фактами?) Какого конкретно лишнего барахла генерирует LLVM?

Google
?
11.12.2017
03:28:35
слишком большой и медленный)

Alexander
11.12.2017
03:28:46
т.е. не везде после этого скомпиленные программы будут одинаково быстро работать)

Mike
11.12.2017
03:29:14
Какие-то суеверия

LLVM по качеству кода генерации ноздря в ноздрю с GCC

И я напомню, что гнушный компилятор Go значительно более быстрый код генерирует, чем дефолтный компилятор Go

Alexander
11.12.2017
03:30:45
Mike
11.12.2017
03:31:05
читал что не всегда
Там на уровне статпогрешности. Где-то LLVM чуть-чуть быстрее, где-то GCC

И я напомню, что гнушный компилятор Go значительно более быстрый код генерирует, чем дефолтный компилятор Go
Так что как-то странно критиковать LLVM тем более в пользу доморощенных компиляторов типа гошного

Admin
ERROR: S client not available

Mike
11.12.2017
03:31:50
Уж в плане кодогенерации то тем более

Скорость? Да, LLVM медленнее компилирует

Alexander
11.12.2017
03:32:01
можно кстати сравнить) backend на go и на kotlin

?
11.12.2017
03:32:37
и на php 7.2

)))

Alexander
11.12.2017
03:32:46
но надо чтобы кто-то на котлин накидал

))

Mike
11.12.2017
03:32:53
Пыха вроде вообще интерпретируемая до сих пор, не?

Или там завезли JIT?

Mike
11.12.2017
03:33:20
Ну тогда можно даже не сравнивать х)

Google
Mike
11.12.2017
03:33:48
Да и string-based typing так себе сказывается на перформансе

Alexander
11.12.2017
03:33:55
go vs kotlin, base http server?

вот такое я бы посмотрел

?
11.12.2017
03:34:36
тож интересно)

Alexander
11.12.2017
03:35:15
но kotlin не особо пробовал, только правил иногда на Android (по работе)

но что-то чувствую что будет примерно как Java, так как на базе либ

Mike
11.12.2017
03:36:01
go vs kotlin, base http server?
Еее, спецолимпиады

?
11.12.2017
03:36:05
Не совсем уверен, но go выиграет )

Mike
11.12.2017
03:36:09
Могу на расте накидать х)

Alexander
11.12.2017
03:36:26
)))

Mike
11.12.2017
03:36:30
go vs kotlin, base http server?
Вообще есть же какой-то сайтег, бенчащий именно это

Ща найду

?
11.12.2017
03:36:39
Тогда Rust vs Go

Alexander
11.12.2017
03:37:16
просто про котлин в backend слышал только про интеграцию в Java проект

Кстати Swift забыли)))

Mike
11.12.2017
03:38:05
https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=plaintext

Alexander
11.12.2017
03:38:12
Но я его пробовал в backend, давно, и он го не рвал

Mike
11.12.2017
03:38:13
Java со скалой уделывают Go

Так что котлин тоже будет

Страница 1044 из 1674