【codeview】冲锋也需挖对壕 编程多想一点

很久没有更新了,真是服了自己的懒惰,经过几周的加班,反而变懒了!

这是发生在前天一张战役的收获!

战况吃紧,指导员命我火速对数据规则进行前端JS处理,看着满是>,<,=,!的规则文档我是两眼一抓黑!

无论是java还是js,只要是理论碰上了实际,规则就要从简单的if判断转战到战争机器:规则引擎;

别误会,咱不会设计规则引擎,在指导员的带领下也只是把规则引擎写了个盖而已,时间紧任务重,指导员允许在规则条目不多的情况下使用最原始的方法:if判断;

当伯乐遇上傻马,田忌就再也不赌马了;

我真的用了if if  if if if …………当夕阳西下,高喊:指导员!规则加好了!

指导员盯着屏幕扫了两眼,眼角有泪划过……

尼玛,那是30多个if……我是有多实惠……

经验1:

有一个人的注册信息,分别是isGlass,isGamer,isGay

如果有三个东东,分别是google,westwood和battlefield,每个东东都有自己的一套规则,选择这个东东就会校验相关的值是否符合规则;

google:isGlass必须是true

westwood:isGamer必须是true

battlefield:必须是true 调侃一下男友3(橙子ID:NOKIA-LAN)

if(registerInfo.equals("google")){
	if(!isGlass){
		alert("正常视力想进谷歌?没门!");
	}
}
if(registerInfo.equals("westwood")){
	if(!isGamer){
		alert("没玩过红警?滚粗!");
	}
}
if(registerInfo.equals("battlefield")){
	if(!isGay){
		alert("晚上没时间的男子,哥没兴趣……");
	}
}

想象一下,这只是很简单的模拟场景,我实际做的是11个外层业务判断,每个里面还包括3-4业务逻辑规则;

指导员意味深长的说:googel westwood battlefield 彼此在业务上没有关联,为什么要分三个if来判断呢,虽然你只能获取到一个registerInfo,可是你的程序还是走了3个if判断,只不过有2个没进去而已,这是不符合逻辑的;

好吧,指导员……咱痛下心扉同if一决死战!

最后利用js把代码改了一下

var registerInfo = {};

registerInfo.company = {
	google:{
		name:"谷歌",
		invoke:function(){
			return checkGoogle()?true:false;
		}
	},
	westwood:{
		name:"中文叫啥?",
		invoke:function(){
			return checkWestwood()?true:false;
		}
	},
	battlefield{
		name:"男友3",
		invoke:function(){
			return checkBattlefield()?true:false;
		}
	}
}

function checkGoogle(){
	if(!isGlass){
		alert("正常视力想进谷歌?没门!");
	}
}
function checkWestwood(){
	if(!isGamer){
		alert("没玩过红警?滚粗!");
	}
}
function checkBattlefield(){
	if(!isGay){
		alert("晚上没时间的男子,哥没兴趣……");
	}
}

在需要调用的页面:

var checkCompanyMethod = registerInfo.company[companyName];
if(!checkCompanyMethod.invoke.call())return true;

代码看起来虽然是变大了,但维护起来方便了很多,指导员欣慰的笑了……


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值