
Ievgenii
30.10.2017
17:41:36
У нас мы их пишем руками
Не голый SQL, а кодом, через ORM
И в любой момент можно как поднять так и опустить до нужно ймиграции
Миграции нужны не только для того, чтобы менять структуру БД, но и для манипуляции с данными уже имеющихся таблиц

Google

Ievgenii
31.10.2017
19:21:28
Чего молчим?)
Где срачь, что лучше GO или D, PHP или JS?))))

Pavel
31.10.2017
19:22:39
А где C++?!!! Мммм?)

Dmitry
31.10.2017
19:48:13
Так известно что лучше - Раст! Новый Firefox c ним (сейчас Nightly, скоро выйдет как Quantum) огонь просто, я после многих лет на Хроме на него перешел. Ощутимо плавнее и быстрее, несмотря на то, что JS там медленнее чем в хроме.

Pavel
31.10.2017
19:50:59
Неплохо ?
Ладно подожду пару недель и скачаю тоже.

Pavel
31.10.2017
20:00:21
Туда недавно ещё и поддержку работы в нескольких процессах впилили, и песочницу.

Pavel
31.10.2017
20:08:02
У меня сейчас версия 56 и к вечеру почему то она начинает подтормаживать и жрать 200% CPU, очень печально. Надеюсь это все исправят.

Pavel
31.10.2017
20:11:25
Не замечал ни в одной из своих систем. Может плагин какой.

Pavel
31.10.2017
20:14:54
Да я тоже думал на это, у меня крутятся штук 5 устаревших плагинов, может какой из них

Stepanos
31.10.2017
20:16:29
у меня фаер летает, но я плагиньі не юзаю

Pavel
31.10.2017
20:18:35
что-то такое пишут https://support.mozilla.org/ru/questions/1180020

Dmitry
01.11.2017
06:59:12
А действительно immutable данные в рид онли секции памяти размещаются? Или их неизменяемость иначе контролируется?

Google

Maxim
01.11.2017
07:03:47
не обязательно, например со string можно сделать cast(byte[])
в общем случае immutable контролируется на уровне исходного кода компилятором

Just
02.11.2017
20:09:15
всем привет, подскажите плиз, что значат приватные члены классов в D? вот такой пример работает, хотя не должен по идеи
class Shape {
private:
int width;
int height;
}
// Derived class
class Rectangle: Shape {
private:
int getArea() {
return (width * height);
}
}
void main(string[] args){
Rectangle Rect = new Rectangle();
Rect.width=5;
Rect.height=8;
// Print the area of the object.
writeln("Total area: ", Rect.getArea());
}
или если это все в рамках одного модуля, то все всё видят и только для других модулей будут ограничения?

Andrey
02.11.2017
20:15:30
в рамках модуля да, все публичное

Just
02.11.2017
20:15:48

Ievgenii
02.11.2017
21:38:53
Если я не ошибаюсь, в Ди идёт реализация френдли классов
Они считаются френдли, если описаны в одном файле
И соответственно приват - это для одного файла
Как-то так, кажется.
Если один файл - один класс, то никто кроме этого класса не может получить доступ к этим полям (приватным)

Just
02.11.2017
21:41:50
а как в D симитировать тип множество? нужна проверка вхождения одного множества в другое, просто хранить элементы в массивах array и проверять в цикле оператором in? хорошо было бы использовать RedBlackTree, но я не понял как там итерировать по элементам

Ievgenii
02.11.2017
21:44:29
protected only applies inside classes (and templates as they can be mixed in) and means that a symbol can only be seen by members of the same module, or by a derived class. If accessing a protected instance member through a derived class member function, that member can only be accessed for the object instance which can be implicitly cast to the same type as ‘this’. protected module members are illegal.

Andrey
02.11.2017
21:44:31
через foreach?

Ievgenii
02.11.2017
21:45:01
Symbols with private visibility can only be accessed from within the same module. Private member functions are implicitly final and cannot be overridden.

Just
02.11.2017
21:45:03

Andrey
02.11.2017
21:45:31
кто разные?

Just
02.11.2017
21:45:45
типи элементов массивов

Ievgenii
02.11.2017
21:45:57
А что за типы?

Andrey
02.11.2017
21:46:10
так в массив только одного типа значения можно положить

Google

Ievgenii
02.11.2017
21:46:19
И как ты их будешь обрабатывать, если они разные?

Just
02.11.2017
21:46:30

Andrey
02.11.2017
21:46:41
тогда Variant

Ievgenii
02.11.2017
21:46:51
А зачем такое тебе понадобилось?
Опиши проблему, может есть легче решение..

Just
02.11.2017
21:47:20
да, в array не только один, это понял. массив Json'ов сейчас используется
в общем шину сообщений пишем и при создании и возникновений событий эти события идентифицируются набором тегов, а теги могут быль любого стандартного типа. ну и когда событие возникает, нужно перебирать все подписки, если набор тегом входит в набор тегов подписки, то отослать подписчику сообщение

