Вероятно, это простой вопрос, но у меня нет четкого представления о том, какое соглашение об именах лучше всего подходит для классов и пакетов dto, с точки зрения имени пакета, DTO в верхнем регистре или Dto для классов и т. д. Пример:
1. Название пакета:
xxx.dto.animal.Dog.class или xxx.animal.Dog.class
2. Соглашение об именах классов dto в верхнем регистре:
DogDTO или DogDto
3. Смешивание обоих соглашений dto или ни одного.
Проблема в том, могу ли я объявить слово «dto» как пакет или слово «dto» должно быть включено в имя класса или в обоих случаях.





Старайтесь избегать суффикса DTO в именах классов. Включение DTO в имена пакетов — это нормально.
Вам просто нужно решить, как использовать его в именах пакетов. Обычно я предпочитаю my.feature1.dto, my.feature2.dto например.
DTO — очень простой класс, поэтому распознать класс как DTO не составит труда.
Можете ли вы привести пример с использованием какого-либо языка программирования? Например, если я использую C#, у меня, вероятно, будет что-то вроде: my.feafure.dto.Dog и my.feature.model.Dog Мой пример может быть плохим, но основная идея в том, что классы с одинаковыми именами находятся в другом пространстве имен. Вероятно, модели также находятся внутри другого проекта. В IDE обычно хорошо видно, какой пакет используется.
Я понимаю саму концепцию, но как вы думаете, имеет ли смысл в вашем классе, что бы ни разрабатывалось C#, java, kotlin и т. д., иметь два экземпляра Dog с одинаковым именем и разными пакетами? Я имею в виду, что my.feafure.dto.Dog и моя.фича.модель.Собака в одном классе, по крайней мере, это выглядит странно, однако, если у вас есть мой.feafure.dto.DogDto и моя.фича.модель.Собака, класс легче понять, потому что вы видите, какой объект является dto, а какой является моделью... Иногда я думаю, что лучше включить dto в имя, а иногда я предпочитаю не включать его в него.
Это слишком двусмысленно. Как я уже сказал, мой пример плохой. Я использовал суффикс DTO много раз, но позже отказался от него. Нет ничего плохого в использовании суффикса, поэтому используйте его, если он понятен вам и вашей команде. Я пытаюсь сказать, что в любом случае, вероятно, есть лучшее имя для класса DTO. DTO передают данные, поэтому обычно я использую такие суффиксы, как xxxResponse, xxxRequest, xxxStatus и т. д. Я знаю, что эти классы просто передают данные, но теперь цель более ясна, чем простой суффикс xxxDto.
Спасибо за ответ . Но что касается ваших комментариев, например, если у нас есть преобразователь классов с dto и моделью (сущностью), как вы можете с этим справиться? Я имею в виду, представьте, что наша модель и dto очень похожи... Ход вы управляете именами? Dog(Dto) - Собака (модель), отличается только на упаковке..?