当前播放: 如何设计低耦合、易复用的软件架构?
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
合辑:新版短视频
Kafka某台broker IO阻塞,为何会导致发送方无法发送消息?
什么是C++中的The Rule of Three?
基于时序特性,如何构建一个时序存储引擎?
如何利用反射和泛型编程让你的Java代码更优雅?
C++中为什么move constructor需要加noexcept?
如何使用Postman做接口自动化测试?
给你点“颜色”瞧瞧
如何用Spark实现一个通用大数据计算引擎?
如何让你的Robot Framework飞起来?
如何透彻理解Selenium和WebDriver?
Spring Data JPA 如何进行复杂动态查询?
Spring Data JPA如何实现动态部分更新?
未来的编程语言长什么样?
高并发场景下锁的使用技巧(悲观锁/乐观锁/分布式锁)
为什么React组件要声明key?
为什么React不推荐使用Mixin?
如何设计一个高可用的配置中心?
如何通过代码技巧提升内存使用效率?
如何全面地改造Robust?
如何基于Netty构建一个简单的RPC服务?
Spring Boot中如何使用HTTP/2?
教你10分钟玩转Gradle plugin
如何深入理解Kube-Proxy?
如何深入理解Kubernetes架构?
如何使用和优化iOS中的WebView?
一个1000万资金重复支付的代码剖析
如何实现数据异构的多级缓存策略?
如何从 CRD 扩展开发切入Kubernetes源码学习?
如何更轻松简单地从源码编译部署Kubernetes?
如何设计并实现一个高可用的订单系统?
ZooKeeper的ZAB算法与Paxos的本质区别是什么?
微服务框架Apache ServiceComb的设计思想有哪些?
如何深入理解分布式事务TCC实现原理?
SSR 、CSR、预渲染、同构等首屏优化技术要如何选择?
如何利用ClassPath解决Java开发工程问题?
如何读懂Babel转换出的JavaScript代码?
大厂前端面试中经常提到的Promise要如何实现?
使用 Vue 开发小程序是怎么做到的?
为什么CSS要放在header底部,JavaScript要放在body底部?
前端Router是怎么实现的?
如何理解现代发布策略?以Kubernetes为例
JavaScript中如何封装一个具有自动失败重试功能的HTTP模块?
JavaScript中如何优雅地实现函数防抖?
服务发现技术是如何演进出来的?
HTTP/2能带来哪些性能提升?
如何快速对请求链路的关键点进行网络问题排查?
React 中如何实现模块的按需加载?
究竟要不要使用React Hooks?
TLS1.3原理以及在Nginx上的应用
如何利用有效的资源扛住618大促流量?

如何设计低耦合、易复用的软件架构?

李智慧 同程艺龙交通首席架构师

我们在软件开发过程中经常使用各种编程框架,比如 Java 程序员比较熟悉的 Spring、MyBatis 等都是编程框架,事实上,Tomcat、Jetty 这类 Web 容器也可以归类为框架。框架的一个特点是:使用框架开发一个应用程序,开发者无需在程序中调用框架的代码,就可以使用框架的功能特性。我们开发程序不需要调用 Spring 的代码,就可以使用 Spring 的依赖注入、MVC 这些特性,开发出低耦合、高内聚的应用代码。我们的程序更不需要调用 Tomcat 的代码,就可以监听 HTTP 协议端口,处理 HTTP 请求。

这些框架我们每天都在使用,可能会觉得这样是理所当然的,但如果你停下来好好想一想,难道不觉得这很神奇吗?我们自己也写代码,你可以做到让其他工程师不调用我们写的代码就可以使用其功能特性吗?据我观察,大多数开发者是做不到的。那么 Spring、Tomcat 这些框架是如何做到的呢?

讲师介绍

李智慧,极客时间《从 0 开始学大数据》专栏作者,同程艺龙交通首席架构师、Apache Spark 源代码贡献者,长期从事大数据、大型网站架构的研发工作。曾担任阿里巴巴技术专家、Intel 亚太研发中心架构师、宅米和 WiFi 万能钥匙 CTO。有超过 6 年的线下咨询和培训经验,并著有畅销书《大型网站技术架构:核心原理与案例分析》。

展开
¥4.99 购买
开通VIP
61
登录 后留言

精选留言(8)

  • coderfocus
    老师讲的太棒了 《架构整洁之道》依赖倒置也提到了接口应该属于高层
    2019-08-08
    3
  • 探索无止境
    如果李老师出一套设计模式的课程应该会很精彩
    2019-08-12
    2
  • David Xing
    🐂
    2019-09-21
    1
  • Andylee
    能把看上去比较抽象的概念讲得如此清晰明了,真是太厉害了
    2019-08-27
    1
  • eriolchan
    对于依赖倒置的概念醍醐灌顶
    2019-08-20
    1
  • 😁陈哲奇
    接口如何设计也是个难点,需要兼顾当前需求和未来的变化,抽象出更合理的结构。
    2019-08-11
    1
  • 亢龙有悔
    所以框架属于高层模块,具体实现是低层模块?

    作者回复: 是的

    2019-08-11
    2
    1
  • jaryoung
    重复听了三次终于听明白了哈哈
    2019-09-22
收起评论
其他推荐
35:43
架构师的业务思维
陈辉 蘑菇街技术部架构师
试看
43:17
当 DDD 遇上 DCI(Data, Context, Interactive)架构模式
张晓龙 中兴通讯资深软件架构师
试看
33:11
领域驱动设计用语溯源
潘加宇 UMLChina首席专家
试看