Блог - BlogPost - BlogPostComment против блога - Пост - Комментарий - PullRequest
2 голосов
/ 16 марта 2010

На самом деле не знаю, как сформулировать заголовок, но это должно быть довольно очевидно из примера.

Более конкретно, какие правила вы используете для именования "зависимых" классов. Например, Blog само по себе довольно описательное имя, но как мне поступить с постами? BlogPost или Post? Очевидно, что имя ясно выражает, что это «подчиненный» класс, но это может быстро выйти из-под контроля с BlogPostComment, BlogPostCommentAttachment и т. Д. Post, с другой стороны, выглядит как сущность, совершенно не связанная с Blog и легче на глаз.

Каковы ваши правила / лучшие практики?

Ответы [ 3 ]

3 голосов
/ 16 марта 2010

Мне лично больше всего нравится последний. И разве хорошее имя пространства имен не будет однозначным Post?

1 голос
/ 16 марта 2010

Интересный вопрос. Я бы использовал либо в зависимости от ситуации.

Например, простой News и NewsItem вполне подойдет, так как это базовая модель, и соглашение об именах проясняет соотношение в этом случае.

Однако для более крупных разработок с более сложными моделями доменов и хорошо поддерживаемым пространством имен (например, блогом) я бы сказал, что называть типы Blog, Post, Comment нужно менее замысловато и чище.

1 голос
/ 16 марта 2010

В случае, если вы упомянули, проблема настолько хорошо известна, что она не имеет значения, если быть краткой, и фактически спасает вас от набора текста. Другие типы взаимоотношений между классами не так просты.

Еще одним плюсом использования «Блога», «Поста» и «Комментария» является то, что вы можете повторно использовать «Пост» и «Комментарий» для других вещей, не обязательно связанных с блогом, и они бы лучше подходили там (хорошо, это просто переименование в любом случае ).

Тогда моё правило было бы «будь как можно чётче». Я склонен полагать, что до того, как вы начнете вмешиваться в мой код или я начну проектировать оружие, мы немного прочитали о проблемном пространстве.

Более того: большинство известных мне веб-фреймворков облегчают использование кратких названий, таких как блог, публикация и т. Д., Для названий моделей.

...