
Dark
07.03.2018
13:37:17
Java работает по принципу
"Все или все"
В C# более логично продумали
Но наперлись на .NET

Google

Dark
07.03.2018
13:38:18
Что сделало это эпик фейлом на других платформах
Но это все, конечно же, ИМХО

Pavel
07.03.2018
13:39:03
Да шучу я. Сам искал что-то как C#, но нативное и тут же набрёл на Ди.

Dark
07.03.2018
13:39:16
Вот-вот
Я вот до сих пор хочу реплейснуть C# в unity на D
Будет куда удобнее и быстрее на других платформах
А вы как считаете?

Pavel
07.03.2018
13:42:15
Я этим не пользуюсь, но наслышан о хитромудрой трансляции C# Unity в натив.

Dark
07.03.2018
13:42:45
Да по сути там так
Берется C#
Компилируется в IL

Pavel
07.03.2018
13:43:06
Вроде к godot мне биндинг Ди попадался, а может меня глючит.

Dark
07.03.2018
13:43:24
Тащится рантайм ввиде Mono

Google

Dark
07.03.2018
13:43:51
???
PROFIT

Pavel
07.03.2018
13:45:58
Addresser opCast(Addresser)()
{
return Addresser(id.to!string);
}
Addressee opCast(Addressee)()
{
return Addressee(id.to!string);
}Я правильно задаю опкаст или как надо?
Почему он мне выдает error
opCast called with argument types () matches both:

Evgeny
07.03.2018
13:49:52
опКасты вроде верные, а каст как выглядит?

Pavel
07.03.2018
13:52:41
Никак, ругается компилятор даже без использования
T opCast(T:Addresser)()
{
return Addresser(id.to!string);
}
T opCast(T:Addressee)()
{
return Addressee(id.to!string);
}Вот так не ругается

Evgeny
07.03.2018
13:54:29
а ну да, туплю, лучше так
T opCast(T)() if(is(T == Addresser))
{
return Addresser(id.to!string);
}
T opCast(T)() if(is(T == Addressee))
{
return Addressee(id.to!string);
}

Pavel
07.03.2018
13:55:44
А чем это отличается от моей записи? Выводимость типов?

Evgeny
07.03.2018
13:55:45
в ошибочном варианте Addresser и Adressee не названия типов, а названия параметров шаблона, и получается два совершенно одинаковых шаблона

Pavel
07.03.2018
13:56:39
opCast(T:Addresser)()
То есть это не только addresser но и все типы приводмиые к нему сюду тоже подходят?

Evgeny
07.03.2018
13:56:40
Но можно и по-твоему, если е предвидится никаких неявных преобраований

Pavel
07.03.2018
13:57:22
Не, лучше сделаю по явному

Evgeny
07.03.2018
13:57:33
может так и лучше имено для твоего случая, сам решай

Pavel
07.03.2018
13:57:51
Да я еще сам не знаю, как там к чему будет приводится по мере написания кода

Oleg
07.03.2018
13:58:12

Evgeny
07.03.2018
13:58:14
я обычно строго делаю

Oleg
07.03.2018
13:58:48
ну, конечно, если это не либа

Google

Pavel
07.03.2018
14:03:06
Фреймворк. Уже не либа но еще и не отдельный проект )
Шота мне не нравится твой тон и деструктивная атмосфера. Язабан.

Dmitry
07.03.2018
14:07:17
Бей! Бей! Бей!

Dark
07.03.2018
14:07:19
:D
Ну я не определил дефолтный конструктор, а что?

Pavel
07.03.2018
14:07:52
До тебя тут было в основном конструктивное обсуждение, потом ты пришел и началась какая-то демагогия с софистическими обвинениями. Зачем ты этим занимаешься?

Dark
07.03.2018
14:09:25
Ну я занимаюсь в той же мере, что и мои оппоненты
Так что сваливать на меня все не стоит

Pavel
07.03.2018
14:10:25
Ты вот этим что хотел сказать? В чем польза сообщения?

Dark
07.03.2018
14:10:37
Я пошутил вообще-то
Не нравится - могу удалить всегда
А как я в принципе узнаю, что тебе нравится, а что нет?
Тьфу, опять некорректо сказал
Не стестняйся высказывать критику, откуда я узнаю, что тебе не нравится в моем общении

Denis
07.03.2018
14:19:10

Pavel
07.03.2018
14:22:31
При хорошей ORM генерить схему из кода гораздо удобнее чем наоборот.
А еще в хороших ORM так же есть тулза по генерации моделей из указанной схемы.

Pavel
07.03.2018
14:34:15
Не дури

Evgeny
07.03.2018
14:36:00
Я что-то пропустил?

Google

Dark
07.03.2018
14:38:11
Мой бан разве

Denis
07.03.2018
14:56:31

Pavel
07.03.2018
14:57:41
Пока они заведутся уже стартап 100 раз прогорит

Denis
07.03.2018
15:02:17
назвали бы не Orm (object) не было бы такого хайпа вокруг этого
ложный друг переводчика получился

Dmitry
07.03.2018
15:25:34
А ты плюсов у ORM не видишь? Как тогда таблицы на классы мапить?

Denis
07.03.2018
15:33:32
ручками
в зависимости от того что представляет таблица и структура (represent)

Dmitry
07.03.2018
15:36:00
Ну хз. Часто требуют чтобы тока orm и больше никак

Denis
07.03.2018
15:53:33
синие киты часто требуют в окно прыгать, ты прыгнешь?
вотъ
ты задумайся кому потом разгребать
ты не можешь ОБЪЕКТЫ базы МАППИТЬ
потому что они не ОБЪЕКТЫ в том смысле который вкладывает в это С++ и Ди
и потому что МАППИТЬ значит иметь синхронизированную копию
согласен блокировать записи в БД пока существует твой экземпляр этих данных?

Pavel
07.03.2018
16:22:06
Ну, лично у меня есть temporary table прокладки.
Один черт, если даём юзеру править данные, или должны их блокировать, или подразумевать их виртуальность.

Pavel
07.03.2018
16:31:06
Строго говоря они и в базе не существуют никогда однозначно, и что теперь вообще базы выкинуть?

Google

Evgeny
07.03.2018
16:32:41

Pavel
07.03.2018
16:32:48
++
По такой логике если мы сделали запрос к базе из программы то у нас уже потерялась синхронизация

Evgeny
07.03.2018
16:33:49
ну может Денис чисто к терминам придрался

Pavel
07.03.2018
16:35:12
объекты/структуры очень хорошо ложатся на кортеж.
А внешнние ключи хорошо ложатся на то какой объект кем владеет
Не могу понять из vibe-core как будто выпилили методы для общения между тасками receiveOnlyCompat в пользу методов из std
vibe-d стал использовать vibe-core , при этом в его собственных исходниках эти методы все еще болтаются
Error: module `vibe.core.concurrency` import receiveOnlyCompat not found
Как же жить-то с этим

Denis
07.03.2018
16:42:33

Pavel
07.03.2018
16:43:04
Так получается что ORM тут ни при чем
Он не про согласованность а про то как мы структуриуем данные внутри нашего приложения
Кортеж пришедший в приложение это и есть по сути объект.

Evgeny
07.03.2018
16:45:57

Denis
07.03.2018
17:12:47

Pavel
07.03.2018
17:13:29
А я не понимаю твоей претензии к синхронизации )
Результат запроса будет рассинхронизирован даже если ты без ORM сделаешь выборку.
И получишь в коде программы хешмап а не объект

Denis
07.03.2018
17:16:39