设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者
123426 人已学习
新⼈⾸单¥98
登录后,你可以任选6讲全文学习
课程目录
已完结/共 113 讲
设计模式与范式:行为型 (18讲)
设计模式之美
15
15
1.0x
00:00/00:00
登录|注册

81 | 开源实战三(上):借Google Guava学习发现和开发通用功能模块

通用功能模块的开发方法
通用功能模块的开发需求
开发思想:产品意识、服务意识、代码质量意识、不要重复造轮子
通用功能模块的发现方法
通用功能模块的特点:复用和业务无关
业务开发中常见的通用功能模块有三类:类库、框架、功能组件
包括集合、缓存、原生类型支持、并发库、通用注解、字符串处理、数学计算、I/O、事件总线等
提供了一些JDK没有提供的功能,以及对JDK已有功能的增强功能
Google Guava是Google公司内部Java开发工具库的开源版本
思考项目中可以抽象出来的通用功能模块
如何将通用功能模块设计开发成优秀的类库、框架或功能组件
通用功能模块的发现和开发
做业务开发也会涉及很多非业务功能的开发
如何开发通用的功能模块?
如何发现通用的功能模块?
Google Guava介绍
标题:如何发现和开发通用功能模块?
课堂讨论
重点回顾
参考文章
如何发现和开发通用功能模块?

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

上几节课,我们拿 Unix 这个超级大型开源软件的开发作为引子,从代码设计编写和研发管理两个角度,讲了如何应对大型复杂项目的开发。接下来,我们再讲一下 Google 开源的 Java 开发库 Google Guava。
Google Guava 是一个非常成功、非常受欢迎的开源项目。它在 GitHub 上由近 3.7 万的 stars。在 Java 项目开发中应用很广泛。当然,我们并不会讲解其中的每个类、接口如何使用,而是重点讲解其背后蕴含的设计思想、使用的设计模式。内容比较多,我分三节课来讲解。
第一节课,我们对 Google Guava 做一个简单介绍,并借此讲一下如何开发一个通用的功能模块。
第二节课,我们讲 Google Guava 中用到的几种设计模式,会补充讲解之前没有讲到的 Immutable 模式。
第三节课,我们借 Google Guava 补充讲解三大编程范式中的最后一个:函数式编程。
话不多说,让我们正式开始今天的学习吧!

Google Guava 介绍

考虑到你可能不熟悉 Google Guava,我先对它做下简单的介绍。
Google Guava 是 Google 公司内部 Java 开发工具库的开源版本。Google 内部的很多 Java 项目都在使用它。它提供了一些 JDK 没有提供的功能,以及对 JDK 已有功能的增强功能。其中就包括:集合(Collections)、缓存(Caching)、原生类型支持(Primitives Support)、并发库(Concurrency Libraries)、通用注解(Common Annotation)、字符串处理(Strings Processing)、数学计算(Math)、I/O、事件总线(EventBus)等等。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何发现和开发通用功能模块,以及介绍了Google Guava作为一个成功的开源项目。文章强调了在业务开发中发现通用功能模块的重要性,并提供了一些实用的方法和思路。通过介绍Google Guava和通用功能模块的发现与开发,强调了通用功能模块的两个最大特点:复用和业务无关。读者可以从中学习如何在业务开发中发现通用功能模块,并将其开发成类库、框架或功能组件,从而提高代码的复用性和可维护性。文章还强调了产品意识和服务意识在开发通用功能模块时的重要性,以及阅读Google Guava开源代码的建议。整体而言,本文为读者提供了关于通用功能模块发现与开发的实用指南和思路。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《设计模式之美》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(21)

  • 最新
  • 精选
  • Frank
    如何开发通用模块是不是可以对应到专栏之前讲过的“如何做需求分析与设计“中的非业务系统的开发那部分?

    作者回复: 可以结合着一块看

    2020-05-10
    2
  • djfhchdh
    立个flag,阅读guava,记下笔记
    2020-05-12
    22
    50
  • 宁悦
    附上Guava的github地址 https://github.com/google/guava
    2020-06-30
    19
  • Jackey
    let’s go guava
    2020-05-08
    8
  • L🚲🐱
    权限系统可以独立出来, 几乎所有的项目都可以用一套权限系统
    2020-05-11
    2
    6
  • 呦呦鹿鸣
    沙发!开始翻guava源码
    2020-05-08
    6
  • Monday
    google guava ,I'm coming!
    2020-05-10
    5
  • makermade
    分布式id生成器,可以抽象成一个独立的服务
    2020-05-08
    5
  • Heaven
    现在正在编写一个项目的告警模块,支持用户的自定义规则,进行解析后,多次到达一定额度,进行触发报警事件,这就可以抽取出来,但是现在越开发越和现有的业务代码耦合度深,所以在考虑将最开始的基本版本进行完善,形成一个框架暴露出去 顺便一提,其实大家可以根据自己的项目,抽取出一个脚手架,做到尽可能的通用,作为一个框架暴露出去
    2020-05-08
    1
    4
  • 龙猫
    我们公司就有一些通用的组件:异步通信中心(多种渠道钉钉、微信、邮件等通知),缓存中心,文件上传导入中心,多数据源动态配置(基于spring api开发的动态数据源)等等,还是比较有意思的。
    2020-09-12
    1
    2
收起评论
显示
设置
留言
21
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部