后端技术面试 38 讲
李智慧
同程艺龙交通首席架构师,前 Intel& 阿里架构师,《大型网站技术架构》作者
37373 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 46 讲
不定期加餐 (1讲)
后端技术面试 38 讲
15
15
1.0x
00:00/00:00
登录|注册

答疑丨对于设计模式而言,场景到底有多重要?

书籍推荐
软件开发
依赖倒置原则
设计模式
设计原则
软件设计原理总结

该思维导图由 AI 生成,仅供参考

今天是第二模块的最后一讲。在这一讲中,我们主要讲了软件的设计原理,今天,我将会针对这一模块中大家提出的普遍问题进行总结和答疑。并且,我在最后列了一个书单,这个书单里涉及到的书,可能会对你学习设计模式有一些帮助。让我们整理一下,再接着学习下一个模块的内容。

问题答疑

我们先来看一个同学提出的问题。
@山猫
如果项目初始就对 Button 按钮进行这么复杂的设计,那么这么项目后期的维护成本也是相当之高。
我们这个模块是讲设计的,这些设计原则都是用来解决需求变更的问题的。如果你为需求变更而进行了设计,但是预期中的需求变更却从来没有发生过,那么你的设计就属于设计过度;如果已经发生了需求变更,但是你却没有用灵活的设计方法去应对,而是通过硬编码的方式在既有代码上打补丁,那么这就是设计不足。
因此,是否要使用各种设计原则和设计模式去设计一个非常灵活的程序,主要是看你的需求场景。如果你的场景就是需要灵活,就是要各种复用,应对各种变更,那么一开始就应该这样设计。如果你的场景根本不需要一个可复用的 Button,那么就不需要这样设计。
所以关键还是看场景。
但是场景也会变化,一开始不需要复用,但是后来又需要复用了,那么就需要在复用的第一个场景去重构代码,而不是等将来困难局面 hold 不住了再重构。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文总结了软件设计原则和设计模式的重要性,强调了在软件开发中写出清晰、简单的代码的重要性。作者指出,正确使用设计模式可以使代码维护变得简单,因为关系和边界更清晰,不需要在强耦合的代码中进行修改。文章还提到了一些经典的著作,如《敏捷软件开发》和《企业架构模式》,强调了良好的软件设计对于敏捷开发和项目管理的重要性。作者还分享了自己的经验,强调了写出漂亮代码的重要性。整体而言,本文强调了良好的软件设计对于软件开发的重要性,以及如何写出好的代码。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《后端技术面试 38 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • 山猫
    感谢老师点名,虽然最近几篇文章没有留言,但一直在关注。 在我工作过程中,经常会使用到设计模式,有些场景下我会根据需要搭配多种设计模式。渐渐的我发现,设计模式到最后还是回到面对对象的设计原则上。 我认为设计模式这个东西不能学死,而需要活学活用。比如:我知道这个按钮可能会拆成策略模式,但我可以预先留好位置,写好上下文代码,即使写成 if…else 也没关系。 以上是我个人经验,不知这样可合适
    2020-01-08
    1
    11
  • 奔奔奔跑
    谢谢智慧老师的布道,工作和生活中见过太多连代码都写不好的人,但是口里一蹦一个技术新词,我也一直苦恼于写好代码与学好技术之间的关系,直到看到这篇,我才有点摸到门道。但我任然不会写代码,写不出好的代码,这个应该怎么练习呢
    2020-01-12
    3
  • escray
    集中时间看了软件设计原理的模块,对于面向对象的设计原则和设计模式再一次加深了认识,不过最终还是要用到代码中去,其实也就是老师强调的场景的重要性。 之前写的大部分是项目代码,瀑布式开发模式,没有太多的考虑需求变更的事情,修修补补就过去了,实在不行还可以推到重来。 体制内十年,技术已经落伍,面临择业,希望能拿到 Offer,很好的提高一下自己。 看过《UML精粹》,的确是好书,个人以为 UML 看着一本就可以了。其他三本都是久闻大名,却没有看过,就从这里开始吧。
    2020-09-25
    2
  • 靠人品去赢
    这个精选留言真的是扎心了,但是细想还真是这意思。 你心里的想法,你和老板的关系是依赖关系,老板,“小张不要走,公司离不开你”。 实际上是依赖导致,老板,“傻叼,写的什么东西,差点在投资人面前玩砸了,什么涨工资?滚,老子换一个更便宜的”。 同样一个web工程war包,并不会去依赖tomcat,实在受不了你我去换Jetty或者花点钱用,付费的也一堆。
    2020-01-16
    2
  • QQ怪
    向各位大佬学习,跟着大佬一起学习,信心满满!
    2020-01-08
    2
  • 好好先生
    软考考了好多,当时要是学了就好了
    2020-03-29
    1
  • Heyx
    几年前读bob大叔的敏捷软件开发的时候,和李老师有同感,特别是一些大企业中,搞敏捷真的是流于形式,站会,快速版本等,这本书是真的从开发和实践的角度来讲敏捷,很实在,逻辑清晰
    2023-08-13归属地:湖北
  • java小霸王
    醍醐灌顶,这就去看书
    2022-07-15
  • William Ning
    要学习要看的东西真的很多~~ It's never too late to learn.
    2022-06-29
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部