由于搞二次开发骂过以前代码的作者,所以为了避免被人骂,尝试写注释,发现注释多了代码更乱了。今天对一个函数code review,总结了一个以前看到过的经验:尽量不要再ifelse中嵌套ifelse。
下面贴图,贴代码对比一下。
code review前:
/**
* 获取用户信息
* @return link为邀请链接,
* score为积分,
* nick为昵称,
* num为作品数,以此确定分页数量,
* opus1为当前页第一副作品图片,
* opus2当前页第二幅作品图片地址,
* opus3当前页第三幅作品
*/
public function uinfoAction(){
$random = $this->request->getGetParameter('random');//随机数
$pwd = $this->request->getGetParameter('pwd');//私钥
//$page = $this->request->getGetParameter('page',1);//当前页面
//验证flash请求是否正确
if($pwd==md5("tenwowactqqcom@tenwow123".$random)){
//验证qq是否登录
if (TMAuthUtils::isLogin()){
$qq = TMAuthUtils::getUin();
$link = TMLibHtmlHelper::urlJump(TMConfig::BASE_URL,$qq,1,TMConfig::TAMS_ID);//邀请好友链接
$service = new TMService();
$info = $service->selectOne(array('FQQ'=>$qq),'FScoreCount,FNick','Tbl_User');//获取昵称
//flash方要求全部获取数据
/*$number = ($page-1)*3;
$count = count($service->select(array("FQQ"=>$qq),'*','Tbl_File'));
$list = $service->select(array("FQQ"=>$qq),"FUrl",'Tbl_File',array($number,3),array('orderby'=>'FFileId DESC'));*/
//判断$list是否为空
$count = count($service->select(array("FQQ"=>$qq),'*','Tbl_File'));
$list = $service->select(array("FQQ"=>$qq),"FUrl",'Tbl_File');
$pic = array();//图片地址数组
foreach ($list as $li){
$li[0] = TMConfig::BASE_URL."data/".$li[0];
$pic[]=$li[0];
}
return json_encode(array('code'=>'0',
'message'=>'成功拉取数据',
'qq'=>"$qq",
'link'=>$link,
'score'=>$info['FScoreCount'],
'nick'=>$info['FNick'],
'wblog'=>"1000",
'num'=>"$count",
'pic'=>$pic,
));
}else{
return json_encode(array("code"=>'1','message'=>'对不起,您还没有登录!'));
}//endif 验证qq是否登录
}else{
return json_encode(array("code"=>'2','message'=>'请从合法链接参与游戏!'));
}//endif 验证flash请求是否正确
}
code review之后:
/**
* 获取用户信息
* @return code string 返回信息代码
* message string 返回信息
* qq string 用户QQ
* link string 邀请好友参加活动的链接
* score string 活动当前的积分数
* nick string 用户昵称
* wblog string 微博关注数
* num string 当前作品总数
* pic array 作品地址
*/
public function uinfoAction(){
$random = $this->request->getGetParameter('random');//随机数
$pwd = $this->request->getGetParameter("pwd");//私钥
//判断是否从合法链接参与游戏
if($pwd!=md5("tenwowactqqcom@tenwow123".$random)){
return json_encode(array("code"=>"2","message"=>"请从合法链接参与游戏!"));
}
//判断是否登录
if(!TMAuthUtils::isLogin()){
return json_encode(array("code"=>"1","message"=>"对不起,您还没有登录!"));
}
$qq = TMAuthUtils::getUin();//获取登录QQ
$link = TMLibHtmlHelper::urlJump(TMConfig::BASE_URL,$qq,1,TMConfig::TAMS_ID);//获取邀请链接
$service = new TMService();//创建操作数据的对象
$info = $service->selectOne(array("FQQ"=>$qq),"FScoreCount,FNick","Tbl_User");//获取登录QQ昵称,活动积分
$picCount = count($service->select(array("FQQ"=>$qq),"FUrl","Tbl_File"));//获取当前作品数
$pic = array();//初始化图片地址数组
$list = $service->select(array("FQQ"=>$qq),"FUrl","Tbl_File");//获取图片地址
//由于select查询出来的是二维数组,要将其取出放到$pic中
foreach($list as $li){
$pic[]=TMConfig::BASE_URL."data/".$li[0];
}
//-----------还有获取微博关注数未开发wblog
return json_encode(array("code"=>"0",
"message"=>"成功拉取数据",
"qq"=>"{$qq}",
"link"=>"{$link}",
"score"=>"{$info['FScoreCount']}",
"nick"=>"{$info['FNick']}",
"wblog"=>"100000",
"num"=>"{$picCount}",
"pic"=>"{$pic}"));
}
效果很明显。
分享到:
相关推荐
C语言中if-else语句的嵌套分析 C语言中if-else语句的嵌套分析是编程语言中一个重要的基础知识点。本文将对if-else语句的嵌套关系进行详细的分析和解释,包括if-else语句的基本概念、if-else语句的嵌套关系、if-else...
04-v-if和v-else-if和v-else.vue
c语言if elseif语句嵌套 复制网址到浏览器即可
VS2015 if else for 代码折叠,VS2015 if else for 代码折叠,VS2015 if else for 代码折叠,VS2015 if else for 代码折叠,VS2015 if else for 代码折叠
在`If-Else-Block-Refactoring`中,我们可以学习到几种重构嵌套`if-else`的方法: 1. **提炼函数(Extract Method)**:当`if`语句或`else`块包含大量代码时,可以考虑将这部分代码提取为独立的函数,以提高代码的...
fj-ifElse 函数式 ifElse 安装 npm install fj-ifelse --save 用法 var ifElse = require ( 'fj-ifelse' ) ; ifElse ( ( x ) => x === true , ( x ) => t . ok ( x ) , ( ) => t . fail ( ) ) ( true ) ; var ...
学习笔记
在JavaScript编程语言中,`if...else`语句是用于条件控制的基本结构,它允许我们根据不同的条件执行不同的代码块。当我们需要在一个条件判断的基础上再进行更细致的判断时,可以使用嵌套的`if...else`语句。标题中的...
在某些情况下,我们可能需要在`<#if>`语句内部再嵌套`<#if>`,这就是所谓的`if`嵌套。 首先,让我们理解`<#if>`的基本语法: ```html <#if expression> <!-- 当expression为真时执行的代码 --> </#if> ``` 这里...
VS2012 C# 将代码中的 if else for折叠插件
在编程语言中,`if-elseif-else`结构是一种用于条件判断的重要工具,它允许程序根据不同的条件执行不同的代码块。这个结构使得我们能够灵活地处理多种可能的情况,是编写逻辑控制流的基础。在这个"if-elseif-else...
Java 中的布尔表达式和 if-else 语句是非常重要的编程概念,本节将详细介绍布尔数据类型、if-else 语句、关系运算符、逻辑运算符、De Morgan’s Laws、短路运算符号、嵌套 if-else 语句、if-else-if 序列、switch ...
在这个“c代码-4-3奇偶判断(if-else双分支)”的例子中,我们将深入探讨如何利用if-else语句来实现这个功能。 首先,我们需要理解if-else语句的基本结构。在C语言中,if-else语句用于根据条件执行不同的代码块。它...
在编程语言的编译原理中,`if-else`条件语句是构建程序逻辑的基础,而三地址码(Three Address Code,TAC)是一种中间表示形式,用于简化编译器的中间阶段处理。本篇文章将深入探讨如何使用递归下降法来设计一个翻译...
在Python编程语言中,`if-else`语句用于条件判断,它允许我们在满足特定条件时执行一段代码,否则执行另一段代码。然而,为了使代码看起来更简洁、优雅,有时我们会选择将`if-else`语句写在一行内。尽管这并不总是...
在实际应用中,IF-else语句可以嵌套,形成更复杂的逻辑结构,例如: ```python if 条件1: # 如果条件1为真 if 条件2: # 执行这里 else: # 条件2为假时执行这里 else: # 条件1为假时执行这里 ``` 描述中的...
在Android开发中,面对大量的对象创建,我们常常会遇到代码中充斥着`if-else`或`switch-case`结构的情况,这不仅使得代码难以维护,还降低了可读性。为了解决这一问题,设计模式应运而生,其中工厂模式是一种常用的...
本文将详细讲解SSH框架中涉及到的五个关键标签:`set`、`push`、`if/elseif/else`、`iterator`以及`sort`,并结合它们在实际应用中的用法进行深入探讨。 ### `set`标签 `set`标签在Struts2框架中用于在Value Stack...
总结起来,Java中的if-else条件语句和循环嵌套是程序设计中的基础元素,而LR分析方法则是编译器实现这些元素的关键工具。通过编译原理的学习,开发者可以更深入地理解代码的运行机制,提升编程技能,同时也为更高级...