Naming Convention ação
-
02-07-2019 - |
Pergunta
Alguém estabeleceu uma boa convenção de nomenclatura para a ação no MVC? Eu estava olhando especificamente ASP.net MVC, mas é uma questão geral. Por exemplo, eu tenho uma ação que mostra a tela de login (login) e uma que processar a solicitação de login a partir dessa página (LoginTest). Eu não estou interessado nos nomes e eu tenho um monte de applicaiton esquerda para a gravação.
Solução
Rob Conery em MS sugeriu algum estilo RESTful útil nomeação para acções.
* 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"
resultados em URLs ao longo das linhas de (para um fórum)
* 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
Outras dicas
Eu encontrei um post de Stephen Walther útil para encontrar um esquema de nomenclatura consistente. Sua também são derivados de um esquema de nomenclatura de estilo REST, com algumas exceções únicas que ele explica.
Rails tem uma ação agradável convenção de nomenclatura para as operações CRUD: Rails Routing de Fora para Dentro .
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
Esta é essencialmente uma atualização do Paul Shannon resposta , desde a sua fonte (Rob Conery) diz implicitamente que ele copiou sua lista de Rails.
O builtin ações Django sufixo _done. Então LoginDone seria a página que processa Login (em ASP.NET MVC estilo caso camelo).
É bastante irrelevante que convenção que utiliza para a nomeação Action Controller, desde que de consistente para você e facilmente compreendida por aqueles que trabalham nela.
No caso de suas ações de login, LoginDone está bem e no mesmo foi ProcessLogin vai é fácil de entender, então use uma convenção que você se sinta confortável.
Pessoalmente eu provavelmente lado com Login e ProcessLogin, como LoginDone é, provavelmente, um pouco enganador em termos do que a ação está fazendo - isto é, naturalmente, assumindo que a ação está reagindo a credenciais dos usuários e verificar se elas são válidas. Você poderia, então, passar para outra ação chamada LoginDone uma vez que o login for bem sucedido, ou LoginFailed se não é.
O post de Stephen Walther em ASP.NET MVC Dica # 11 - uso padrão controlador nomes de ação provavelmente esclarecer-lo sobre a convenção de nomenclatura de convenção MVC Action
nomeação ...