Оффтопка


[22.08.2019] GeneralElConsul тогда в очередной раз я себя реально словил на мысли, что надо бы разнести как-то все это дело
[22.08.2019] Doc В основном я прямо поиском в файле
[22.08.2019] Doc Ну я не кручу, find usages то находит нужное место
[22.08.2019] GeneralElConsul игра в прокрути колесиком
[22.08.2019] GeneralElConsul хотя все равно немного не то, но практически то: но я тебе скажу, задолбался я крутить этот сраный файл каждой системы
[22.08.2019] GeneralElConsul ну я и затупок: у меня же был проект, который я делал вот точно-точно таким сопосбом
[22.08.2019] GeneralElConsul да, это верно
[22.08.2019] Doc А еще по коду можно просто идти в дебаггере и всегда понимать, почему ты попал в то или иное место
[22.08.2019] Doc Мне не нужно даже думать, как это реализовать, есть просто типы и просто функции, которых с ними работают.
[22.08.2019] Doc Более специфично моему случаю, но у меня в проекте код шарится между клиентом и сервером, все основные типы данных есть и там и там. Так вот функции типа получения описания способности есть естественно только на клиенте. Наверное это можно реализовать через дженерики и наследование, параметризацию и все дела, или через partial классы в шарпах, у меня это просто функция, никаких скрытых механизмов.
[22.08.2019] GeneralElConsul но прелесть в том, что ты же говоришь, что "там ооп нежелателен ооп оверхед" - это ли не ооп оверхедище делать такое только чтобы замутить слабые связи именно этим способом?
[22.08.2019] GeneralElConsul девион говорил что они как-то юзали, а потом отказались потому что сплошная боль
[22.08.2019] GeneralElConsul ScorpioT1000 кажется, прелесть в том, что может не очень то и надо это делать: это потом чревато мучительным дебагом и вообще
[22.08.2019] Doc Виртуальные функции и есть синтаксический сахар, никто отрицать не будет, думаю
[22.08.2019] GeneralElConsul да, ты уже написал - значит правильно понял
[22.08.2019] GeneralElConsul пытаюсь понять, то есть при изменении да и даже создании ты просто копируешь код и изменяешь его тут же по-быстрому?
[22.08.2019] Vlod А это всего лишь не синтаксический сахар, как делать при одинаковом функционале?
[22.08.2019] Doc При реализации одного очень просто посмотреть на другое, если оно прямо тут же.
[22.08.2019] ScorpioT1000 GeneralElConsul, и в чем прелесть? что ты вручную без конфигов это делаешь?)
[22.08.2019] Doc Как минимум в моем случае это не шум, а референс
[22.08.2019] GeneralElConsul шум то и в том и в другом случае
[22.08.2019] GeneralElConsul да, но у меня будет куча ненужных мне в данную секунду других кейсов, на которые я не буду обращать особого внимания так же как и на другие функции в классе
[22.08.2019] Doc У тебя в этом файле не будет кода не относящегося к нужной тебе сейчас системе
[22.08.2019] GeneralElConsul Doc При добавлении ок, принято. При изменении я нахожу файл класса точно так же как при перво способе нахожу файл с кейсами и меняю блок реализованной функции/кода: одинаково выходит.
[22.08.2019] GeneralElConsul заставляет грустить
[22.08.2019] GeneralElConsul это распротраненная практика в энтерпрайзе вплоть до того что в вакансиях пишут требования конкретного di фраемворка из ассет стора
[22.08.2019] GeneralElConsul ScorpioT1000 смотри, какая прелесть а это еще суперлайт
[22.08.2019] Doc Языки в которых нет exhaustive switch я не рассматриваю, это то же самое как если бы компайлер не заставлял имплементить все функции класса
[22.08.2019] GeneralElConsul ScorpioT1000 "док про геймдев пишет, если что, там ооп нежелателен ооп оверхед" никогда не связывайся с юнити разработчиками, которые воспитаны на энтерпрайзе
[22.08.2019] Doc Естественно, что при добавлении тебе необходимо написать реализации во всех местах. В одном варианте оверхед при чтении и изменениях, в другом при добавлении новых элементов. Вот и подумай как часто ты делаешь эти три операции. Более того, добавлять проще всего, потому что компилятор напрямую говорит, где это нужно сделать.
[22.08.2019] GeneralElConsul хотя можно сказать, что случаи создания нового спелла будут многократно уступать случаям дебага и вот тут уже, возможно, будет преимущества у второго способа организации - считаешь ли ты так?
[22.08.2019] GeneralElConsul то есть тот самый поиск файлов, а если характеристик не 2 и я забуду во все файлы долезть дописатьи так далее: гарантий нет, держать в голове надо много
[22.08.2019] GeneralElConsul при добавлении нового спелла при первом способе залезаю в 2 участка кода со свитчами и вставляю кейс для нового спелла; при втором способе создаю класс реализую 2 метода
[22.08.2019] GeneralElConsul есть у меня спелл: у него свой характер урона (спеллы атакующие, предположим), у него свой харакатер визаулизации - пусть пока будет 2 параметра этих. Если делать первым способом то при запуске спелла будет большой свитч с характером полета в зависимости от спелла (кто-то по-прямой, кто-то виляет), а когда он достигнет цели там будет большой свитч с характером урона в зависимости от спелла (положим, один спелл моментально снимает, а другой постепенно). Если делать вторым способом то общий класс/интерфейс спелла с 2 виртуальными функциями ну и дальше ты понял
[22.08.2019] ScorpioT1000 энтерпрайз головного мозга)) да понятно, что всё от диздока и планов зависит