Соглашение Об именовании действий
-
02-07-2019 - |
Вопрос
Кто-нибудь установил хорошее соглашение об именовании для действий в MVC?Я специально рассматривал ASP.net MVC, но это общий вопрос.Например, у меня есть действие, которое отображает экран входа в систему (Login) и которое обрабатывает запрос на вход с этой страницы (LoginTest).Я не в восторге от названий, и мне еще нужно написать много приложений.
Решение
Роб Конери из MS предложил несколько полезных имен в стиле RESTful для действий.
* Index - the main "landing" page. This is also the default endpoint. * List - a list of whatever "thing" you're showing them - like a list of Products. * Show - a particular item of whatever "thing" you're showing them (like a Product) * Edit - an edit page for the "thing" * New - a create page for the "thing" * Create - creates a new "thing" (and saves it if you're using a DB) * Update - updates the "thing" * Delete - deletes the "thing"
выдает результаты в виде URL-адресов, подобных (для форума)
* http://mysite/forum/group/list - shows all the groups in my forum * http://mysite/forum/forums/show/1 - shows all the topics in forum id=1 * http://mysite/forums/topic/show/20 - shows all the posts for topic id=20
Другие советы
Я нашел запись в блоге Стивена Уолтера полезно для поиска согласованной схемы именования.Его имена также являются производными от схемы именования в стиле REST, с некоторыми уникальными исключениями, которые он объясняет.
Rails имеет хорошее соглашение об именовании действий для операций CRUD: Прокладка рельсов снаружи в.
HTTP Verb Path Controller#Action Used for
GET /photos photos#index display a list of all photos
GET /photos/new photos#new return an HTML form for creating a new photo
POST /photos photos#create create a new photo
GET /photos/:id photos#show display a specific photo
GET /photos/:id/edit photos#edit return an HTML form for editing a photo
PATCH/PUT /photos/:id photos#update update a specific photo
DELETE /photos/:id photos#destroy delete a specific photo
По сути, это обновление для Ответ Пола Шеннона, поскольку его источник (Роб Конери) неявно говорит, что он скопировал свой список из Rails.
Встроенный суффикс действий Django _done.Таким образом, LoginDone будет страницей, которая обрабатывает вход в систему (в ASP.NET стиле MVC camel case).
Совершенно неважно, какое соглашение вы используете для именования действий контроллера, если оно согласовано для вас и легко понимается теми, кто работает над ним.
В случае ваших действий при входе в систему LoginDone работает нормально, и в том же was ProcessLogin будет легко понять, поэтому используйте соглашение, с которым вы чувствуете себя комфортно.
Лично я бы, вероятно, встал на сторону Login и ProcessLogin, поскольку LoginDone, вероятно, немного вводит в заблуждение с точки зрения того, что делает Действие - это, конечно, предполагает, что Действие реагирует на учетные данные пользователей и проверяет, действительны ли они.Затем вы могли бы перейти к другому действию под названием LoginDone после успешного входа в систему или LoginFailed, если это не так.
Сообщение Стивена Уолтера о ASP.NET Совет MVC № 11 – Используйте стандартные имена действий контроллера вероятно, я бы разъяснил вам относительно соглашения об именовании MVC Action
соглашение об именовании...