@oop_ru

Страница 766 из 785
Роман
30.09.2018
08:34:43
У меня сейчас ситуация реально что я могу любой час посвятить работе, выставить счёт и мне его оплатят

Или могу пойти книгу дописать, и потом окупится с её продаж

Помимо денег ещё есть мотивации, и конечно всё не свобидтся к тому, чтобы делать то, что выгодно

Bohdan
30.09.2018
08:35:29
а, в таком кейсе да тогда главное не удариться в трудоголизм

Google
Bohdan
30.09.2018
08:35:50
в оригинале было "либо хорошо, либо ничего, кроме правды"

Dmitry
30.09.2018
08:36:46
У меня сейчас ситуация реально что я могу любой час посвятить работе, выставить счёт и мне его оплатят
а делегировать не пробовал? ведь, получается, ты — самое главное ограничение в процессе зарабатывания денег

Роман
30.09.2018
08:37:41
а делегировать не пробовал? ведь, получается, ты — самое главное ограничение в процессе зарабатывания денег
Пробовал, горел раньше созданием своей компании, людей нанимал, помошник свой был. Но от этого не ловлю столько фана, да и пока программировать самому больше нравится

И опять же, главная цель это не деньги (у меня). Это важно, но если посмотреть мой стратегический план на год, там всё в деньги не упирается

Yury
30.09.2018
10:10:41
Дарт пропитан формалином

Mykola
30.09.2018
10:26:30
какими именно?

и нахера еще один мёртвый язык, если смалток никуда не делся (тоже мёртв)?

мертворождённый

F01134H
30.09.2018
10:28:41
какими именно?
идеей умереть

?

Роман
30.09.2018
10:36:28
Симулякр — это подделка, не имеющая оригинала в реальности
Я про это и говорю. Это такой успешный успех

Dmitriy
30.09.2018
13:27:09
С играми в эффективность можно не слабо провалиться в пропасть тяжелой депрессии . Короче, надо аккуратно играть с огнем.

Google
Роман
30.09.2018
14:00:02
Yury
30.09.2018
14:05:46
Вопрос по тому же Visitor-у. Тк моя предмет. обл. замороченная - объясню на Shapes and Drawers. Есть Shape с его реализациями Circle, Triangle. И есть Drawer с CircleDrawer и TriangleDrawer. У клиента есть абстрактный Shape. Ему нужно получить соотвествующий Drawer. Те для конкретного Circle - CircleDrawer. Я хочу реализовать так: добавить фабрику DrawerFactory и передавать ее методу Shape createDrawer(DrawerFactory f){ return f.create(this) }

Это единственное, что я придумал, чтобы работало и выглядело адекватно. Но меня смущает: 1. Насколько это читабельно? Такая вот диспетчеризация(делегирование). Имхо выглядит странновато. 2. Мб лучше отнаследовать фабрику от Visitor и назвать метод и его параметры у Shape так: accept(Visitor v){ return v.visit(this) }Тогда метод не будет привязан к Drawer. Я бы хотел, чтобы Shape ничего не знал о существовании Drawer, при этом Drawer знал о Shape все и имел ссылку на него.

У меня есть психотерапевт, без него всё быстро и плачевно заканчивается
Трабла очень похожа на твою, можешь вкратце поделиться как решил?

Роман
30.09.2018
14:18:57
Я вот только сегодня опять с этим кусочком работал

У меня в итоге без визитёра как и говорил получилось

Сейчас попробую без всяких деталей рассказать

Я всю специфичиную логику таки размазал по иеерархихи и скрыл под виртуальными методами

Тот свич превратился в такое

Точнее свитч вообще ушёл

Yury
30.09.2018
14:23:33
Роман
30.09.2018
14:24:06
Да, в каком-то смысле. Он ещё остался так, как не весь код ещё зарефакторин

Я сначала зашёл со стороны создания этого типа

Когда выстрел прилетает в какой-то объект, он взаимодействует со SceneView этого объекта

У него есть абстрактный метод public abstract Hit ExtrudeHit(RaycastHit hit);

Есть несколько типов который возвращают различный производный класс TargetHit и EnviromentHit

Тот кто стрелял оборачивает это в тип SceneViewHit который содержит в себе SceneView и Hit

В итоге этого более-менее хватило

Визуализация попадания спрятана под SceneView

Проверка типа осталась для внутригровой статистики так, как попадания по окружению считаются за промах

Google
Роман
30.09.2018
14:28:41
Это всё по сути обслуживает что-то похожее на сервис локатор

Все эти связи декларативно размечаются

А потом в коде разрешаются уже через var view = hit.collider.GetComponentInParent<SceneView>();

То, что делаешь ты больше похоже на другую ситуацию в этом же проекте

Yury
30.09.2018
14:34:18
А все нашел, это понятие.

Роман
30.09.2018
14:35:03
А что такое RaycastHit?
Это библиотечный тип, содержит в себе всякую системную информацию по рейкайстингу

Не особо важная вещь здесь

В общем там суть в том, что есть тип - аргумент поведения системы

Поведение собираются из множества подсистем

В зависимости от типа, выбирается набор объектов а уже значения в этом типе раздаются составляющим частям как значениям

Yury
30.09.2018
14:36:41
Поведение собираются из множества подсистем
Да, наверное у меня сейчас другая ситуация.

Роман
30.09.2018
14:36:43
Т.е это похоже на ситуацию с рисовальщиками, они работают с абсолютном разными данными

Yury
30.09.2018
14:38:10
Ну те можно по идее обернуть Shape и Drawer в один объект при их создании, когда тип еще известен?

Роман
30.09.2018
14:41:05
Извини, нужно сейчас отъехать. Я попозже выберу минутку, и хотел бы ещё над этим всем подумать, может чего полезного скажу

Роман
30.09.2018
14:41:55
Вкратце у нас всё свелось к тому, что рисовальщики между собой имеют мало общего как и фигуры

Что-то типа такого: class Drawer<T>{ public Draw(T){ var context = CreateDrawContext(); Draw(T, context); } protected absrtract Draw(T, Context); }

И есть метод который решает какой рисовальщик что рисует public DynamicDraw(T t) where T : Shape { FindObjectOfType<Drawer<T>>().Draw(t); }

Google
Роман
30.09.2018
14:47:38
Все эти дженерики нужны чтобы разделять кто кого рисовать умеет

В конкретном рисовальщике известен полный тип рисуемого, по этому обладаем полный набором информации о том, с чем работаем

Да

Страница 766 из 785