何时创建新控制器/模型的编码点火器



我看过很多YouTube指南/教程,但那些只涉及编码部分。

每当我开始一个项目时,我总是从一个名为main的简单控制器开始。 和 2 个模型。

例如:如果我要启动一个在线商店项目。然后我的模型将是"product_model"和"user_model"。用户的所有数据库功能,我总是把它们放在"user_model"中,所有数据库功能对于产品,我总是把它们放在"product_model"中。

user_model:

public function register(){
}
public function login(){
}
//more functions for user

product_model:

public function create_product(){
}
public function review_product(){
}
//more functions for product

我的问题是我很容易对我的项目感到困惑和/或对它的无组织程度不满意。 特别是当我在项目进行到一半以上并且我积累了数百行代码时。

我可以尝试自己组织它们,但归根结底,我只是一个业余爱好者,所以我最终怀疑自己。 所以我一天没有完成任何工作(或做工作但一次又一次地重做(。 然后滚雪球到明天和后天

,依此类推。所以我想问有经验的程序员一个基本的指导方针,什么时候创建一个新模型和一个新的控制器?

如何对函数进行分组并将它们转换为单独的模型?

我是否为每个表创建一个新模型? 以及我只是在为该表创建的新模型中写入该表的所有数据库函数?

我是否根据数据库函数的功能对其进行分组? 例如:购买产品涉及许多单独的数据库功能。 所以把它们都保存在purchase_model里面?

所有这些问题的答案是:这取决于。就我个人而言,我认为这种灵活性使编码如此有趣。

作为一般经验法则,我尽量将所有类的代码保持在 500-700 行以下,函数的代码少于 20 行。如果我的班级变得比这个大,我通常会开始一个新的班级。话虽如此,控制器我可以变得更大,因为表单验证和响应逻辑可能会占用很多行。

那么我们举个例子:用户认证系统

我将有一个控制器,其中包含登录,注册,忘记密码和激活的功能;另一个用于用户管理的控制器,其中包含删除,禁止,取消禁止,激活和创建新用户的功能;然后是用户配置文件的另一个控制器,其中包含用于编辑其详细信息和个人资料图片的功能。

现在,由于用户管理和身份验证系统通常是可重用的,因此库比使用一个或多个模型更好;但是假设我们使用模型。我会为上述段落中概述的每个控制器提供一个模型,然后为一般"实用程序"功能(例如检查用户是否已登录.etc(提供一个模型。

一般

您必须决定:

  1. 对于控制器/模型来说,多少代码太多了?
  2. (与上面(我期望我的代码增长吗?如果是这样,那么我在确定(1(时必须考虑多少。
  3. 我应该如何将函数组合在一起?为此,请记住关注点的分离,例如,身份验证函数不应与数据库备份函数分组。
  4. 我是否在特定功能/模型中做得太多?如果是这样,我应该如何分离这些项目,以便我符合 DRY 原则(即使某些代码的功能本质上是不同的,也可能在其他地方可以重用(。
  5. (与上面(如果这段代码在其他地方真的那么有用,我应该把它变成一个库/助手吗?

(还有无数其他事情需要考虑(。

我认为重要的是要意识到(特别是作为初学者(你的编码风格以及你使用的"技术"和组织技能将不断发展,你的代码也将不断发展。虽然很高兴看到你想学习最佳实践 - 但这在很大程度上取决于你想通过你的应用程序实现什么以及你在编码生涯中的掌握程度。试着看看更大的图景,并在一两年内意识到当你再次查看你的代码时,你可能会说"我在这里到底在想什么?

旁注:你可以研究ORM的模型方法(Laravel和许多其他框架使用它(,但CI对几乎所有事情都有更"随便"的方法。如果被迫以某种方式工作让你感到更安全,你可能想学习其他"更高级"和"更新"的框架。

最新更新