社区服务
银行
勋章中心
道具中心
统计排行
基本信息
到访IP统计
管理团队
管理操作
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
北京中亚学校
北京php培训
下拉
用户名
电子邮箱
记住
找回密码
认证码
点此显示验证码
登录
注册
我的快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
门户
论坛
帖子
日志
用户
版块
群组
帖子
搜索
热搜:
php培训
php
seo
jquery
html5
msyql
黑色旋风
蓝色天空
紫色梦幻
绿意盎然
水墨江南
书签
php求职招聘
php入门
CMS开源项目研究
英语学习
PHP中高级
lamp工具
关闭
选中
1
篇
全选
厦门中恒
精通javascri
酷6传媒董
jQuery 8款超
2012年最抢手、最有前途的职业是什么
专业酒店活动隔墙(赫來斯移动隔断)
专业酒店活动隔墙(赫來斯移动隔断)
专业酒店活动隔墙(赫來斯移动隔断)
专业酒店活动隔墙(赫來斯移动隔断)
[切换到宽版]
最新帖子
精华区
书签
PHPwhy社区网
>
技术产品
>
好的代码里只要一个re ..
发帖
回复
« 返回列表
新帖
1188
阅读
0
回复
好的代码里只要一个return语句
yulan
UID:8858
注册时间
2010-12-24
最后登录
2012-01-05
在线时间
3小时
发帖
55
搜Ta的帖子
精华
0
铜币
65
威望
55
访问TA的空间
加好友
用道具
级别:
总版主
发帖
55
铜币
65
威望
55
关注Ta
发消息
只看楼主
更多操作
倒序阅读
复制链接
使用道具
楼主
发表于: 2011-03-31
导读:原文根据作者Jasone Tee在theserverside.com上发表的一篇《
A return to Good Code
》
翻译而来。译文来自外刊IT评论《
只要一个返回语句
》。
内容如下:
别再这样写了:
public boolean foo() {
if (true) {
return true;
} else {
return false;
}
}
public boolean foo() {
if (true) {
return true;
} else {
return false;
}
}
每次当我深入某个
开源
项目,看到大概是某个专家写的、并被有经验的专业人士审查过的这样的代码,我都会惊讶不已,竟然没有人去阻止这个开发者在这个方法里胡乱的放置返回语句。
请告诉我,把代码写成下面的样子很难吗?
public boolean foo() {
boolean flag = true;
if (true) {
flag=true;
}
else {
flag=false;
}
return flag;
}
public boolean foo() {
boolean flag = true;
if (true) {
flag=true;
}
else {
flag=false;
}
return flag;
}
这是Java基本常识。实际上,这不仅是Java基本常识,这是小学水平的Java知识。如果你的方法返回一个值,你应该在方法的开始处把它声明做 一个变量。然后再去做一些赋予这个变量正确意义的操作。然后,在你的最后一行,把这个变量返回给调用程序。这样做不仅仅是为写出好的代码,这是一种有教养 的表现。
你是否曾试图修改过一些在方法里到处都是返回语句的程序代码?无从下手。事实上,去维护这样的代码,你第一要做的是重新组织它的结构,让它里面不再有一大 堆的返回语句。这样才能把事情做好。没有任何一个方法是不可以写成只在末尾处有一个的、单一的、易于找到的返回语句的形式的。
的确,烂程序员总有一万个理由来说明他们为什么编写出这样糟糕的程序代码。“我只是为了避免在返回时一堆的多余的条件判断语句。”那好,首先,我告诉你, 计算机中执行一些条件判断语句时是该死的快,你用短路一个方法来节省CPU的一两个指令操作不是显的太荒诞了吗。此外,如果这些所谓多余的条件判断语句最 终没有派上用场的话,这是否是一个有用的信号来说明你的“多余”的代码可能需要重写,也许可以把它们重构成另外一个方法,让它们显的不多余?
关键要说的是,没有任何理由可以为写糟糕的代码或当懒惰的程序员做托辞,特别是当写出好的代码并不是那么困难的情况下。不要在写出里面有成百上千个返回语句的方法了。Java里的方法只可以返回一个值,相应的,一个方法应该有且只有一个返回语句。
本帖最近评分记录:
共
条评分
隐藏
分享到:
关键词:
javascript
开源
程序员
回复
引用
举报
顶端
发帖
回复
« 返回列表
http://www.phpwhy.com
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
描述
快速回复
您目前还是游客,请
登录
或
注册
限 100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
进入高级模式
加粗
字体颜色
背景颜色
插入链接
图片
认证码:
提 交
回复后跳转到最后一页
上一个
下一个
隐藏
快速跳转
php业界动态
开源动态
技术产品
图书推荐
php工具软件
php学习视频
lamp工具
程序编辑器
WEB技术资料和教程下载及交流
问答求助区
html5,css
php入门
PHP中高级
网站SEO
PHP资源共享
jquery,javascript
数据库应用
操作系统(Windows、Linux)
英语学习
数据结构和算法
web2.0
php源码下载及项目开发交流
php源代码下载
项目开发
OSC技术交流
CMS开源项目研究
娱乐论坛
BT软件&教程发布
BT影视&音乐
娱乐乐园
其它和站务
php求职招聘
培训咨询和报名
学员交流区
站务管理
关闭