书籍作者:伟山育琪 | ISBN:9787302643364 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:1539 |
创建日期:2024-04-20 | 发布日期:2024-04-20 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书以互联网项目核心模块为基准,将设计模式融入核心模块的开发之中,整个过程犹如一个整体项目需求,完成设计模式的融入。从第2章到第12章,依次对核心项目模块进行设计模式的融入,本书所涉及到的核心模块依次为:多种第三方账号登录;产品分类目录管理;商品查询;多种类支付;商品订单状态变化;订单完成后的业务投放及策略实时变更;开具增值税发票;商品代付;积分、平台币、红包发放;多种类日志设计;日志解析。
B站技术博主河北王校长,视频内容主要集中在技术与实际业务的结合点上,互联网行业从业10年,Java技术专家。
本书完全将设计模式和实战结合,将一个完整的电商项目核心模块融入书中,同时还有Apollo配置中心、Spring状态机等核心组件代码的讲解。
前言
致敬所有程序员
我们生而平凡,却因思维和双手而闪亮。人有居庙堂,人有守边疆,或许没
有聚光灯下的万众瞩目,没有绝伦逸群的青史留名,但总有那一隅角落,有我们
挥洒汗水和青春的字里行间,千家灯朦胧,万里夜长空,致敬最美夜行者。
然,人间没有永恒的夜晚,世界没有永恒的冬天,程序改变世界。
定,春风和煦,韵律协调,击壤而歌,同忧同行,为太平故,负重前行,为
静好故。
终,世界以你为荣。
益者三友,损者三友。友道,友谅,友多闻,益矣。友便辟,友善柔,友便
佞,损矣。
愿,君以书为友,日以数篇为率,书遂大进。
盼,平生于书,未尝苟且,或达人简札,少不当意,必再三易之不厌。
遂,愈老而愈益精妙。
士有诤友,则身不离于令名。
期,君视吾为诤友,交友投分,切磨箴规,同心而共济,始终如一。
虽,不可即高山流水,仍盼鼓琴以为众善听,为君子交,淡以亲,相知无远
近,万里尚为邻。
终,达之所成亦不离道。
谨以此书,致敬所有程序员,致敬那无数黑夜中的呜咽与怒吼,致敬最卑微
的程序梦,致自己,致青春—You look great today!
学习设计模式普遍存在的问题
以下是来自众多从业者对设计模式的看法和疑问。
●设计模式真的有用吗?你敢不敢告诉我你项目里用了什么设计模式?
●看设计模式有什么用?天天造车工厂、肯德基点餐、披萨制作…… 哎!
贯穿设计模式
IV
——用一个电商项目详解设计模式
●除了工厂和单例,兄弟们有没有真实用过其他设计模式的?
●可能只有做架构代码的时候才会用设计模式吧,就像Spring源码那样用
了不少设计模式,自己写的项目里感觉没什么可以用的点。
●可能面试官也没在项目里用过几个,就是随便问问(偷笑)。
……
上边所列举的点是否也正是你的内心想法呢?设计模式给大部分读者的感觉
就是“神秘”“高端”“不接地气”“学会容易落地难”。好不容易有几个能够
落地到项目中的设计模式,还被框架代码完美封装了。比如:
●Spring的Bean管理:在不显示使用Scope注解为prototype的前提下,默
认情况就是使用的单例Bean,想自己写单例,Spring不给你机会。
●迭代器模式:JDK中List源码也好,Map源码也好,这些常用的数据结构
都为我们提供了迭代器—iterator,想自己写迭代器,要先过JDK这关。
●观察者模式:很多事件的监听场景适合使用该设计模式,可无奈的是
Redis提供了发布/订阅功能;Spring框架提供了Listener注解;更多
情况下,项目中要完成事件消息的传递,必然会引入消息中间件,如
RabbitMq、Kafka;使用Spring Cloud Alibaba的企业,更多地会使用
RocketMq进行事件消息的传递,一个监听场景被轻易地修改为了以中间
件为基础的消息传递和消息接收,而且耦合度还降低了。叹息自己一身
武艺,却无用武之地。
……
难道这辈子自己只能写工厂设计模式了吗?还是简单工厂模式……
内容简介
●不切实际的代码示例(如造车工厂、肯德基点餐、披萨制作、适配USB
接口、装饰咖啡加牛奶糖等)请绕行。
●不切实际的设计模式原则描述(如老师、学生单一职责原则划分,驾驶
不同品牌车辆的依赖倒置原则设计等)请绕行。
很抱歉以这种形式进行本书内容简介的开场,也希望广大读者给予谅解。笔
者认为,如果依然以如此虚幻的示例展开对设计模式的讲解,那么本书也就失去
了它原有的意义。因为在网络开放的当下,很多免费的博客论坛中,这种设计模
式的代码示例比比皆是,我们何必浪费金钱和时间在这本书上?而我们作为开发
行业的从业者,迫切需要的并不是虚无缥缈,而是真正可以落地的设计模式。
本书所有设计模式的代码编写,全部基于互联网项目核心需求,杜绝不切实
前言
V
际的代码示例,让设计模式融入真实的项目开发之中,让设计模式为我们的项目
效力。即便是第1章内容对设计模式六大原则(合成复用原则在1.4节单独说明)
的讲解,依然以热门源码(如JDK8源码、Spring5源码)为示例展开。
除第1章介绍设计模式的原则和分类,以及第12章进行结语以外,其他章
节依次以互联网项目核心模块为基准,将设计模式融入核心模块的开发之中,整
个过程犹如一个整体项目需求,完成设计模式的融入。
从第2章到第11章,依次对核心项目模块进行设计模式的融入,本书所涉
及的核心模块如下。
●多种类第三方账号登录。
●商品类目管理。
●商品订单状态转化与处理。
●多种类第三方支付。
●业务投放。
●平台积分更新及红包发放。
●开具电子发票。
●朋友代付。
●订单审计日志设计。
●ES日志查询。
本书的目标是让设计模式在工作中的使用成为可能,让我们对设计模式的学
习不仅仅停留在表面上。希望本书对设计模式的实践和落地,能够引起读者共鸣,
能够为读者在未来的工作中提供些许参考。
如何学习本书
对于设计模式的初学者,笔者建议从第1章开始阅读,了解设计模式的原则及
分类,对设计模式有一个全局概念之后,再依次进行后续章节的学习。对于已经了
解设计模式的读者,可以根据自身情况跳过第1章的学习,直接从第2章进行学习。
除此之外,笔者对阅读本书的读者仍有以下建议:
①本书所涉及的所有代码示例,可以扫描书中的“全书源码”二维码获取。
但建议读者不要提前获取全部代码,而是跟随章节的内容亲自进行代码的编写,
体会设计模式的精妙之处。
②本书涉及的相关第三方组件的安装包及安装方式,如RabbitMq、Apollo等,
均可扫描前言中的配套二维码获取。同时,为了感谢读者的支持和认可,本书赠
送“Spring源码视频资料”,由笔者亲自录制,依然在前言中通过二维码处获取。
贯穿设计模式
——用一个电商项目详解设计模式
③希望广大读者理解,一个项目需求可以有多种代码实现方式,或简单,或
复杂,或单一直接,或可扩展。实现方式的恰当与否,完全视业务场景以及对代
码的封装性、扩展性、可维护性等一系列要求而定。本书的内容只是多种实现方
式中的一种,欢迎读者能够将自己的想法传达给我,我们互相讨论,共同进步。
④本书与传统的设计模式讲解顺序有所不同,传统的讲解顺序会按照设计模
式的三大类型(创建型、结构型、行为型)进行讲解,而本书以互联网项目需求
为核心展开设计模式讲解,与传统的讲解方式大相径庭,希望读者能够调整学习
思路和方式。
接下来让我们开启这次旅程吧,一起进步,加油!
书友技术群
笔者为广大书友创建了QQ书友技术群,我们不仅可以讨论本书涉及的技术
内容,还可以讨论行业内任何有价值的技术,共同创建一个良好的技术交流环境。
笔者也会经常在群中为大家分享更多的学习资料,并进行技术交流。请扫描下方
二维码入群。
本书提供了详细的配套资料,读者可以扫描下方的二维码进行下载。
全书源码
书友群二维码
[第6章] Apollo quick start
Spring源码视频资料
[第6章] MySQL 5.6.10安装包
[第7章] rabbit.queue.create-
0.0.1-SNAPSHOT
[第11章] es.demo.server-
0.0.1-SNAPSHOT
[第7章] RabbitMq安装包