1

假设我有一个以伪代码登录用户的功能

def login():
    # find user in db
    # check if user exists
    # check password
    # login user

每个动作都应该是它自己的功能吗?还是应该所有代码都留在那儿?

编辑:我问这个是因为我通常只是把我所有的代码放在一个函数中,但是我的一个朋友把他需要做的所有事情放在多个函数中,然后在他写下的函数中填写空白

前任。他会这样写:

def login():
    findUser()
    checkUser()
    checkPass()
    userLoggedin()

然后他会创建这些函数并填充它们。

4

2 回答 2

6

我的建议是:

将其分解为有意义的、可重用的函数。当您的代码库增长时,这将是最有用的维护。

# find user in db         => re-usable
# check if user exists    => No. If you find it, it exists. So you don't need that.
                             If you don't find it, it does not. So both should be the same.
# check password          => re-usable
# login user              => re-usable

注意:有一个 WWDC 2012 会议视频,标题为:

基础知识+习惯:让您的软件项目经久不衰

你可以看。目标受众主要是 MAC 开发人员,但他们的许多建议也适用于其他面向对象的语言。您需要一个免费的 MAC 开发者帐户才能访问它。

于 2013-03-27T22:27:56.337 回答
1

我会说是的,从 Visual Studio 的角度来看,它们应该被分成单独的项目。

查找用户 - 数据存储库

检查用户是否存在 - 可能是模型或业务层

检查密码、模型或业务层

登录 - 业务层

这里的目的是将代码分组为逻辑关注点。

于 2013-03-27T22:29:08.083 回答