百科问答小站 logo
百科问答小站 font logo



优化代码中大量的if/else,你有什么方案? 第1页

  

user avatar   serenayu 网友的相关建议: 
      

不频繁改变的就别动了,封装藏起来做祖传代码,这种复杂业务逻辑贸然重构最容易踩雷。

要频繁改变的大量条件应该写成配置文件,json, xml, yaml乃至自定义格式的文本都可以,并配一个解析引擎,这样很容易就能写个简单的前端交给业务部门或IT部门去调整逻辑了。

曾经我工作的公司有个程序给客服内部使用,根据若干个条件选择产品,几千行业务代码,加上数据库里几百条零零碎碎的文本,早已不可维护多年了。然而去年政府更改了这方面的法规,公司法务表示不能不改了,我就花一周把它彻底重写,改成文本配置(存在Redis)+ 解析引擎(微服务) + 内网前端 (增删改查) + 外网前端(用户查询和订购界面),现在这个系统不需要程序员直接操作,只要业务人员通过内网页面编辑表单就能调整。业务人员很开心,一口气加了五六倍的逻辑,说早就憋着了。

为什么我敢重写?因为法规已经变了,原来的逻辑反正不能用了,那些代码本来就得扔了。


user avatar   itji-zhu-kong 网友的相关建议: 
      

克劳备忘录也好,凯南电报也好,有两大共同点。首先,都是以现实主义的眼光去分析双方的关系。然后,给出的建议都是阳谋,并不是什么不可告人的阴谋,执行起来需要的不是鸡鸣狗盗的小聪明,而是惊人的意志力。

而美国现在战略界现实主义被边缘化,我推测,布热津斯基,基辛格那帮人应该写过不少。不过没所谓,美国能执行大战略的时代过去了。现在这一代精英上半年能管下半年就已经很了不起了。一个需要两代人以上持之以恒去完成的大战略,搞出来他们也执行不了。

冷战时期,从杜鲁门艾森豪威尔到肯尼迪尼克松,最后到李根老布什,个人性格和政治偏好差距不要太大,但是都忠实地完成了他们历史任务,沿着围堵政策做下去。这种战略定力和延续性,世间少见。在中国领导集团上能看见一些相似的东西,但是我们离得距离太近,反而看不清。但在美国精英层身上完全看不到这一点。

个人愚见。


user avatar   ling-jian-94 网友的相关建议: 
      

克劳备忘录也好,凯南电报也好,有两大共同点。首先,都是以现实主义的眼光去分析双方的关系。然后,给出的建议都是阳谋,并不是什么不可告人的阴谋,执行起来需要的不是鸡鸣狗盗的小聪明,而是惊人的意志力。

而美国现在战略界现实主义被边缘化,我推测,布热津斯基,基辛格那帮人应该写过不少。不过没所谓,美国能执行大战略的时代过去了。现在这一代精英上半年能管下半年就已经很了不起了。一个需要两代人以上持之以恒去完成的大战略,搞出来他们也执行不了。

冷战时期,从杜鲁门艾森豪威尔到肯尼迪尼克松,最后到李根老布什,个人性格和政治偏好差距不要太大,但是都忠实地完成了他们历史任务,沿着围堵政策做下去。这种战略定力和延续性,世间少见。在中国领导集团上能看见一些相似的东西,但是我们离得距离太近,反而看不清。但在美国精英层身上完全看不到这一点。

个人愚见。


user avatar   xnan-15 网友的相关建议: 
      

基于linux可以做到自主,但是不够可控。国产化以及自主可控本身都不是最终目标,产业安全和国家安全更加重要,Linux的问题就在于不够安全。

