码云更新日志

日前,码云 Gitee 已经完成了和华为云 ContainerOps 服务的对接,利用华为云平台赋能码云 Gitee 的 DevOps 能力。

你可以通过仓库的 DevOps 菜单进入 ContainerOps 服务,如下图所示:

目前该服务还处于公测阶段,华为云为所有码云的开发者免费提供 50 次的流水线执行,更多的配额可通过华为云平台购买。

详细的使用手册请看 https://gitee.com/help/articles/4264

----------

华为云容器交付流水线(ContainerOps)以DevOps理念为基础,面向从源代码到生产上线全流程,提供代码编译、镜像构建、灰度发布、容器化部署等一系列服务,助力企业落地容器DevOps最佳实践。ContainerOps解决了容器化场景下从源码到镜像构建、镜像部署过程中的问题,进一步提升了研发、部署和运维效率。

图1 容器交付流水线 

ContainerOps 产品功能

提供容器化场景下的全流程CI/CD能力

ContainerOps提供容器化场景下的全流程CI/CD(持续集成/持续发布)能力,通过使用系统内置流水线或自定义流水线实现从源码到镜像构建、镜像部署的容器化流水线能力。

支持对接源码托管网站构建镜像

ContainerOps支持对接DevCloud、Gitee、GitHub、GitLab构建容器镜像,ContainerOps构建出的镜像存储在容器镜像服务中,可使用存储的镜像进行镜像部署。

提供灰度发布模式

ContainerOps提供灰度发布模式,您在正式升级现网版本之前,可以对业务集群的部分实例进行升级、验证,验证通过后再正式发布。

图2 灰度发布 

支持alpha-beta-gamma端到端敏捷交付

ContainerOps支持alpha-beta-gamma端到端敏捷交付,支持一套软件版本使用不同的配置,自动发布到alpha-beta-gamma环境中。每一条流水线独立管理一个(微)服务的生命周期,减少了跨(微)服务、跨DC/Region的操作耦合。

图3 alpha-beta-gamma端到端敏捷交付 

支持对接企业研发平台

ContainerOps提供全功能API,企业可自行对接内部研发平台,统一研发流程的管理入口,确保企业已有研发及流程操作习惯不变,复用已有资源,节约建设成本。

图4 对接企业研发平台 

更多关于华为云 ContainerOps 的介绍请看这里

