gpt4 book ai didi

php - Eloquent ORM Active Record - 这是正确的方法吗?

转载 作者:可可西里 更新时间:2023-11-01 01:12:44 25 4
gpt4 key购买 nike

我认为我终于进入了代码青春期,因为我开始反叛并质疑我所学的一切。我希望这里有人能指出我正确的方向。目前,应该是简单而简短的任务,最终会花费数小时,因为我坐下来盯着几行代码,并质疑这是否确实是正确的方法...

这是一个例子。我们有一个系统,可以让 User 创建一个 Post 并在该帖子中提及 某人。我们有一个获取请求的 Controller ,然后将其发送到 PostService,后者具有如下方法:createPostByUser(int $id, string $title, string $content) 并最终发送到 $postingUser->post($title, $string) 保存帖子的位置。

在 createPostByUser 方法中,我们将检查是否有任何 @mentions,然后我们将其传递给 MentionService。所以在这种情况下我们会访问:用户名)存在,或者如果它存在但被软删除,甚至可能恢复提及。如果它不存在并且无法恢复并且两个用户都有效,那么我们将继续调用 $mentioningUser->mention($mentionedUser) 将保存提及。

虽然所有这些都有效,但我开始发现它存在一些问题。什么会阻止新开发人员跳过服务层并直接进入用户对象并使用这些方法?我的意思是,在 MentionService 中,我们在保存提及之前检查是否一切正常,例如检查所需的两个用户是否有效,是否应恢复提及。等等。什么会阻止不知情的新开发人员直接进入用户对象并不假思索地创建一个新的提及项?

希望有人能指出我正确的方向。我们走在正确的轨道上吗?

我是不是想多了?

最佳答案

我认为这个问题无法通过技术方式解决。任何设计模式和任何架构风格都可能以某种方式被误解和故意规避。这个问题可能可以在组织层(在你的团队中)得到解决。例如,一种可能性是代码审查培训文档。最重要的是使用分支和拉取请求进行代码审查。随着时间的推移,您可以为新开发人员实现学习效果并防止新的失败。

关于php - Eloquent ORM Active Record - 这是正确的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48770333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com