
Aleksandr
07.02.2018
12:21:16
сделать пост запрос, получить куку, использовать ее в дальнейших запросах

Tilek
07.02.2018
12:22:06
ок спс

Marlik
07.02.2018
12:22:56
В го не знаю, а в perl вот это хорошо зашло WWW::Mechanize

Google

John
07.02.2018
12:27:19
а так в целом норм :)

Evgeniy
07.02.2018
12:53:53
привет, есть у кого что-то покурить на тему вебсокетов в го и как правильно их организовать?

Vlad
07.02.2018
12:54:51

Evgeniy
07.02.2018
12:57:14
ну в целом нагуглить я сам могу, просто ели у кого есть на примете толковые статьи или прочее, у нас сейчас написано на ноде весь функционал(но он тяжко работает), думаю переписать его на вебсокеты и на го, но так как я этим не занимался, думаю узнаю есть ли у кого на примете какие-то best practice или что-то в таком духе
я просто все дельниые статейки сохраняю себе в закладки и время от времени проглядываю что там в них интересного, может кто тоже таким занимается или использовал в своем проекте, можно и в ЛС )

Bogdan (SirEdvin)
07.02.2018
13:01:12
В качестве best practice можно предложить проверку, действительно ли вам нужно переписывать с ноды, на го. Может лучше оптимизировать код на ноде?

Evgeniy
07.02.2018
13:04:46
я не писал тот код на ноде, но так как с ним живем уже с год и с каждым разом он работает все хуже и хуже, сейчас дошло до того что при нагрузке она выпадает каждые 15-20 мин (и это в проде), я психанул и решил предложить все переделать, оптимизировать там точно нечего, проще переписать, но с ГО я еще имел дело, а c JS нет и как-то не лежит у меня душа к нему

Vlad
07.02.2018
13:05:55
я не писал тот код на ноде, но так как с ним живем уже с год и с каждым разом он работает все хуже и хуже, сейчас дошло до того что при нагрузке она выпадает каждые 15-20 мин (и это в проде), я психанул и решил предложить все переделать, оптимизировать там точно нечего, проще переписать, но с ГО я еще имел дело, а c JS нет и как-то не лежит у меня душа к нему
не принимайте на свой счет, но что будете делать, если код на Го, после жизни года с ним, будет работать "все хуже и хуже"?
На что предложите переписать?

Evgeniy
07.02.2018
13:09:30
да хороший вопрос, по этому и хочу разкурить best practice или что-то в таком духе что бы было более гибко, к сожалению я не могу показать код который в проде(того человека уволили давно), но ребята которые у нас сейчас пишут на JS в шоке когда на это смотрят и они даже не думают что-то там править, потому что оно держится на соплях

Bogdan (SirEdvin)
07.02.2018
13:10:05
Возможно, я зануда, но тут есть две проблемы:
1. Если вы не знаете, почему тупит кусок кода на ноде. переписывание на го вполне может не помочь. Вдруг у вас там база или диск тупят?
2. Я не знаю вашей компании, но является ли го у вас основным языком разработки? Если нет, то может стоит переписать на языке, на котором вы разрабатываете?
На своем примере могу сказать, что после js и python, любой код на go читается как головоломка.

Daniel
07.02.2018
13:10:56
скорее всего - у приложения проблема с архитектурой, и нужен глубокий рефакторинг

Google

Daniel
07.02.2018
13:11:13
сделать глубокий рефакторинг без смены языка - я способов не знаю

Alexey
07.02.2018
13:11:27

Vlad
07.02.2018
13:11:38

Alexey
07.02.2018
13:11:59

Evgeniy
07.02.2018
13:12:00
как я знаю по началу то писали на коленке что бы запустить и оно пошло в прод, и дальше так же дописывалось, причем когда начал смотреть что нужно будет переписывать и спрашиваю у ребят, там есть примерно 30%-40% кода который уже не используется и они только сейчас это поняли

Olzhas
07.02.2018
13:12:38

Bogdan (SirEdvin)
07.02.2018
13:13:13

Evgeniy
07.02.2018
13:13:21
точнее там архитектуры совсем нет, есть просто код в 1 файле на несколько тысяч строк и даже в написании методов нет общего стиля кода....

Daniel
07.02.2018
13:13:38

Alexey
07.02.2018
13:14:00

Bogdan (SirEdvin)
07.02.2018
13:14:14
какие такие автоматические импорты?!
Например, вот тут: https://github.com/martin-helmich/prometheus-nginxlog-exporter/blob/master/config/loader.go используется Config, который объявлен в https://github.com/martin-helmich/prometheus-nginxlog-exporter/blob/master/config/structs.go
Или это я что-то провтыкал?

Vlad
07.02.2018
13:14:44

Bogdan (SirEdvin)
07.02.2018
13:15:02
Я выше кинул пример. Или я туплю в этом случае?

Daniel
07.02.2018
13:15:25

Bogdan (SirEdvin)
07.02.2018
13:16:03
Ну, в том же python или js приходится объвлять импорты чего-угодно, даже в рамках одного пакета. Я не говорю, плохо это или хорошо, но к этому нужно привыкнуть.

Daniel
07.02.2018
13:17:22
какой синтаксис-то предлагаете?

