Именование классов
От: peer  
Дата: 11.08.22 04:55
Оценка:
Если у вас есть уже немспейс

Portal.Model.Client

и внутри него вы создаете классы валидаций

GeneralInfoValidator
BackHistoryValidator

пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client
Re: Именование классов
От: vopl Россия  
Дата: 11.08.22 12:04
Оценка: -1
Здравствуйте, peer, Вы писали:

P>Если у вас есть уже немспейс


P>Portal.Model.Client


P>и внутри него вы создаете классы валидаций


P>GeneralInfoValidator

P>BackHistoryValidator

P>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


Я не пишу. Да и вообще любое дублирование схлопываю:

ns Portal.Model.Client.Validator
{
    class GeneralInfo;
    class BackHistory;
}
Re[2]: Именование классов
От: peer  
Дата: 11.08.22 14:50
Оценка:
Здравствуйте, vopl, Вы писали:

P>>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


V>Я не пишу. Да и вообще любое дублирование схлопываю:


V>
V>ns Portal.Model.Client.Validator
V>{
V>    class GeneralInfo;
V>    class BackHistory;
V>}
V>


а как потом используете валидаторы?
ведь может быть


ns Portal.Model.Client.Db
{
    class GeneralInfo;
    class BackHistory;
}



и как потом с этим работать в

ns Portal.Model.Client.UoW
{
    Save()
        {
           Validate();
           Save();
        }


}
Re[3]: Именование классов
От: vopl Россия  
Дата: 11.08.22 15:41
Оценка:
Здравствуйте, peer, Вы писали:

P>Здравствуйте, vopl, Вы писали:


P>>>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


V>>Я не пишу. Да и вообще любое дублирование схлопываю:


V>>
V>>ns Portal.Model.Client.Validator
V>>{
V>>    class GeneralInfo;
V>>    class BackHistory;
V>>}
V>>


P>а как потом используете валидаторы?


так же как и раньше, с точностью до идентификации:
было
Portal.Model.Client.GeneralInfoValidator myValidator;

стало
Portal.Model.Client.Validator.GeneralInfo myValidator;


P>ведь может быть


P>
P>ns Portal.Model.Client.Db
P>{
P>    class GeneralInfo;
P>    class BackHistory;
P>}
P>


ну, если нормально подбирать иерархию пространств имен и их имена — все получается отлично. Непосредственно эту запись я бы прочитал так: "GeneralInfo и BackHistory — это базы данных клиента в модели портала"
Re: Именование классов
От: vaa  
Дата: 14.08.22 02:45
Оценка:
Здравствуйте, peer, Вы писали:

P>Если у вас есть уже немспейс


P>Portal.Model.Client


P>и внутри него вы создаете классы валидаций


P>GeneralInfoValidator

P>BackHistoryValidator

P>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


Периодически это становится проблемой, когда две либы имеют одинаковые классы
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Именование классов
От: vopl Россия  
Дата: 14.08.22 13:12
Оценка: +1
Здравствуйте, vaa, Вы писали:

vaa>Здравствуйте, peer, Вы писали:


P>>Если у вас есть уже немспейс


P>>Portal.Model.Client


P>>и внутри него вы создаете классы валидаций


P>>GeneralInfoValidator

P>>BackHistoryValidator

P>>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


vaa>Периодически это становится проблемой, когда две либы имеют одинаковые классы


А это тут при чем? Приписать спереди Client или не приписывать — "одинаковость классов в разных либах" будет как то меняться от этого?
Re[3]: Именование классов
От: vaa  
Дата: 15.08.22 05:36
Оценка:
Здравствуйте, vopl, Вы писали:

V>Здравствуйте, vaa, Вы писали:


vaa>>Здравствуйте, peer, Вы писали:


P>>>Если у вас есть уже немспейс


P>>>Portal.Model.Client


P>>>и внутри него вы создаете классы валидаций


P>>>GeneralInfoValidator

P>>>BackHistoryValidator

P>>>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


vaa>>Периодически это становится проблемой, когда две либы имеют одинаковые классы


V>А это тут при чем? Приписать спереди Client или не приписывать — "одинаковость классов в разных либах" будет как то меняться от этого?

неоднозначность же, придется алиас создавать, чтобы разрешить конфликт имен.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Именование классов
От: fmiracle  
Дата: 15.08.22 06:54
Оценка: +1
Здравствуйте, vaa, Вы писали:

V>>А это тут при чем? Приписать спереди Client или не приписывать — "одинаковость классов в разных либах" будет как то меняться от этого?

vaa>неоднозначность же, придется алиас создавать, чтобы разрешить конфликт имен.

это не про то, тут речь о разных неймспейсах. Их можно просто не импортировать, но тогда придется всегда прописывать полные имена с ns. Но ТС походу так и делает, так что ему не страшно.
Re: Именование классов
От: fmiracle  
Дата: 15.08.22 06:59
Оценка:
Здравствуйте, peer, Вы писали:

P>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


Я пишу.
1. импорт неймспейсов удобная вещь, чтобы не прописывать их явным образом повсеместно. Я ей обычно и пользуюсь. А с таким наименованием импорт ломается как только два похожих объекта из надо использовать совместно.
2. внешний поиск по коду, от обычного поиска по файлу до системы индексации типа Opengrok, обычно недостаточно умен, чтобы понять неймспейс объекта (потому что не компилирует, а только работает с текстом). И ClientValidator он найдет правильно, а просто Validator вывалит из всех неймспейсов. А суть же поиска чтобы быстро найти нужное, а не разбирать потом простыню результатов.
Re: Именование классов
От: vsb Казахстан  
Дата: 15.08.22 07:36
Оценка:
Здравствуйте, peer, Вы писали:

P>Если у вас есть уже немспейс


P>Portal.Model.Client


P>и внутри него вы создаете классы валидаций


P>GeneralInfoValidator

P>BackHistoryValidator

P>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


Если имя не очевидно-уникальное, то пишу. Но это в основном из-за того что в жаве нет нормальных импортов. Были бы — не писал бы. Типа import client.validator; var cv = new client.validator();
Re: Именование классов
От: _FRED_ Черногория
Дата: 17.08.22 10:03
Оценка:
Здравствуйте, peer, Вы писали:

P>Если у вас есть уже немспейс

P>Portal.Model.Client

P>и внутри него вы создаете классы валидаций

P>GeneralInfoValidator
P>BackHistoryValidator

P>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


Ну а потом появляется пространство имён `Portal.Model.Server` со своими `GeneralInfoValidator` и `BackHistoryValidator`… и где-то, где вдруг понадобилось подключить оба этих пространства могут быть конфликты

В целом, для принятия решения надо лучше понимать, за что конкретно отвечают эти классы, как спроектировано именование в этой сборке и в этом пространстве имён (какие ещё типы есть, чем они занимаются и как называются или предполагают называться).
Лучшее (правильное?) именование может зависеть не столько от этих самих типов, сколько от совсем других сущностей или сценариев использования.
Help will always be given at Hogwarts to those who ask for it.
Re: Именование классов
От: Shtole  
Дата: 17.08.22 17:05
Оценка:
Здравствуйте, peer, Вы писали:

P>Если у вас есть уже немспейс


P>Portal.Model.Client


P>и внутри него вы создаете классы валидаций


P>GeneralInfoValidator

P>BackHistoryValidator

P>пишите ли вы Client спереди? раньше писал, но вот думаю есть же немспейс ...Client


Не пишу. Этот подход у меня распространяется на все виды классов, даже классы CSS.
Do you want to develop an app?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.