进些天一直在读一本叫做RailssSpace(http://www.amazon.com/dp/0321480791)的书,其中有一个如何管理controller的规则觉得很有用,规则大致如下:
- 使用名词作为controller的名字;动词作为action的名字。例如:UserController中有login, logout, register, edit等actions.
- 如果发现自己开始定义带有下划线, 尤其是<verb>_<noun>形式的action, 因该考虑针对noun建立一个新的controller, verb作为新的controller下的action。例如:不应该在UserController中定义了一个叫edit_spec 的action去编辑用户的specification, 而应该定义一个SpecController, 和相应的edit action.
如果你发现你的controller过于臃肿, 不知道哪些action该放到哪些controller中, 不知道是否该建立一个新的controller, 用用这个规则吧!
分享到:
相关推荐
在Laravel框架中,`BaseController`是一种常见的实践,它作为一个基础控制器,为其他自定义控制器提供共享的方法和逻辑。这种做法有助于代码的组织和复用,提高开发效率。下面我们将详细探讨`BaseController`的概念...
- **生命周期**:一个Controller实例可以处理多个请求,因此在编写Controller时需要注意避免状态依赖的问题。 ##### 2.2 Action - **定义**:Action是Controller中的方法,它们通常以HTTP动词(如GET、POST等)为...
在新创建的类库项目中,创建一个新的Controller类,继承自`Microsoft.AspNetCore.Mvc.ControllerBase`或具体的Controller基类,比如`Microsoft.AspNetCore.Mvc.Controller`。编写需要的动作方法(Action)。 3. ...
- 创建新森林:适用于首次在组织内部署Active Directory的情况,将创建一个全新的域森林。 - 新域在现有森林:在已有森林中添加新的子域或树。 **步骤六:指定完全限定域名(FQDN)** - 输入森林根域的完全限定...
在"Leave"这个具体场景中,可能是在开发一个请假管理系统。模型可能是处理请假申请的业务逻辑,包括验证、计算假期余额等;视图则可能展示请假申请表单、审批结果等;控制器接收用户的请假申请,处理审批逻辑,并...
例如,一个按钮可以命名为"btnSave",表示它是保存操作的按钮,而不是简单的"Button1"。 3. **驼峰式命名**:在Asp.NET中,推荐使用驼峰式命名法(PascalCase)来命名控件。例如,"txtFirstName"、"lblErrorMessage...
综上所述,"我的编码规则"这个压缩包提供了一个学习 MVC 框架的实例,包括了模型、视图、控制器的实现,以及数据库交互和业务服务,还有详细的说明文档。对于初学者,这是一个很好的资源,可以从中了解如何按照规范...
在Java Web开发中,"Controller-Service-Dao"是一种常见的分层架构模式,用于组织和管理应用程序的不同组件,以...开发者可以通过分析这些文件,了解并学习如何在实际开发中运用分层架构来构建一个健壮的Java Web应用。
5. **输入管理**:游戏中的输入处理是关键部分,Actor Controller会有一个输入管理系统,将键盘、鼠标或游戏手柄的输入转换为角色的动作命令。 6. **状态机**:为了管理角色的各种状态(行走、跑步、跳跃、攻击等)...
另一方面,如果你有一个类的名称碰巧包含"Controller",但你不希望它被视为控制器,可以使用NonControllerAttribute来排除。这可以帮助避免框架对无意中匹配的类进行处理。 总结来说,ASP.NET Core中的Controller和...
我们可以创建一个HTML文件,例如“hello.html”,并在Controller中指定视图名称,Spring MVC会自动根据视图解析器的规则找到对应的模板文件。 最后,运行项目,我们可以通过访问http://localhost:8080/hello来测试...
- 一个或多个 @Controller 类,处理 HTTP 请求。 - 可能有自定义的配置类,用于设置视图解析器、拦截器等。 - 模型对象(beans),用于封装业务数据。 - JSP 页面或其他视图模板,用于展示结果。 这个简单的实例...
`MY_Controller`是CodeIgniter的扩展机制——“核心类”(Core Classes)的一部分,它是`CI_Controller`的一个子类,通常位于`application/core`目录下。通过创建`MY_Controller`,开发者可以定义一系列通用的初始化...
"laravel-controller-repository-traits"是一个专门为Laravel设计的组件,它引入了Repository模式和Traits的概念,旨在提高代码的可复用性和组织性。下面将详细探讨这个主题。 首先,我们来看“Controller”和...
通过深入学习和实践这个源码库,不仅可以掌握SSM框架和MySQL数据库的使用,还能了解到关联规则在推荐系统中的应用,以及如何构建一个完整的Web应用程序。对于准备从事Java Web开发或感兴趣于考研推荐系统的读者,这...
总之,这个工具箱为研究者和工程师提供了一个强大的平台,用于设计、仿真和优化区间二型自组织模糊逻辑控制器,帮助他们解决实际问题,实现更高效、更稳定的控制系统。通过深入理解和应用这个工具箱,可以提升对模糊...
为了提高通信效率,CAN协议引入了位填充规则,即连续发送相同位数达到5个时,自动插入一个相反的位。这有助于检测并纠正由于长串相同位导致的同步问题。 **三、物理信号层** 物理信号层定义了CAN总线的电气特性,...
以上代码定义了一个名为`Blog`的控制器类,该类继承自`CI_Controller`。在类内部,我们定义了两个方法:`index()` 和 `comments()`。其中,`index()` 方法用于显示“Hello World!”,而 `comments()` 方法则用于显示...
T2SOFLC工具箱提供了一个直观、简洁的用户图形界面,允许用户通过操作界面轻松构建控制器,从而大幅缩短控制系统的研发周期,并提高控制器设计的效率。 在模糊控制理论中,区间二型模糊逻辑控制器(Interval Type-2...
为了更好地组织代码,可以创建一个基类ViewModel(BCBaseViewModel),包含一个指向ViewController的弱引用属性,并提供一个工厂方法来初始化ViewModel。通过继承,我们可以为特定需求创建子类,实现特定的业务逻辑...