@rudepython

Страница 1547 из 1719
Vladimir
29.05.2019
08:46:34
а если gevent.sleep() ?

Boris
29.05.2019
08:52:20
В жире?

Alexey
29.05.2019
09:27:03
Пиздёж. Это MySQL.

Google
vlade11115
29.05.2019
10:46:52
Наоборот же.

Boris
29.05.2019
10:59:24
Сижу на митинге для новичков, у всех гениальные софтскиллы, думаю хуйнуть по пацански

Alexey
29.05.2019
11:00:17
Прими пул реквест на картинку: вместо шарика у Пятачка должна быть телеговская эмблема.

Zart
29.05.2019
11:34:56
чот я и не заметил как у линукса вин2к настал

Milton
29.05.2019
13:31:39
https://www.reddit.com/r/devops/comments/bpmeyk/i_was_officially_automated_out_of_my_job_pitfall/

Zart
29.05.2019
13:45:44
"The company had a DevOps department but it was more Senior Sysadmins who could write enough Python/Bash/PowerShell to be dangerous, they needed a team of real DevOps with previous experience in lower level languages to work on the complex projects they had." сказ о том как наняли гомакак, до того как появился го?

в целом сакссесс стори чо, чуваков наняли делать дело, обеспечили баблом и ресурсами, те взяли и сделали

Boris
29.05.2019
14:14:16
ну чё

хотите проораться с тестового задания супер синьор го девелопёра? на 200к рубисов?

Alexey
29.05.2019
14:14:56
Довай конешно

Boris
29.05.2019
14:15:02
https://github.com/iluffka/test-task

держите

Алексей
29.05.2019
14:18:16
мощно

Google
Vladimir
29.05.2019
14:19:52


Boris
29.05.2019
14:20:16
по сравнению с этим: https://github.com/iluffka/test-task/blob/master/internal/app/counter/counter.go#L12

ну для тех кто не понимает в го код я объясню

https://github.com/iluffka/test-task/blob/master/cmd/main.go#L70

вот эти 2 строки огнище. человеку нужно сделать каунтер RPS. на стандартной библиотеки, без всего. взять готовую библиотеку метрик низзя

что он делает? хуярит все обращения к сервису в виде списка в памяти, где 1 элемент = 1 запросу

vlade11115
29.05.2019
14:24:18
Очень удобно И простота.

Boris
29.05.2019
14:25:17
ну и дальше берет лоадит историю запроса с диска (анпиклом) в этот же массив и итеррируется по всему списку с 0 индекса, пока не найдет нужный ему период и дальше вычитает индекс из длинны массива

Саша
29.05.2019
14:25:18
так а как он узнает, какие из них за последние 60 сек?

понял.

Boris
29.05.2019
14:25:46
ну и вторая собственно.

Саша
29.05.2019
14:26:08
ну первая не особо была понятна, без пояснений ко второй

Boris
29.05.2019
14:26:27
https://github.com/iluffka/test-task/blob/master/cmd/main.go#L67

Zart
29.05.2019
14:26:42
"На каждый запрос возвращать значение счетчика, считающего общее количество обработанных сервером запросов за последние 60 секунд;"

Boris
29.05.2019
14:26:52
дальше вот эта заебательская строчка. она собственно, что делает?

Zart
29.05.2019
14:27:06
ок, это рпс, да

Boris
29.05.2019
14:27:56
это детишки аппенд в тот самый слайс. который не тредсейф. ну т.е. две короутины из двух тредов пытаются сделать аппенд в эррей, что у нас произойдет?

Google
vlade11115
29.05.2019
14:28:22
Распидорасит?

Boris
29.05.2019
14:28:28
на все деньги!

Саша
29.05.2019
14:28:49
так вы его берете?

Boris
29.05.2019
14:29:06
так вы его берете?
это не мы. но думаю возьмут, чего бы нет.

человек отлично работает, платят мало, сеньор уже 2 года -)

Саша
29.05.2019
14:29:41
из трех?

Boris
29.05.2019
14:29:56
из трех?
это не знаю. я лично не знаком с автором

Глеб
29.05.2019
14:30:03
А почему нет, направление мысли верное, реализация только хромает.

