Mostrando las entradas con la etiqueta polemica. Mostrar todas las entradas
Mostrando las entradas con la etiqueta polemica. Mostrar todas las entradas

¿Qué nombres ponerles a nuestros componentes en un framework MVC?

Este es un tema por el que he pasado un tiempo analizando y no encontrando información "oficial" explícita sobre cómo debemos nombrar nuestros módulos/controllers, principalmente si usar palabras en "singular" o en "plural" (si alguien encuentra, me avisa). A veces, la forma de llegar a un criterio es buscar ejemplos en otros proyectos y aprender de la experiencia de otros, pero no fue el caso, ya que podemos encontrar tanto como (inglés o castellano):
  • "usuarios" o "usuario"
  • "facturas" o "factura"
  • "stocks" o "stock"
  • "proveedores" o "proveedor"
  • "páginas" o "página"
  • etc
Si alguien tiene la misma duda, paso a comentarles mis criterios para que tengan una referencia más a la hora de decidirse ;-)

En lo personal estaba usando el siguiente criterio (que no quiere decir que sea correcto ni el mejor): que la url fuera coherente con su lectura, es decir, prefiero que diga:
  • surforce.com/usuarios/ficha/ver/id/1
Y no
  • surforce.com/usuario/ficha/ver/id/1
Ya que es funcionalidad (módulo) que se aplica a "todos" los usuarios y no a un usuario, y el controller afecta a un solo usuario (y así ajustar los nombres de los elementos).

Ejemplos:
  • A pesar que existe en la documentación referencia a los módulos, no especifica exactamente cómo nombrarlos, aunque muestra ejemplos tanto en singular como en plural.
  • En los mismos ejemplos muestran "blog" y "news", por lo que yo lo analizaría por el lado de "si es un módulo de blog (uno) lo usaría en singular, pero si es un módulo que maneja varios blogs (más de uno), lo llamaría blogs" ("módulo de blogs").
Usando un poco el sentido común, sin pensar en MVC ni en ZF, ¿si necesitara crear módulos para un sistema, qué nombres les daríamos?
  1. Sistema de Gestión de Usuarios -> modulo "usuarios"
  2. Sistema de Gestión de Administración -> modulo "admin"
  3. Sistema de manejo de Stock -> modulo "stock"
  4. Sistema de manejo de Ventas -> módulo de "ventas"
Indistintamente de lo que hagan otros proyectos (como Magento, que veo que muchos usan como único referente), tendríamos que analizar más proyectos o encontrar algo "oficial" de la propia Zend.

Mi criterio sobre el tema de "nombres":
  • Una cosa es el nombre de un Model, donde yo usaría lo mismo que el criterio general de nombre de clases de POO, en singular.
  • Otra cosa son los controllers, que actualmente estoy usando más que nada el criterio de "url usable", que quede coherente a la lectura (no es lo mejor -sé que se pueden configurar las url's- pero tampoco encontré una documentación oficial que aclare este tema), por lo tanto si se aplica a uno o a muchos, usaría singular o plural.
  • Y otra cosa es el nombre del módulo, que creo también pasa por el tema de nuestra decisión de nombres, más que un tema de nombre de Clase o de Controller (por más que todos son "clases", son "especiales" y específicas del MVC y de Zend), también usaría singular o plural.
Creo que por ahí pasa la discusión, no sé que piensan ustedes y qué criterios usan para definir los nombres de sus componentes, sean tanto en Zend como en otros frameworks que usan MVC.

Soy todo oídos ;-)

Entradas populares