-
Notifications
You must be signed in to change notification settings - Fork 112
Стиль программирования и наименования
kloun edited this page Feb 2, 2012
·
1 revision
Тут описаны общие идеи. В спорных случаях пользуемся здравым смыслом и чувством прекрасного.
Пользуемся Java Code Conventions, за исключением того что стандартное выравнивание - два символа.
Аббревиатуры пишем в camel case, т.е. UserDao (а не UserDAO)
- @Controller: должен оканчиваться на Controller, например UserModificationController.
- Dao (@Repository): окачивается на Dao, например UserDao
- Данные формы (@ModelAttribute для формы): оканчивается на Request, например AddCommentRequest
- Валидатор формы: оканчивается на RequestValidator, например AddCommentRequestValidator
- Базовый доменный объект: без окончания, например User и Comment
- Составной доменный объект: начинается на Prepared, например PreparedComment. PreparedComment, в отличие от Comment, содержит построенные объекты автора комментария (т.е. User author, а не int authorId), вычисленный текст lorcode и т.п.
- Сервис построения Prepared-объектов: оканчивается на PrepareService, например CommentPrepareService. Общие вещи живут в классе PrepareService
- DTO: оканчивается на Dto, например TrackerItemDto. Dto применяем только когда нет доменного объекта, например если нужно передавать результаты какой-то хитрой выборки которая нужна в одном контроллере
- Boxlet (блоки на главной странице): оканчиваются на Boxlet, например GalleryBoxlet
В текущий момент логика отсутствует. В процессе переезда на Spring новые классы добавлялись в ru.org.linux.spring, а старые жили в ru.org.linux.site, однако сейчас смысл в подобном разделении изчез.
По возможности, стараемся организоввывать пакеты по назначению, а не по типу классов. Например ru.org.linux.search для поиска, ru.org.linux.poll для опросов, ru.org.linux.user для работы с пользовательскими аккаунтами. Тесты также группируются по назначению классов.