Andrey
02.11.2017
21:54:20
а теги номерами представить нельзя?

Just
02.11.2017
21:56:03
да нет, это не информативно будет, строки в основном будут типа тег "newUser", но хочеться, что бы Json'ом мог быть тег

Ievgenii
02.11.2017
22:07:17
Тег ввиде строки - не плохо
НО, куда лучше, использовать енум!

Ievgenii
02.11.2017
22:07:49
И понятно и быстро работать будет, т.к. простой инт юзать тут нужно

Just
02.11.2017
22:08:43
это хорошо было бы конечно, но это шина общего назначения и согласововать эти enum'и сложно будет

Ievgenii
02.11.2017
22:08:52
На счёт того, что там разные объекты хранить - немного не верно
Нужно хранить единый интерфейс
И реализовать шаблон визитер!

Andrey
02.11.2017
22:09:41
можно ID в виде какого нить хеша использовать + любые данные

Ievgenii
02.11.2017
22:09:43
Это Вам поможет

Just
02.11.2017
22:10:10
вот насчет визитора не знаю, посмотрю что это сейчас

Google

Just
02.11.2017
22:12:04

Andrey
02.11.2017
22:12:50
а какой юзкейс не-строковых тегов?

Just
02.11.2017
22:13:28
да вот даже и не знаю, мы это как-то не обсуждали

Ievgenii
02.11.2017
22:14:05
А зачем такой наблюдатель хитрый то?)

Andrey
02.11.2017
22:14:06
это для логов система?

Ievgenii
02.11.2017
22:14:16
За чем вы там следить хотите?)
В принципе идея интересна. Просто реальный бы пример...
Было бы понятней

Just
02.11.2017
22:15:09
не для логов, это шина сообщений с некоторыми дополнительными методами

Ievgenii
02.11.2017
22:15:40
А у события только один тег?

Admin
ERROR: S client not available

Just
02.11.2017
22:16:04
нет, может быть несколько

Andrey
02.11.2017
22:16:42
данные ко всему сообщению цепляются или к тегу?

Just
02.11.2017
22:16:54
ко всему сообщению

Ievgenii
02.11.2017
22:19:13
В смысле данные к сообщению?

Andrey
02.11.2017
22:19:20
тогда можно хешированные строки для тегов сделать, если нет централизованного набора тегов. Хеш на этапе компиляции считать. Отсылать строку + хеш.

Just
02.11.2017
22:20:46
В смысле данные к сообщению?
ну создается, например, событие userRegister и данные это его данные, но тут один тег, а в общем случае их может быть несколько

Ievgenii
02.11.2017
22:21:22
Ну как я понимаю, тебе нужно привязать некий обработчик к каким-то тегам. И когда какой-то объект рейзить событие и имея в себе эти теги, это событие попадет в этот обработчик. Верно?
userRegister - это тег?

Just
02.11.2017
22:22:19
да, все верно

Google

Ievgenii
02.11.2017
22:22:32
Ну это простое событие

Just
02.11.2017
22:22:48

Ievgenii
02.11.2017
22:23:34
Ну так это простое массовое подписывание на события. Не на одно, а на несколько сразу
Вот и все...

Just
02.11.2017
22:25:16
не совсем, одно событие может содержать несколько тегом, типа событие это когда пошел дождь, стало темно и подул ветер
вот если все три случились, то тогда нас это интересует, а если что-то одно или два, то нет

Andrey
02.11.2017
22:25:55
то есть это на самом деле группа событий одним сообщением?

Just
02.11.2017
22:26:44
терминология не совсем ясна, поэтому не сразу понятно. ну да, можно это так назвать

Andrey
02.11.2017
22:27:33
через что обмен сообщениями идет?

Just
02.11.2017
22:28:34
через собственно шину. два основных метода - подписаться на набор тегов (subscribe) и вызвать сообщение о событии (invoke)

Andrey
02.11.2017
22:29:10
это внутри одного процесса?

Just
02.11.2017
22:30:17
нет, при подписке запоминается подсписчик (адрес сокета и его ключ), а инвоки складываются в очередь и в отдельном треде рассылаются подписчикам
в общем RedBlackTree не может содержать Json, так что обойдемся пока так Json[] tags, не лучшее алгоритмическое решение, но врядли будет много тегов за раз, поэтому сойдет пока

Pavel
02.11.2017
22:36:52
Оно может любой объект или структуру содержать
А при поиске главное задать функцию сравнения двух объектов

Ievgenii
02.11.2017
22:39:00
Интересная задачка
Событие интересует только если у источника события есть ВСЕ теги подписчика, верно?
И если у события больше тегов, чем у подписчика, но в этот список входят все теги подписчика, это событие тоже должно обрабатываться этим обработчиком. Верно?

Pavel
02.11.2017
22:44:08
Что-то мне подсказывает что задача не решается меньше чем за линейное время
А при условии что все теги можно упорядочить по возрастанию, то за линейное вроде решается.

Just
02.11.2017
23:12:34