前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >日拱一卒 | 设计模式之美 | 01 导学

日拱一卒 | 设计模式之美 | 01 导学

作者头像
被水淹没
发布2023-02-25 18:52:38
2630
发布2023-02-25 18:52:38
举报
文章被收录于专栏:迈向架构师

日拱一卒,每日单机 hhh(1/100)

今天学习分享的是王争的《设计模式之美》

为什么要学习设计模式?

总结一下的话,主要有这几点:

  • 拒绝写烂代码
  • 提高复杂代码的设计和开发能力
  • 让读源码学框架事半功倍
  • 为职场发展做铺垫。

如何写出高质量代码?

代码质量最常用的评价标准

  • 可维护性(maintainability) 在不破坏原有代码设计、不引入新的 bug 的情况下,能够快速地修改或者添加代码。
  • 可读性(readability) 代码是否符合编码规范、命名是否达意、注释是否详尽、函数是否长短合适、模块划分是否清晰、是否符合高内聚低耦合等等。

软件设计大师 Martin Fowler 曾经说过:“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” 翻译成中文就是:“任何傻瓜都会编写计算机能理解的代码。好的程序员能够编写人能够理解的代码。

  • 可扩展性(extensibility) 代码预留了一些功能扩展点,可以把新功能代码直接插到扩展点上,而不需要因为要添加一个功能而大动干戈,改动大量的原始代码。
  • 灵活性(flexibility) 易扩展、易复用或者易用。
  • 简洁性(simplicity) 编写代码的时候把简单、清晰放到首位。
  • 可复用性(reusability) 减少重复代码的编写。
  • 可测试性(testability) 代码的可测试性差,比较难写单元测试,那基本上就能说明代码设计得有问题。

如何才能写出高质量的代码

要写出高质量代码,需要掌握一些更加细化、更加能落地的编程方法论,这就包含面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等等。

他们之间的关系

面向对象

面向对象编程因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式编码实现的基础。

设计原则

对于每一种设计原则,我们需要掌握它的设计初衷,能解决哪些编程问题,有哪些应用场景。这样我们才能在项目中灵活恰当地应用这些原则。

设计模式

了解它们都能解决哪些问题,掌握典型的应用场景,并且懂得不过度应用。

编程规范

每条编码规范都非常简单明确,比较偏向于记忆,只要照着来做可以。这边总结了一些比较常用的,有时间可以学习《重构》《代码大全》《代码整洁之道》等。

代码重构

重构是软件开发中非常重要的一个环节。持续重构是保持代码质量不下降的有效手段,能有效避免代码腐化到无可救药的地步

需要掌握:

  • 重构的目的(why)、对象(what)、时机(when)、方法(how);
  • 保证重构不出错的技术手段:单元测试和代码的可测试性;
  • 两种不同规模的重构:大重构(大规模高层次)和小重构(小规模低层次)。
  • 建立持续重构意识,把重构当作开发的一部分,融入到日常的开发中。

五者之间的联系

  • 面向对象:是很多设计原则、设计模式的基础
  • 设计原则:指导代码设计的经验总结
  • 设计模式:软件开发中经常遇到的设计问题总结出来的方案或思路
  • 编程规范:解决代码可读性,持续小重构
  • 重构:利用以上理论,保持代码质量不下降的有效手段

面向对象、设计原则、设计模式、编程规范、代码重构,这五者都是保持或者提高代码质量的方法论,本质上都是服务于编写高质量代码这一件事的。

编写高质量代码

今天就分享到这, 我们明天见!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 迈向架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要学习设计模式?
  • 如何写出高质量代码?
    • 代码质量最常用的评价标准
      • 如何才能写出高质量的代码
      • 他们之间的关系
        • 面向对象
          • 设计原则
            • 设计模式
              • 编程规范
                • 代码重构
                  • 五者之间的联系
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档