程序编码中默认值的使用

本文深入探讨了Hadoop配置文件中的默认值运用,包括网盘站点配置的默认值处理、请求参数跳转逻辑及枚举类的转换策略,并强调了避免使用不必要的默认值的重要性。

Hadoop的配置文件有很多选项,一个个看完都需要一段时间。但是,hadoop-site.xml的配置好多都可以忽略,Hadoop还是可以运行的,这里就是默认配置的运用(注意:除非一些必须的,配置用户都可以不用填写)。其实,看看JDK中Properties类提供getProperty()的方法,有重载方法:

public String getProperty(String key);
public String getProperty(String key, String defaultValue);

后一个方法,就可以自己提供一个默认值。

下面说说,在开发 印象网盘搜索 中,默认值的典型用法:

1、配置文件的处理 - 网盘站点的默认值

从网盘搜索的结果中可以看到,系统提供好几个不同的网盘搜索,如:百度网盘、360云盘、金山快盘、腾讯微云、华为网盘、115网盘等,在代码中是这样处理:
public static Site[] DISK_SITES = { new Site("pan.baidu.com", "百度网盘") };

...
DISK_SITES = getConfig("SITE_DISK", DISK_SITES);
getConfig方法中,后一个就是当系统没有配置时,就返回自身的硬编码“百度网盘”。

2、请求参数的处理


当用户访问  印象网盘搜索 时,默认是跳转到“网盘”这个选项卡,搞前端一看就知道,有几个主要的URI,"/page","/disk","/express"等。如果用户不是以这样www.impress.pw/disk这个链接访问,其他访问时,岂不是要返回 404,后台在处理时,就做一个跳转:
if (dispatchHome(req)) {
	req.getRequestDispatcher(HOME_URI).forward(req, response);
        return;
}

...

boolean dispatchHome(HttpServletRequest req) {
	if (ROOT_URI.equals(req.getRequestURI()))
		return true;
	/** `express` has its own home-page. */
	if ((ROOT_URI + Tab.EXPRESS.getDesc()).equals(req.getRequestURI()))
		return false;
		
	for (Tab t : Tab.values())
		if ((ROOT_URI + t.getDesc()).equals(req.getRequestURI()))
			return true;

	return false;
}

就相当于:访问www.impress.pw/ www.impress.pw/disk(/page..) 就跳转到首页。

3、转换枚举类时(慎用)

我这里比较合适,一般情况下不太合适(比如,用户传入一个错误的参数你还返回一个正确的枚举类型有点说不过去)。一般的做法是:
public static Tab tab(String desc) {
	for (Tab t : Tab.values()) {
		if (t.desc.equals(desc))
			return t;
	}
	throw new IllegalArgumentException("Has not a Tab named `" + desc + "`");
}

但是,我这里是“约定优先”,如果找不到,就返回Tab.DISK:
public static Tab tab(String desc) {
	for (Tab t : Tab.values()) {
		if (t.desc.equals(desc))
			return t;
	}
	return DISK;
}

4、不适用的场景:

  1. 必须的配置(如IP地址等);
  2. 描述不清,如用户传入错误的参数,用户得到的答案还是正确的,典型是:网络下载文件。


考虑柔性负荷的综合能源系统低碳经济优化调度【考虑碳交易机制】(Matlab代码实现)内容概要:本文围绕“考虑柔性负荷的综合能源系统低碳经济优化调度”展开,重点研究在碳交易机制下如何实现综合能源系统的低碳化与经济性协同优化。通过构建包含风电、光伏、储能、柔性负荷等多种能源形式的系统模型,结合碳交易成本与能源调度成本,提出优化调度策略,以降低碳排放并提升系统运行经济性。文中采用Matlab进行仿真代码实现,验证了所提模型在平衡能源供需、平抑可再生能源波动、引导柔性负荷参与调度等方面的有效性,为低碳能源系统的设计与运行提供了技术支撑。; 适合人群:具备一定电力系统、能源系统背景,熟悉Matlab编程,从事能源优化、低碳调度、综合能源系统等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究碳交易机制对综合能源系统调度决策的影响;②实现柔性负荷在削峰填谷、促进可再生能源消纳中的作用;③掌握基于Matlab的能源系统建模与优化求解方法;④为实际综合能源项目提供低碳经济调度方案参考。; 阅读建议:建议读者结合Matlab代码深入理解模型构建与求解过程,重点关注目标函数设计、约束条件设置及碳交易成本的量化方式,可进一步扩展至多能互补、需求响应等场景进行二次开发与仿真验证。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值