【发布时间】:2017-09-14 11:35:40
【问题描述】:
我刚刚发现了the official Symfony best practices 关于控制器,它的写法是:
根据经验,您应该遵循 5-10-20 规则,其中控制器应仅定义 5 个或更少的变量,包含 10 个或更少的操作,并且每个操作包含 20 行或更少的代码。
我有一个关于它的含义的问题,因为它可以用两种不同的方式来理解。
“controllers”指定控制器类(例如
class MyController{})和“actions”指定控制器功能(例如public function indexAction(){})=> 对我来说没有意义“controllers”指定控制器功能(例如
public function indexAction(){})和“actions”指定这些功能中的指令(例如if(){//do something})=> 这对我来说很有意义
在情况 1 中,这意味着类似:
// Approximate maximum number of lines : 200
class MyController {
// Max 20 lines of code
public function firstAction(){}
[...]
// Max 20 lines of code
public function tenthAction(){}
}
此外,在这种情况下,我无法理解“5 个变量或更少”的含义。 5个全局变量?所有 10 个动作的 5 个局部变量?
在情况 2 中,这意味着类似:
// No maximum number of lines
class MyController {
// Max 10 actions * 20 lines by actions = 200 lines of code, and 5 local variables
public function firstAction(){}
[...]
// Max 10 actions * 20 lines by actions = 200 lines of code, and 5 local variables
public function fiftiethAction(){}
}
我的问题的目标是绝对确定理解好的意思。但我也认为让 Symfony 团队在不留下任何歧义的情况下重写这句话会很有用?我特别想到像我这样的非英语开发人员,或者 Symfony 初学者。
考虑到案例 2 是好的,例如,“action(s)”一词可以替换为“instruction(s)”或“directive(s)”?
【问题讨论】: