
Igor
14.09.2018
11:57:55
то есть receive пусть будет под твоим контролем

Toha
14.09.2018
12:02:57
Если я правильно понял, то схема такая: принять жсон -> заслать в тред -> тред слушатель принимает жсон -> передает прослойке десериализатору -> передает структуру в плагин?

Igor
14.09.2018
12:04:52
да

Pavel
14.09.2018
12:05:09
чот мне не нравится такое

Google

Pavel
14.09.2018
12:05:39
принять json -> десериализация -> передавать структуру в плагины
вот так нравится =)
Ну то есть щас это уже будет объект а не структура

Toha
14.09.2018
12:06:28
Да норм
А я не умею объекты по тредам гонять

Igor
14.09.2018
12:06:46
подозреваю что c классом либо ты завязнешь в shared либо откажешься от send/receive

Pavel
14.09.2018
12:06:49
И можно будет творить с ним runtime извращения, проверять интерфейс, передавать ссылку без лишнего синтаксического мусора в виде звездочек ))

Toha
14.09.2018
12:06:53
Структуры только получалось
Я бы на структурах делал бы
Но я дилетант)

Igor
14.09.2018
12:07:26
структура это норм

Pavel
14.09.2018
12:07:30

Igor
14.09.2018
12:07:47
надеюсь!

Toha
14.09.2018
12:07:48
с классом горя хапнешь)

Google

Toha
14.09.2018
12:07:56
Я уже хапнул однажды)

Pavel
14.09.2018
12:09:03
Я хапнул горя когда решил писать на D, меня уже не испугать ))

Toha
14.09.2018
12:09:21
Я где то читал что структуры более легковесны, и они предпочтительнее

Pavel
14.09.2018
12:09:53
Да в итоге от них больше проблем чем пользы

Toha
14.09.2018
12:09:56
Про предпочтительнее - это мое воображение дорисовало)

Pavel
14.09.2018
12:11:06
Они хороши когда надо какое-нибудь комплексное число сделать struct Im { float real; float imagine; } а для чего то более сложного с бизнес логикой уже проигрывают

Toha
14.09.2018
12:11:43
Ну мне кажется, данные между тредами гонять - само то

Pavel
14.09.2018
12:11:51
Даже в vibe-core людвиг сделал TCPConnection в виде структуры, а потом туда насовал костылей по подсчету ссылок на эту структуру при копировании чтобы правильно закрывать соединение

Toha
14.09.2018
12:12:06
А с классами там какие то касты нужны. Не помню. Там грабли какие то были

Pavel
14.09.2018
12:12:52
Ну касты нужны да, это как-раз из-за наследования. Но это фича а не баг.

Toha
14.09.2018
12:14:56
Я ее не понял крч) для меня это вообще магия :)

Igor
14.09.2018
12:15:09
структуры не хорошие и не плохие. просто у них семантика значения. а между тредами оптимальнее передавать значения что-бы измежать танцев с мутксами и прочим

Pavel
14.09.2018
12:16:00
Но если shared immutable class то чо такого )

Igor
14.09.2018
12:16:11
ага, ну удачи )
если у тебя класс shared immutable то всё что внутри него тоже должно быть таким

Toha
14.09.2018
12:18:50

Ievgenii
14.09.2018
18:16:17
Может кому-то будет интересно. https://putchar.org/@happycoder/how-llvm-optimizes-a-function

Denis
17.09.2018
02:31:28

Google

Ievgenii
17.09.2018
04:35:06
Просто решение, которое легко можно расширять, без переписывания имеющегося

Denis
17.09.2018
04:58:24

Ievgenii
17.09.2018
05:12:01

Stepanos
17.09.2018
06:43:39
круто вам, куча времени на такие експерементьі :)

Ned Ogl
17.09.2018
06:45:31
Или то же от AMD
У AMD получше про режимы работы, а у интела - про виртуальную память и все ее уровни

qwerty
17.09.2018
07:43:21
Я короче почитал небольшую статью для понимая и пошел дальше. Буду иметь ввиду, спасибо!

Stepanos
17.09.2018
08:52:29
> У нас курс поднялся и по текущему курсу за 12 баксов мы синьора можем нанять в штат.
Что там у вас в рашке творится? :)
у нас iOS синиор минимум 25 баксов стоит

Ievgenii
17.09.2018
15:38:34

