百科问答小站 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吧)




  

相关话题

  如何评价半藏森林 COS 春丽疑似接到腾讯广告,后又澄清系误会一事? 
  10 万多老年人每天上网超 10 小时,意味着什么? 
  如何看待游戏工委表示「游戏不是洪水猛兽,能够帮助人们树立正确的价值观」? 
  北大姚洋称「企业捐款那么多不如取消 996,给骑手缴社保」,企业捐款和提高员工待遇应该如何做选择? 
  程序员都有哪些强迫行为? 
  黑客们都干过哪些屌炸天的事情? 
  知乎用户 @萧井陌 写代码什么水平? 
  外国人编程出错也会出现「烫烫烫烫」吗?为什么会出现这个? 
  消息队列(mq)是什么? 
  如何看待互联网行业收入远高于其他行业现象? 

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





© 2024-06-11 - tinynew.org. All Rights Reserved.
© 2024-06-11 - tinynew.org. 保留所有权利