当前位置: 首页 > news >正文

培训网站建设方案模板苏州新闻今天最新消息新闻事件

培训网站建设方案模板,苏州新闻今天最新消息新闻事件,wordpress响应式主题设计,上海建站网络科技有限公司在写代码业务逻辑的时候,有时候需求稍微变化一下都让代码变的很麻烦,如果只在现有代码基础上硬改,可能会让可读性降低,本文通过一个例子来演示字符串拼接的变化。 一开始的业务逻辑比较简单,是固定条件加一个需要判断…

在写代码业务逻辑的时候,有时候需求稍微变化一下都让代码变的很麻烦,如果只在现有代码基础上硬改,可能会让可读性降低,本文通过一个例子来演示字符串拼接的变化。

一开始的业务逻辑比较简单,是固定条件加一个需要判断再追加的条件:

List<String> currentUserDeptIds = getCurrentUserDeptIds();
return "forcetender = 1 " +(currentUserDeptIds.isEmpty() ? "" : " and cdeptid in (" + String.join(",", currentUserDeptIds) + ")");

后来连 forcetender = 1都要变成可选条件时,这里简单的字符串拼接就不可行了,例如改成下面:

String forceTenderPublish = Parameter.get("FORCE_TENDER_PUBLISH");
return ("1".equals(forceTenderPublish) ? "" : "forcetender = 1 ") +(currentUserDeptIds.isEmpty() ? "" : " and cdeptid in (" + String.join(",", currentUserDeptIds) + ")");

上面这种写法中如果 "1".equals(forceTenderPublish) 不满足,前面就是 "",此时如果后面条件满足,拼接时会额外带上 and 导致语法错误,如果不嫌麻烦把 and 改成条件判断就变成了:

String forceTenderPublish = Parameter.get("FORCE_TENDER_PUBLISH");
return ("1".equals(forceTenderPublish) ? "" : "forcetender = 1 ") +(currentUserDeptIds.isEmpty() ? "" : ("1".equals(forceTenderPublish) ? "" : "and ") + " cdeptid in (" + String.join(",", currentUserDeptIds) + ")");

这样倒是能实现功能了,但是不易于阅读,看着就很乱。

我们来看看GitHub Copilot会如何解决上面的变化。

Ask:

getDefaultCondition方法(基于上面第一次改动)最后的return有问题,当前面一个为空时,后面不需要有 and 前缀,请修改正确。

GitHub Copilot:

您的观察是正确的。在当前的实现中,如果forceTenderPublish不等于"1",那么返回的字符串将以" and “开始,这可能会导致SQL查询错误。我们可以通过将所有条件添加到一个列表中,然后使用String.join方法来解决这个问题。这样,只有当列表中有多个元素时,” and "才会被插入。

以下是修改后的getDefaultCondition方法:

String forceTenderPublish = Parameter.get("FORCE_TENDER_PUBLISH");List<String> conditions = new ArrayList<>();
if ("1".equals(forceTenderPublish)) {conditions.add("forcetender = 1");
}List<String> currentUserDeptIds = getCurrentUserDeptIds();
if (!currentUserDeptIds.isEmpty()) {conditions.add("cdeptid in (" + String.join(",", currentUserDeptIds) + ")");
}return String.join(" and ", conditions);

在这个修改后的版本中,我们首先创建一个空的conditions列表。然后,我们检查forceTenderPublish和currentUserDeptIds,如果它们满足条件,我们就将相应的条件添加到列表中。最后,我们使用String.join方法将所有条件连接起来,每个条件之间用" and “分隔。这样,只有当有多个条件时,” and "才会出现。

按照上面的方案,不仅方便我们增加更多的类似条件,而且可读性也大大提高了,遇到类似变化的时候,不能只实现功能,还要考虑易读性和后续可能的变化。

http://www.yayakq.cn/news/131855/

相关文章:

  • 嘉兴网站搜索排名产品界面设计
  • 竹溪县网站集约化建设网站怎么做有创意
  • 漯河 做网站wordpress 做 cms
  • 做二维码签到的网站厦门在线制作网站
  • 做家务的男人免费观看网站微信开发小程序需要多少钱
  • 网站内容要求网站建设和优化的好处
  • 中山网站建设品牌免费网站建站软件
  • 网站建设 站内搜索合肥网络公司十大排名
  • 做三轨网站犯法吗医院网站素材
  • 站内推广有哪些方式系统软件开发培训机构
  • 宿州网站网站建设电视直播网站怎么做
  • 外国网站分享代码网站建设验收合格确认书
  • 广州萝岗网站建设宁波seo网站建设费用
  • 做心悦腾龙光环的网站wordpress访问人数
  • 建设银行网站背景网站优化加盟
  • 岚山网站建设报价太原网站搜索引擎优化
  • 给装修公司做网站项目开发平台有哪些
  • 网站域名费会计分录怎么做王也的八奇技是什么
  • 简约门户网站源码建站免费平台
  • 上海网站推广 优帮云买拆车件上什么网站
  • 品牌推广网站设计网站开发与网页设计大作业
  • 网站做显卡评测软件简洁html网站模版
  • 商业网站策划方案网站做很多关键词
  • 海西高端网站建设公司宝塔wordpress更换域名
  • wordpress 网站 图标玩具网站建设规划书
  • 如何避免网站模板侵权全国前十名校程序开发公司
  • 贵阳双龙区建设局网站现在建网站做推广能赚钱吗
  • 淮安做网站就找卓越凯欣gif8.net基于wordpress
  • 学生处网站建设工作总结百度地图手机网站开发
  • 建设网站询价对比表模板中国三大生产建设兵团