内容简介:在开始正文之前,松哥要先问大家两个问题:对于第一个问题,我们相信大部分人的回答都是工程师吧?如果你只是想安安静静做一个码农,那么 sorry ,本文可能不适合你!第二个问题,码农和工程师有很多区别,私以为最核心的在于工程师写的每一行代码都是从全局的角度出发,这样写出来的代码很有 “韧性”,够健壮,够稳定!而码农思考问题,可能仅仅是着眼于当前的问题,以解决当前的问题为宗旨,这样的代码写出来没有美感,没法维护,维护时候容易牵一发动全身!
在开始正文之前,松哥要先问大家两个问题:
- 你的职业规划是做一个 码农 还是一个工程师?
- 码农和工程师有什么区别?
对于第一个问题,我们相信大部分人的回答都是工程师吧?如果你只是想安安静静做一个码农,那么 sorry ,本文可能不适合你!
第二个问题,码农和工程师有很多区别,私以为最核心的在于工程师写的每一行代码都是从全局的角度出发,这样写出来的代码很有 “韧性”,够健壮,够稳定!而码农思考问题,可能仅仅是着眼于当前的问题,以解决当前的问题为宗旨,这样的代码写出来没有美感,没法维护,维护时候容易牵一发动全身!
相信很多人可能都看过下面这个建筑师的故事吧:
有一个旅人,在旅行途中经过一片施工地,那里地方偏僻,环境恶劣,每个工人都穿着满身是泥的工作服,戴着安全帽,在太阳的暴晒下辛苦的工作,额上汗珠不断,也顾不得用肩上的毛巾去擦拭!旅人走近他们,问第一个人:工人师傅,请问你们在做什么呢?第一个工人停下手中的忙碌,没好气的回答:你看不见吗,我们在砌墙!旅人点点头走向第二个人问:工人师傅,请问你们在做什么呢?第二个人很平静的回答他:我们在盖楼啊!旅人浅浅的笑笑走向第三个工人问:工人师傅,你们在做什么呢?第三个工人抬起头,用脖子上的毛巾擦了一下额头的汗水兴高采烈的回答:我们在建造一个美丽的教堂,你看看着轮廓,已经建造了一半了,等全部建造完,一定是一座了不得的艺术品!旅人这才仔细的观察了一下第三个工人,与前两个工人外在并无差别,泥泞的衣服,厚重的安全帽,晒得黝黑的脸,戴着白手套仍旧能看到胳膊处粗糙的肌肤,但不同的就是,这脸上快乐的笑容,和精神百倍的气场让他整个人熠熠生辉!旅人给第三个人竖起了大拇指!
你的心态决定你是泥瓦匠还是艺术家!
作为一个有追求的猿,相信没有人想安安静静做一个码农,毕竟不想当将军的士兵不是好士兵!
那么要做一个合格的工程师,除了要时时心怀全局之外,还需要有一些硬技能来支撑,不然即使胸怀全局,写出来的也是很难维护的代码!这些硬技能有很多,其中一个就是设计模式!
所谓的设计模式,其实就是前人一些开发经验、踩坑经验的总结,这些经验浓缩成我们熟知的 23 种设计模式,这些 设计模式 提供了通用的名词用来方便开发人员的交流,同时大部分设计模式都兼顾了系统的可重用性和可扩展性。作为一个专业的工程师,熟练掌握常用的设计模式实在太重要了!
基于此,我们打算在知识星球上输出一套干货课程,和大家仔细聊聊设计模式!
有人说网上的设计模式教程太多了,你还能写出花来?
那我问大家一个问题,设计模式的教程,大部分人可能多多少少都看过,可是看完记住了多少?项目中又用到了多少?
为什么看的时候都懂,看完之后就忘了呢?
很多教程都是停留在理论上,然后举出一些非常巧合的 Demo ,你看完学完之后,觉得很有道理,好像是这么回事!可是到了真正的项目又忘的一干二净了,有时候没有忘干净,但是硬套发现好像又套不上去。
出现这种情况最大的原因还是没能把设计模式学透,出去和人吹牛勉强够用,但是要在项目中使用,就捉襟见肘了。
因此,我们这套教程想抛弃传统的设计模式教程的写作套路,在传统设计模式教程的基础上,从以下几个方面来加强大家对设计模式的理解:
- 一切从实战出发,由工作中的实际问题切入,仔细分析不同设计模式在工作中的实际应用。
- 部分设计模式会结合常用框架来讲解。大家知道,Spring 作为最优秀的 Java 框架之一,本身就用到了许多设计模式,我们的课程在讲解设计模式时,也会结合一些常用框架来讲解。
- 场景多样化。由于我们是一个团队在向大家输出这套课程,每个作者在工作中对于设计模式的使用场景都不尽相同,这些不同的场景,有助于大家更加深刻的理解设计模式。
实战,是我们这套干货课程的基本指导思想!
那么这套课程都包含哪些内容呢?我们来看看这套课程的一个课程大纲:
- 第一章:设计模式介绍
这是一个入门概论,我们将向大家详细阐述设计模式的由来,常见的设计模式原则,包括开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则等。
- 第二章:创建型模式
创建型模式一个核心功能就是对类的实例化过程进行了抽象,为工程师创建一个对象提供了更多的参考以及尽可能大的灵活性。创建模式将模块中对象的创建和对象的使用进行分离,这样使项目的结构更加清晰。本课程将从以下几方面向大家介绍创建型模式:
- 工厂方法(Factory Method)
- 抽象工厂(Abstract Factory)
- 建造者(Builder)
- 原型(Prototype)
- 单例(Singleton)
- 第三章:结构型模式
结构型模式主要是描述如何通过更加合理的方式,将类组合在一起,使之发挥更大的作用。一般来说,结构型模式又可以分为类结构型模式和对象结构型模式,不过我们平时接触到的结构型模式主要是对象结构型模式。本课程将从以下几方面向大家介绍结构型模式:
- 适配器(Adapter)
- 桥接(Bridge)
- 组合(Composite)
- 装饰者(Decorator)
- 外观(Facade)
- 享元(Flyweight)
- 代理(Proxy)
- 第四章:行为型模式
行为型模式则重点关注类和对象之间的相互作用。通过行为型模式,我们可以更好的划分类和对象的职责,更好的处理对象之间的交互。一般来说,行为型模式分为类行为型模式和对象行为型模式两种,而我们在实际项目中接触到的大部分行为型设计模式都属于对象行为型设计模式。本课程将从以下几方面向大家介绍行为型模式:
- 解释器(Interpreter)
- 模板方法(Template Method)
- 责任链(Chain of Responsibility)
- 命令(Command)
- 迭代器(Iterator)
- 中介者(Mediator)
- 备忘录(Memento)
- 观察者(Observer)
- 状态(State)
- 策略(Strategy)
- 访问者(Visitor)
- 第五章:设计模式总结
最后一章,我们会对本课程进行回顾总结,查漏补缺,并解答大家在学习过程中遇到的问题。
这一整套流程下来,相信设计模式对你来说,从此不在话下了吧!
熟练掌握设计模式不仅对我们当前工作有帮助,也是通往架构师的必经之路。
本套教程将在 Java极客技术
知识星球陆续输出,有需要的同学赶快加入星球,就从这套干货课程,开启你的架构师之路吧!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 第1周 |「知识星球」高质量答疑 7 个问题
- V8十年故事:从农场诞生的星球最强JS引擎
- 代码审计知识星球二周年 && Code-Breaking Puzzles
- 【知识星球】千奇百怪的网络结构板块更新到哪里了?
- 【6月月报】新书加印与勘误,七大专栏齐上线,知识星球大改版!
- 自由星球会议,FSF年会 LibrePlanet Conference 2019 敲定举办时间与地点
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。