为响应开源产业发展需求,本着立足本土、面向全球、开放透明的原则,北京大学作为国家重点研发计划“云计算和大数据开源社区生态系统”的子任务牵头单位,依托全国信标委云计算标准工作组和中国开源云联盟,联合国内开源生态圈产学研各界优势团队、开源社区以及拥有丰富知识产权相关经验的众多律师,共同研制形成重要成 果——木兰系列开源许可证的《木兰宽松许可证,第 1 版》,于 2019年8月5日在中国开源云联盟官网正式上线 (http://license.coscl.org.cn/MulanPSL/)。

木兰宽松许可证,具有以下特点:

  1. 许可证内容以中英文双语表述,中英文版本具有同等法律效力,方便更多的开源参与者阅读使用,简化了中国使用者进行法律解释时的复杂度。
  2. 许可证明确授予用户永久性、全球性、免费的、非独占的、不可撤销的版权和专利许可,并针对目前专利联盟存在的互诉漏洞问题,明确规定禁止“贡献者”或“关联实体”直接或间接地(通过代理、专利被许可人或受让人)进行专利诉讼或其他维权行动,否则终止专利授权。
  3. 许可证明确不提供对“贡献者”的商品名称、商标、服务标志等的商标许可,保护“贡献者”的切身利益。
  4. 许可证经技术专家和法律专家共同修订,在明确合同双方行为约束的前提下尽可能地精简条款、优化表述,降低产生法律纠纷的风险。

开源中国作为国家重点研发计划“云计算和大数据开源社区生态系统”的参与单位,旗下码云代码托管平台率先增加对木兰宽松许可证的支持。开发者可在创建仓库时候直接选择木兰许可证。已有开源项目需要将许可证更改为木兰许可证的,可通过 gitee.com 网站删除 LICENSE 文件,在选择新建 LICENSE 文件,选择木兰许可证即可,如下图所示:

新建仓库选择木兰许可证:

如果是已有开源项目要添加木兰许可证或者是修改为木兰许可证,可先删除 LICENSE 文件,然后新建 LICENSE 文件选择木兰许可证:

希望越来越多的开源项目选择木兰许可证。

码云 —— 全力支持国内开源生态的发展,目前已经 600 万仓库,200 万的开源仓库。欢迎“放码过来”!你可通过 https://gitee.com/explore 开源页面来访问编辑推荐的开源项目。

更多关于木兰许可证信息请阅读 http://license.coscl.org.cn/MulanPSL/

Civitas is an empire-building game written in Javascript with the help of the jQuery library.

在现如今的互联网应用中,手机号码已经完全取代电子邮件成为了用户注册账号的唯一标识。而随着移动网络的高速发展,各种前缀的手机号码不断推出,如何验证有效的手机号码就是程序员必须关注的功能点,你说重要吧? 好像没那么重要,你说不重要吧? 一旦程序出错,用户注册不了那就是大事!

所以你怎么看下面这段验证手机号码是否正确的代码呢?

public String validatePhone(String phoneStr) {
  if (phoneStr != null) {
	if (phoneStr.length() == 11) {
	  if (isNumeric(phoneStr)) {
		if (phoneStr.startsWith("130") || phoneStr.startsWith("131") || phoneStr.startsWith("132")
			|| phoneStr.startsWith("134") || phoneStr.startsWith("135") || phoneStr.startsWith("136")
			|| phoneStr.startsWith("137") || phoneStr.startsWith("138") || phoneStr.startsWith("139")
			|| phoneStr.startsWith("140") || phoneStr.startsWith("141") || phoneStr.startsWith("142")
			|| phoneStr.startsWith("144") || phoneStr.startsWith("145") || phoneStr.startsWith("146")
			|| phoneStr.startsWith("147") || phoneStr.startsWith("148") || phoneStr.startsWith("149")
			|| phoneStr.startsWith("150") || phoneStr.startsWith("151") || phoneStr.startsWith("152")
			|| phoneStr.startsWith("154") || phoneStr.startsWith("155") || phoneStr.startsWith("156")
			|| phoneStr.startsWith("157") || phoneStr.startsWith("158") || phoneStr.startsWith("159")
			|| phoneStr.startsWith("170") || phoneStr.startsWith("171") || phoneStr.startsWith("172")
			|| phoneStr.startsWith("174") || phoneStr.startsWith("175") || phoneStr.startsWith("176")
			|| phoneStr.startsWith("177") || phoneStr.startsWith("178") || phoneStr.startsWith("179")
			|| phoneStr.startsWith("180") || phoneStr.startsWith("181") || phoneStr.startsWith("182")
			|| phoneStr.startsWith("184") || phoneStr.startsWith("185") || phoneStr.startsWith("186")
			|| phoneStr.startsWith("187") || phoneStr.startsWith("188") || phoneStr.startsWith("189")) {
			return "手机号正确";
		  } else {
			return "手机号规则错误";
		  }
		} else {
		  return "手机号必须为数字";
		}
	} else {
		return "手机号长度必须为11位";
	}
  } else {
	return "手机号不能为空";
  }
}

逻辑好像没有问题,但是真的好啰嗦啊!!!

那么你有更好的方法吗?

请移步下面链接发表评论,领取奖品:

https://gitee.com/oschina/bullshit-codes/blob/master/java/PhoneRuleValidate.java

码云 6 周年,我们正在征集各种坑爹代码,很多奖品等你来拿

详细的参与方法请看  https://gitee.com/oschina/bullshit-codes

------ 分割线 ------

其他坑爹代码吐槽: