Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 03.11.2019, 15:41   #166
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,189
Написано 2,369 полезных сообщений
(для 6,565 пользователей)
Ответ: Проблемы разработки от EvilOkta

Сообщение от EvilOkta Посмотреть сообщение
Когда кол-во классов становится большим становится сложно в голове удерживать какие методы они реализуют, интерфейсы наследуют и какими свойствами обладают.
Мне кажется, что тут скорее проблема проектирования и никакие документации не помогут. Стоит посмотреть на SOLID,
как на некий набор общепринятых практик по написанию легко поддерживаемого кода.
Естественно всё и сразу не надо пытаться исполнять, начать можно с "SRP",
а "DI" оставить до лучших времён, когда он действительно тебе будет нужен.
__________________
Retry, Abort, Ignore? █
AMD Ryzen 7 3800X 4.3Ghz; 64Gb ram; Nvidia Geforce 1070Ti
AMD Ryzen 7 1700X x8 3.4Ghz; Radeon RX 570
AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
EvilOkta (10.11.2019)
Старый 05.11.2019, 05:04   #167
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,508
Написано 2,963 полезных сообщений
(для 5,252 пользователей)
Ответ: Проблемы разработки от EvilOkta

Сообщение от EvilOkta Посмотреть сообщение
Спасибо ) энтерпрайз дорого (я ж не зарабатываю программированием), идея с partial интересная. Параллельно в Excel заношу публичные методы классов и их сигнатуры, на всякий случай.
Есть полезное окно, в котором всю структуру проекта можно посмотреть. Называется Обозреватель объектов (Вид => Обозреватель объектов). Там все можно подсмотреть. А если есть XML комментарии, то и их можно посмотреть в удобном формате.

Сообщение от Антихрист Посмотреть сообщение
Конкретно к этому примеру - выглядит не очень. В первую очередь за счет цикла с сравнением строк внутри гетера. Добавь одну переменную и закэшируй туда индекс.
protected static readonly string[] Monthes =
        {
            
"января""февраля""марта""апреля""мая""июня""июля""августа""сентября""октября""ноября",
            
"декабря"
        
};

        protected 
byte monthIndex;
        protected 
string monthName;

        protected 
byte MonthIndex
        
{
            
get => monthIndex;
            
set
            
{
                if (
value <= || value 12) return;
                
monthIndex = (byte) (value 1);
                
monthName Monthes[monthIndex];
            }
        }

        protected 
string MonthName => monthName
Вообще хранить название месяца в отдельной переменной не надо. Зачем память тратить. Используй свойство, если есть индекс.
protected string MonthName => Mounthes[monthIndex]; 
или
protected byte monthIndex = -1;
protected 
string MonthName => monthIndex == -null Mounthes[monthIndex]; 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
EvilOkta (06.11.2019)
Старый 05.11.2019, 20:23   #168
Антихрист
Разработчик
 
Регистрация: 20.01.2007
Сообщений: 482
Написано 180 полезных сообщений
(для 409 пользователей)
Ответ: Проблемы разработки от EvilOkta

Сообщение от pax Посмотреть сообщение
Есть полезное окно, в котором всю структуру проекта можно посмотреть. Называется Обозреватель объектов (Вид => Обозреватель объектов). Там все можно подсмотреть. А если есть XML комментарии, то и их можно посмотреть в удобном формате.



Вообще хранить название месяца в отдельной переменной не надо. Зачем память тратить. Используй свойство, если есть индекс.
protected string MonthName => Mounthes[monthIndex]; 
Согласен, если monthIndex не может быть изменен в другом месте выйдя за рамки массива.
protected byte monthIndex = -1;
protected 
string MonthName => monthIndex == -null Mounthes[monthIndex]; 
Вроде С# не позволит впихнуть в byte отрицательное значение.
Как вариант
protected bytemonthIndex null
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
EvilOkta (06.11.2019)
Старый 07.11.2019, 17:52   #169
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,508
Написано 2,963 полезных сообщений
(для 5,252 пользователей)
Ответ: Проблемы разработки от EvilOkta

Сообщение от Антихрист Посмотреть сообщение
Вроде С# не позволит впихнуть в byte отрицательное значение.
Как вариант
protected bytemonthIndex null
Да, писал прям сюда, поэтому ошибся. Можно sbyte в данном случае использовать.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
EvilOkta (07.11.2019)
Старый 07.11.2019, 18:48   #170
EvilOkta
Знающий
 
Аватар для EvilOkta
 
Регистрация: 31.07.2008
Сообщений: 313
Написано 107 полезных сообщений
(для 228 пользователей)
Ответ: Проблемы разработки от EvilOkta

Сообщение от Антихрист Посмотреть сообщение
Согласен, если monthIndex не может быть изменен в другом месте выйдя за рамки массива.
Хорошая идея! Можно сделать, это действительно лучше

Сообщение от pax Посмотреть сообщение
Есть полезное окно, в котором всю структуру проекта можно посмотреть. Называется Обозреватель объектов (Вид => Обозреватель объектов). Там все можно подсмотреть. А если есть XML комментарии, то и их можно посмотреть в удобном формате.
Вот! Как раз таки подобное я искал, спасибо!

Сообщение от Randomize Посмотреть сообщение
Мне кажется, что тут скорее проблема проектирования и никакие документации не помогут. Стоит посмотреть на SOLID,
как на некий набор общепринятых практик по написанию легко поддерживаемого кода.
Естественно всё и сразу не надо пытаться исполнять, начать можно с "SRP",
а "DI" оставить до лучших времён, когда он действительно тебе будет нужен.
SOLID только начал разбираться, но мне уже не понравилось "Каждый класс должен иметь одну и только одну причину для изменений" - у меня в голове это выглядит как огромная куча классов, каждый из который использует единственный публичный метод, который делает что-то. Я больше привык когда класс описывает поведение в заданных рамках, чтобы не нарушать принципа бритвы Оккама.

Чтобы не заниматься ответом на цитаты, вопрос для понимания - в каком формате лучше использовать и хранить БД в Unity?
Или вообще без разницы?
upd конкретизирую вопрос - для проекта нужно подкачивать массивы информации в текстовом виде, в чем их лучше хранить и динамически при необходимости загружать - csv, txt, xml, xls и т.п.?
__________________
Области Хаоса - мой новый Youtube проект

Последний раз редактировалось EvilOkta, 10.11.2019 в 08:29.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 11:58.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com