我应该将代码分解为尽可能多的功能吗?

时间:2013-03-27 22:25:46

标签: performance oop class function design-patterns

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

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

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

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

离。他会写这个:

def login():
    findUser()
    checkUser()
    checkPass()
    userLoggedin()
然后他会创建这些函数并将其填入。

2 个答案:

答案 0 :(得分: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开发者帐户才能访问它。

答案 1 :(得分:1)

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

查找用户 - 数据存储库

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

检查密码,型号或业务层

登录 - 业务层

这里的目标是将代码分组为逻辑问题。