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

网站建设公司创业计划书服务器代理

网站建设公司创业计划书,服务器代理,中国人去菲律宾做网站赌钱会抓吗,游戏代理0加盟费文章目录什么是过度设计#xff1f;过度设计的坏处如何避免过度设计充分理解问题本身保持简单小步快跑征求其他人的意见总结新手程序员在做设计时#xff0c;因为缺乏经验#xff0c;很容易写出欠设计的代码#xff0c;但有一些经验的程序员#xff0c;尤其是在刚学习过设… 文章目录什么是过度设计过度设计的坏处如何避免过度设计充分理解问题本身保持简单小步快跑征求其他人的意见总结新手程序员在做设计时因为缺乏经验很容易写出欠设计的代码但有一些经验的程序员尤其是在刚学习过设计模式之后很容易写出过度设计的代码而这种代码比新手程序员的代码更可怕过度设计的代码不仅写出来时的成本很高后续维护的成本也高。因为相对于毫无设计的代码过度设计的代码有比较高的理解成本。说这么多到底什么是过度设计什么是过度设计 为了解释清楚我这里用个类比假如你想拧一颗螺丝正常的解决方案是找一把螺丝刀这很合理对吧。 但是有些人就想“我就要一个不止能拧螺丝的工具我想要一个可以干各种事的工具”于是就花大价钱搞了把瑞士军刀。在你解决“拧螺丝”问题的时候重心早已从解决问题转变为搞一个工具这就是过度设计。   再举个更技术的例子假设你出去面试面试官让你写一个程序可以实现两个数的加减乘除方法出入参都给你提供好了 int calc(int x, int y, char op)普通程序员可能会写出以下实现。 public int calc(int x, int y, int op) {if (op ) {return x y;} else if (op -) {return x - y;} else if (op *) {return x * y;} else {return x / y;}}而高级程序员会运用设计模式写出这样的代码 public interface Strategy {int calc(int x, int y); }public class AddStrategy implements Strategy{Overridepublic int calc(int x, int y) {return x y;} }public class MinusStrategy implements Strategy{Overridepublic int calc(int x, int y) {return x - y;} } /*** 其他实现 */ public class Main {public int calc(int x, int y, int op) {Strategy add new AddStrategy();Strategy minux new MinusStrategy();Strategy multi new MultiStrategy();Strategy div new DivStrategy();if (op ) {return add.calc(x, y);} else if (op -) {return minux.calc(x, y);} else if (op *) {return multi.calc(x, y);} else {return div.calc(x, y);}} }策略模式好处在于将计算(calc)和具体的实现(strategy)拆分后续如果修改具体实现也不需要改动计算的逻辑而且之后也可以加各种新的计算比如求模、次幂……扩展性明显增强很是牛x。 但光从代码量来看复杂度也明显增加。回到我们原始的需求上来看如果我们只是需要实现两个整数的加减乘除这明显过度设计了。 过度设计的坏处 个人总结过度设计有两大坏处首先就是前期的设计和开发的成本问题。过度设计的方案首先设计的过程就需要投入额外的时间成本其次越复杂的方案实现成本也就越高、耗时越长如果是在快速迭代的业务中这些可能都会决定到业务的生死。其次即便是代码正常上线后其复杂度也会导致后期的维护成本高比如当你想将这些代码交接给别人时别人也需要付出额外的学习成本。 如果成本问题你都可以接受接下来这个问题可能影响更大那就是过度设计可能会影响到代码的灵活性这点听起来和做设计的目的有些矛盾做设计不就是为了提升代码的灵活性和扩展性吗实际上很多过度设计的方案搞错了扩展点导致该灵活的地方不灵活不该灵活的地方瞎灵活。在机器学习领域有个术语叫做“过拟合”指的是算法模型在测试数据上表现完美但在更广泛的数据上表现非常差模式缺少通用性。 过度设计也会出现类似的现象就是缺少通用性在面对稍有差异的需求上时可能就需要伤筋动骨级别的改造了。 如何避免过度设计 既然过度设计有着成本高和欠灵活的问题那如何避免过度设计呢我这里总结了几个方法希望可以帮到大家。 充分理解问题本身 在设计的过程中要确保充分理解了真正的问题是什么明确真正的需求是什么这样才可以避免做出错误的设计。 保持简单 过度设计毫无例外都是复杂的设计很多时候未来有诸多的不确定性如果过早的针对某个不确定的问题做出方案很可能就白做了等遇到真正问题的时候再去解决问题就行。 小步快跑 不要一开始就想着做出完美的方案很多时候优秀的方案不是设计出来的而是逐渐演变出来的一点点优化已有的设计方案比一开始就设计出一个完美的方案容易得多。 征求其他人的意见 如果你不确定自己的方案是不是过度设计了可以咨询下其他人的尤其是比较资深的人交叉验证可以快速让你确认问题。 总结 其实在业务的快速迭代之下很难判定当前的设计是欠设计还是过度设计你当前设计了一个简单的方案未来可能无法适应更复杂的业务需求但如果你当前设计了一个复杂的方案有可能会浪费时间……。 在面对类似这种不确定性的时候我个人还是比较推崇大道至简的哲学当前用最简单的方案等需要复杂性扩展的时候再去重构代码。
http://www.dnsts.com.cn/news/96482.html

相关文章:

  • 专门做设计的一个网站北京网页设计设计培训
  • 网站腾讯qq对话框怎么做网站前端交互功能案例分析
  • 杭州网站设计 网站个人网站命名技巧
  • 学技术网站网站做哪块简单
  • 做家旅游的视频网站小红书体现的网络营销方式
  • 建设银行网站解除绑定设计公司企业网站
  • 网站维护的注意事项erp管理系统是什么
  • 网站建设对企业的要求谷歌广告联盟官网
  • 好的企业网站设计方案私人建设网站
  • 网站开发解决方案wordpress archive
  • 企业网站建设的基本标准设计网站公司湖南岚鸿设计
  • 企业营销型网站建设的可行性上虞区住房和城乡建设部网站
  • 做网站甲方乙方公司的区别成都有几个区
  • php在线做网站12306网站开发费用
  • 较便宜的网站建设抓取工具把对手网站的长尾词
  • 东至网站制作ppt背景模板免费下载
  • 代理国外网站广州网站整站优化
  • 昆明建设网站网站备案信息更改审核要多久
  • 网站优缺点品牌建设口号
  • 英语网站onlinewordpress初始密码
  • 长沙的网站建设公司vultr搭建wordpress
  • 安定网站建设上海外贸公司是国企吗
  • 邯郸医院网站建设新手网站设计定价
  • dedecms做自适应网站WordPress网站主题升级
  • 揭阳网站免费建站app首页设计模板
  • 陕西网站建设网站别人做的上面有方正字体
  • 怒江州城乡建设局网站黄石网站建设流程
  • 平面设计免费素材网站文章资讯类网站模板
  • 海康域名网站wordpress.org教程
  • 上国外网站速度慢电脑网络