Tengo que procesar unos 20 parámetros de POST, y no estoy seguro de dónde hacerlo.¿Debo acceder a POST-Parameters en el modelo o pasar como argumentos de método desde el controlador?
Podría definir cada uno como un argumento del método en el modelo, y pasarlos desde el controlador cuando se llame al método. Esto daría como resultado un gran trabajo y haría que la llamada a la función sea menos legible, debido a la cantidad de argumentos.
O podría llamar al método en el modelo y acceder directamente a los parámetros.
Pasar los parámetros como argumentos me daría más control sobre a qué parámetros accede la función, y la documentación sería más fácil de entender. Pero si se agregaran nuevos parámetros más adelante, tendrían que agregarse al final de la llamada al método, para no interrumpir todas las llamadas existentes. Imagino que esto sería bastante confuso si sucede algunas veces, ya que los argumentos no se pueden agrupar de manera lógica.
Si accedo al parámetro en el modelo, no se deben pasar parámetros del controlador al modelo, haciendo que el método llame a terser. Pero no tengo control sobre los parámetros a los que se accede, ya que pueden agregarse o eliminarse fácilmente y sin restricciones. Esto requeriría una mayor disciplina de los otros desarrolladores, y no me gusta depender de eso, porque tarde o temprano alguien está obligado a "simplemente (agregar | cambiar | corregir) esto muy rápido".
No estoy seguro de qué camino tomar. Tiendo a hacerlo todo solo en el modelo, ya que es más rápido de escribir, parece más fácil de mantener (sin caos argumental) y conceptualmente se ajusta mejor a mi visión de un modelo. Por otro lado, no estoy seguro de si mi visión de un modelo es correcta, y si terminará en un caos si dependo de los otros desarrolladores para actualizar siempre la documentación después de cada cambio.
Entonces, ¿qué debo hacer?
Opté por no aceptar ninguna respuesta a mi pregunta, ya que no hay una respuesta clara. En general, seguiría el enfoque de Ignas y Lucas, ya que los datos están mejor restringidos. Para este caso en nuestra aplicación, la respuesta de karims encaja mejor. – Thomas