【问题标题】:The logic of programming编程的逻辑
【发布时间】:2015-05-11 14:29:40
【问题描述】:

我有一个关于编程逻辑的问题,看看下面的例子:

public function logout() {
     if (Auth::user()) {
         Auth::logout();
     }
}

在上面的例子中,我们首先检查用户是否登录。在这个函数中,我们可以说只有登录的用户才能注销,但如果你只有在登录的情况下才能访问“注销”功能,那么它是同样的事情。哪个更好,为什么?我遇到过很多这样的事情,但我不知道该选择哪一个。

【问题讨论】:

  • 如果用户未登录,尝试注销将 (a) 可能会产生某种错误,并且 (b) 毫无意义。通过更多的纠错,(a) 可以得到保护。但是这里程序员认为(b)不值得,因此决定如果用户没有登录,什么都不做。
  • 这与逻辑编程无关。
  • 标题极其模糊,代码不是C++。
  • 我没有把 c++ 放在标签列表中,哈哈,我不知道是谁做的。编辑:prntscr.com/74am65

标签: c++ login logic


【解决方案1】:

虽然您可能应该只有在您已经登录后才能访问此功能,但这只是您代码中的好习惯。这里封装的方法使确保它在一个有意义的上下文中被调用。

这真的很重要的原因可以通过许多有缺陷的 Web 应用程序(和其他)示例来说明,其中代码假定用户只能选择他们看到的选项。但是,无论该函数是否显示在 HTML 界面中,用户都可以真正调用 Web 应用程序中任何公开公开的函数。

因此,开发人员必须确保调用函数的上下文是有意义的。在您介绍的情况下,类创建者有一个特定的用法,您和我都可以理解,只有在您登录时才能访问它,但开发人员不能对其他用户强制执行此操作,除非他包含这样的逻辑(或者,也许,在他公开的方法中检查是否允许访问而不是用户是否登录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多