Ievgenii
17.09.2018
15:38:49
В час?
Не нужно лукавить
Не "минимум"
А нормально
Есть где и 2500 платят...
Фигел со знакомого
Но прям минимум....
Скажем так, у меня в договоре тоже написанна такая сумма за час, что огогого

Google

Ievgenii
17.09.2018
15:44:16
Но это сделано только для того, чтобы безболезненно можно было пересмотреть оклад, без подписания нового договора.

Stepanos
17.09.2018
15:50:09
ну я по 25 работаю

Pavel
17.09.2018
15:51:21
Давайте лучше указывать месячный/годовой доход на руки ) а то ставка в час слишком много подводных камней содержит

Stepanos
17.09.2018
15:51:36
каких?

Pavel
17.09.2018
15:52:09
Сколько часов отрабатываешь, сколько налогов платишь, сколько из этих денег лично тебе
Потому что так не бывает что в одном месте 12 а в другом 25 - иначе очень скоро рынок сбалансируется и все будут получать ровненькие 16-17 баксов.

Stepanos
17.09.2018
15:52:53
ну у меня ставка, почасовку то я уже носчитал деля на 160
налоги 5% и их не я платю

Admin
ERROR: S client not available

Pavel
17.09.2018
15:54:32
Значит за 12 это не синьоры. Или они не умеют работать заграницу )

Stepanos
17.09.2018
15:54:42
вот и я так думаю
но клиент все равно отпал) теперь искать нового вот

Pavel
17.09.2018
15:56:23
Так это и есть балансировка рынка получается. Вы так за 25 не найдете заказчиков теперь

Stepanos
17.09.2018
16:11:27
я на США работаю, на 12 мьі джуников тренировали :(

Pavel
17.09.2018
16:15:35
Теперь я тоже работаю ) А до 2014 года было невыгодно

Stepanos
17.09.2018
16:22:35
ну мировая економика растет, думаю будет все ок

qwerty
17.09.2018
16:44:01
работал за 12 сеньором на США(
где-то я не там свернул

Pavel
17.09.2018
16:44:51
Работал? А сейчас продолжаешь работать?

qwerty
17.09.2018
16:45:39
да за те же только в рф

Google

Pavel
17.09.2018
16:56:33
Тут кто-нть не работает на США?)

qwerty
17.09.2018
16:57:16
ну вот, я

Pavel
17.09.2018
18:51:55
Кажется сегодня я узнал что-то важное
Чего не мог понять много времени.
https://run.dlang.io/is/yejbw7 оказывается, если приписать к названию класса слово immutable, то это не означает что все создаваемые его инстансы автоматически будут immutable. Ну и дела.

Igor
17.09.2018
19:03:47
я вот не очень понимаю что это значит immutable class
и не вижу в спецификации языка ничего на эту тему

Pavel
17.09.2018
19:05:17
https://stackoverflow.com/questions/27337615/immutable-only-class-in-d вот тут хорошо объяснено
То есть даже если ты сделал immutable class то все равно при создании инстанса надо указывать immutable, иначе это будет не окончательная иммутабельность
immutable class My {
this(){}
}
auto m = new immutable My();
А вот это уже пример абсолютно намертво прибитого иммутабельного объекта, который можно безопасно засылать во все треды, по идее.

Dark
17.09.2018
19:08:43
А если this пометить immutable?

Pavel
17.09.2018
19:09:14
он уже сразу берет на себя immutable от декларации класса
то есть immutable перед названием класса распространяется на все его внутренние свойства и методы. Но это не значит что переменная объекта класса будет иммутабельна.

Igor
17.09.2018
19:11:26
понятно
и это работает с send/receive ?

Pavel
17.09.2018
19:13:21
Не знаю, щас вернусь с этими новыми знаниями к доработке бота
https://run.dlang.io/is/8eWesH гыгы, нифига не работает :) Хоть ты тресни, ничего иммутабельного послать через send не получится
https://run.dlang.io/is/4ohCVb вот в итоге самый приемлемый вариант. Взять и сделать алиас c shared к классу, тогда нигде не надо указывать дополнительных модификаторов у переменных. Кто-то тут такой способ уже предлагал. Но какой-же он кривой блин.

Igor
17.09.2018
19:25:13
так он-то рабочий, только с shared много засад
пока у тебя внутри строка всё ок