linux的问题在于代码量太大,团队太杂。千万级别的代码,而且是宏内核架构,大量来自各种团队的设备驱动和内核模块,任何一个点出问题都可能被获得系统控制权。除部分资源受限的嵌入式设备外,使用linux的厂商大概也没多少动力进行裁剪。目前的针对涉密网办公用的国产OS通过各种审计,监控,异形物理接口等手段进行安全增强,但是如果有预埋的内核漏洞想一想仍然有机会激活。而更多的应用场景比如工控机,上位机不太可能上厚重的保护手段,成本和意识都跟不上。

bsd是更加安全稳定的方案,但是bsd在美国控制之下,长久看来也不够可控。

作为自主可控的基石,需要一个纯粹的微内核架构。现在问题是目前所有的微内核OS都必须解决性能问题,否则无法做到足够的通用性,就像QNX,无法解决大部分问题。很多厂商包括IBM都曾经在微内核上下注,还没有得到十足的成功。

目前潜在的比较令人期待的微内核通用系统有两个,fuchsia和鸿蒙。这两个都有大厂背景,表现出了商用的潜力,fuchsia已经展现了一些平台特性,鸿蒙作为TEE架构的TEE部分也已经初步商用。如果能够成功,相当于在linux、bsd之外又多了一个或两个posix兼容内核的选择,可以作为基础制作新的更加安全可控的发行版(忘记hurd吧)


user avatar   ikkiz-70 网友的相关建议: 
      

基于linux可以做到自主,但是不够可控。国产化以及自主可控本身都不是最终目标,产业安全和国家安全更加重要,Linux的问题就在于不够安全。

linux的问题在于代码量太大,团队太杂。千万级别的代码,而且是宏内核架构,大量来自各种团队的设备驱动和内核模块,任何一个点出问题都可能被获得系统控制权。除部分资源受限的嵌入式设备外,使用linux的厂商大概也没多少动力进行裁剪。目前的针对涉密网办公用的国产OS通过各种审计,监控,异形物理接口等手段进行安全增强,但是如果有预埋的内核漏洞想一想仍然有机会激活。而更多的应用场景比如工控机,上位机不太可能上厚重的保护手段,成本和意识都跟不上。

bsd是更加安全稳定的方案,但是bsd在美国控制之下,长久看来也不够可控。

作为自主可控的基石,需要一个纯粹的微内核架构。现在问题是目前所有的微内核OS都必须解决性能问题,否则无法做到足够的通用性,就像QNX,无法解决大部分问题。很多厂商包括IBM都曾经在微内核上下注,还没有得到十足的成功。

目前潜在的比较令人期待的微内核通用系统有两个,fuchsia和鸿蒙。这两个都有大厂背景,表现出了商用的潜力,fuchsia已经展现了一些平台特性,鸿蒙作为TEE架构的TEE部分也已经初步商用。如果能够成功,相当于在linux、bsd之外又多了一个或两个posix兼容内核的选择,可以作为基础制作新的更加安全可控的发行版(忘记hurd吧)




  

相关话题

  react让我怀疑自己没有当程序员的天分怎么破? 
  如何看待平安财险推出996奋斗无忧保险? 
  既然一个 IP 地址可以被多个域名绑定,那么服务端是如何区分各个域名的? 
  如何看待网易云音乐正加紧洽谈非独家版权合作?该做法对网易云音乐有什么影响? 
  消息称华为有望推出国产自研浏览器内核,将弥补国内技术空白,对此你有何期待? 
  美国律所计划向滴滴发起集体诉讼,理由是误导投资者,这一理由成立吗?滴滴需要赔偿投资者损失吗? 
  如何成为 ios开发高手? 对ios程序员有哪些要求? 
  为什么有些(可能只是一些)程序员工作经验越长、丰富,越谨慎,越不愿意用新技术新特性? 
  你的编程能力从什么时候开始突飞猛进? 
  c语言编辑器哪个好用? 

前一个讨论
为何太平天国称敌方为清妖?
下一个讨论
为什么中国男人普遍都不注重皮肤的护理和保养?





© 2024-05-13 - tinynew.org. All Rights Reserved.
© 2024-05-13 - tinynew.org. 保留所有权利