Bogdan (SirEdvin)
07.02.2018
13:17:54
В python это делается как-то вот так: from .structs import Config

Daniel
07.02.2018
13:18:13
а что такое этот .structs

Google

Alexey
07.02.2018
13:18:34

Subbotin
07.02.2018
13:18:52

Bogdan (SirEdvin)
07.02.2018
13:19:19

Daniel
07.02.2018
13:19:25
а, так у вас там просто один файл - один пакет, как в яве классы? ну вот в go не так

Bogdan (SirEdvin)
07.02.2018
13:20:12
Да, но к этому нужно привыкнуть) С другой стороны, как я понимаю, нет проблем с циклическими зависимостями между файлами в одном пакете.

Daniel
07.02.2018
13:20:43
нет зависимостей нет проблем

Olzhas
07.02.2018
13:23:05
нужна монорепа
локальная

Леша
07.02.2018
13:26:13
Извините, а это нормально, что этот код
https://play.golang.org/p/TH-EtjTElkm
выдает результат 30GB, а системный проводник (Nautilus) - чуть меньше 20?

Olzhas
07.02.2018
13:27:20

Леша
07.02.2018
13:27:52
а как понять, кто именно?

Bogdan (SirEdvin)
07.02.2018
13:28:22
du -sh * в папке

John
07.02.2018
13:28:27

Daniel
07.02.2018
13:29:53

Olzhas
07.02.2018
13:30:11

Daniel
07.02.2018
13:30:23
а

Olzhas
07.02.2018
13:30:52
чтобы импортить его import '../../path/to/package'
только относительные импорты надо юзать

Леша
07.02.2018
13:31:14
надеюсь, это не удалит мне систему

Google

Леша
07.02.2018
13:31:14
проверь еще через консольку: du -sh $HOME

Olzhas
07.02.2018
13:31:19
похардкорнее

John
07.02.2018
13:31:31

Леша
07.02.2018
13:32:14
нед
уже почитал man, не удалит
говорит, что 29

Olzhas
07.02.2018
13:32:50
:D

John
07.02.2018
13:34:22

Admin
ERROR: S client not available

Леша
07.02.2018
13:34:34

John
07.02.2018
13:34:37

Леша
07.02.2018
13:34:50
директории

John
07.02.2018
13:34:56
...

Olzhas
07.02.2018
13:35:01

Леша
07.02.2018
13:35:03
а как надо?

Olzhas
07.02.2018
13:35:06
норм округление

Леша
07.02.2018
13:35:15

Alex
07.02.2018
13:36:08
почоны ? зачем нужен LockOSThread() ?

Roman
07.02.2018
13:48:41

Google

Arch
07.02.2018
15:36:49
Народ, посдскажите кто-то сталкивался с нарезкой времени? Задача нарезать промежуток времени по частям, допустим по 5 минут или по 15 минут. Части после нарезки, должны быть кратны периоду нарезки, пример: час по 15 мин - 00:15; 00:30; 00:45; 01:00

Mykyta
07.02.2018
15:40:28

Arch
07.02.2018
15:41:34
ну так понятно, что можно округлить, потом дюрейшном поприбавлять, но может есть православное решение, мб кто-то реализовывал, поглядеть))) бест пракстис так сказать

Daniel
07.02.2018
15:42:59
задача не понятна

Arch
07.02.2018
15:45:31
есть рериод с 2017-11-06T16:40:00 по 2017-11-06T16:56:00, нарезать допустим по 5 мин, на выходе получаем слайс 2017-11-06T16:40:00, [2017-11-06T16:45:00, 2017-11-06T16:50:00, 2017-11-06T16:55:00, 2017-11-06T17:00:00....]

Daniel
07.02.2018
15:47:11
что такое - нарезать
зачем нужен этот слайс?

Arch
07.02.2018
15:47:36
или по три минуты: [2017-11-06T16:42:00, 2017-11-06T16:45:00, 2017-11-06T16:48:00, 2017-11-06T16:51:00....]
по факту надо привести время к кратности какому-то периоду

Demuz
07.02.2018
15:49:27
Это условие задачи
Лично я в некоторых ситуациях в минутах делаю. А вам по-моему нужно что-то вроде тайм пикера сделать? Где каждые н минут юзер может выбрать предустановленное время?

Arch
07.02.2018
15:50:41
Мне кратность периоду нужна

Demuz
07.02.2018
15:51:08
Типа вставлять минуты = минуты + 1час/4. Это каждые 15мин. Типа того.

Arch
07.02.2018
15:53:55
вот, только если это три минуты, то надо час поделить на три и потом выбрать нужные, ладно напишу топорно чтобы работало, потом подумаю как сделать это красиво

Demuz
07.02.2018
15:54:59

Arch
07.02.2018
15:56:26
Я не знаю какой период придет

Demuz
07.02.2018
15:56:30
И вобще я там показал что именно 1час разделить на 4, чтобы потом 4 можно было поменять. Чтобы динамичней было. А так можно просто руками указать вместо таких операций.

Arch
07.02.2018
15:57:24
Придет три минуты, надо будет нарезать по три минуты, будет 10, надо будет порезать по 10, те 0:10; 0:20; 0:30 ...