Zart
29.05.2019
14:30:08
ну может он не занимается писанием такой дури

Boris
29.05.2019
14:31:54
А почему нет, направление мысли верное, реализация только хромает.
эм. у человека есть паттерн "синхронизация через коммуникацию", он не осилил ни закрыть мьютексом слайс (код падает в 3 местах - при итерации, при слайсинге и при аппенде - в конкурентной среде). его код деградирует по производительности (он не осилил ни транкейт, ни группировку записей, ни счетчики по секундно, ни кеширование запросов).

я как-то думал раньше, что "хромает" реализация, это отмазка для джуна.

Глеб
29.05.2019
14:34:50
А как это было-бы лучше сделать? Про мьютекс понятно, а подтираться как лучше?

Zart
29.05.2019
14:35:21
это же божественная гошечка для этих задач

Boris
29.05.2019
14:35:52
скалдывать в чанк все реквесты за секунду, 10 секунд, минуту.

инкрементировать их, при ответе отдавать сразу подсчитанное значение.

использовать для этого кольцо, чтобы не обсираться из-за бесконечного лога каунтеров, чтобы не засрать память.

Глеб
29.05.2019
14:39:17
А запустить рядом горутину, которая будет каждые N секунд чистить старое и на этом посчитать задачу сделанной? Я понимаю зачем и для чего нужно предложенное, но не уверен, что стоит так оверинжинирить с ходу.

Boris
29.05.2019
14:40:22
можно её и не делать

делаешь кольцо, на кольце индекс где ты сидишь сейчас, возвращаешь от-туда ноду и атомик инкрементом изменяешь каунтер

Google
Boris
29.05.2019
14:41:18
когда время прошло двигаешься по кольцу, ноду отправляешь на запись в другую короутину через канал

кольцо в памяти дает тебе "историю" в нужном под задачу периоде. чего тут оверенджинирить то.

Admin
ERROR: S client not available

Boris
29.05.2019
14:43:03
можно и гороутину сделать, но зачем.

Глеб
29.05.2019
14:46:41
Да просто я-бы тоже сделал самое простое и наивное решение - тупо список запросов за последние 60 секунд или более. Правда, обращения к нему я-бы обезопасил. В го не силён, но первым делом на ум пришел актор, от мьютексов у меня психологическая травма со времен школы. А вариант с кольцом, чтобы экономить память, скорее всего родился-бы когда с памятью начались-бы проблемы. Есть ещё над чем поработать, да.

Zart
29.05.2019
14:47:40
в моей школе из многозадачного был сервер на нетвари 3.11

Глеб
29.05.2019
14:48:25
мьютексов у меня психологическая травма со времен школы Дай я тебя обниму.
Я думаю она у всех, самое жестокое когда программа ловит дедлок раз в сто лет, и хрен оно отдебажится.

Boris
29.05.2019
14:48:32
шлешь ему комманды, он их обслуживает, так считается нормальным устраивать API. правда мьютекс проще

Zart
29.05.2019
14:49:36
дедлок - когда на слишком много скрипочек слишком мало евреев

Boris
29.05.2019
15:47:28
https://play.golang.org/p/B8pI6VvgsRX

подивитесь -)

Tishka17
29.05.2019
15:49:14
golang в своей красе

кейс же для других целей

Zart
29.05.2019
15:49:33
go-pad.io запили

Павел
29.05.2019
16:41:59
«666666»

Milton
29.05.2019
16:42:36
Now this is a nickname

Google
Zart
29.05.2019
16:43:19
36.0000000000000000000006

слава роботам

Rém
29.05.2019
16:44:35
Героям слава

Саша
29.05.2019
16:44:42
хах, попался

Павел
29.05.2019
16:44:55
слава нації

Николай
29.05.2019
16:45:58
6.6 (regex style)

Denis
29.05.2019
16:46:28
В каком кольце?

ValueError

Petr
29.05.2019
17:19:03
https://github.com/iluffka/test-task
Во всем ридми одна запятая.

Milton
29.05.2019
22:14:03
Хаааа. Как думаешь, со всеми их sleep 15, насколько часто они в циклах где-нибудь дергают docker cp?

Alexey
29.05.2019
22:23:54
Изыди спать, чо как этот.

Страница 1547 из 1719