自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 head first design patterns

least knowledge最少只是原则调用对象的方法,只允许一下情况:1、对象本身的方法2、通过参数传入的对象的方法3、对象的方法创建的或者实例化的对象的方法4、对象的成员对象的方法...

2020-02-03 09:55:52 169

原创 如何在工作中快速成长——认知升级方法论(职业规划需要修改)

本文介绍如何在工作中快速成长的10条定理,写给即将入职的软件工程师(myself)。快速成长,总得来说就是就是认知升级,认知就是对问题的认、对解决办法的知,认知升级就是寻求从问题到解决办法的最短路径、最佳路径,需要依靠思考沉淀形成认知,经过行为惯性导致升级。1、培养直觉划重点:思考形成逻辑,将逻辑反射化、习惯化原因:行动被思考脑和反射脑驱使,一个人一天的行为中,5%是非习惯性的,用思考...

2020-01-02 18:59:33 823

原创 java可重入锁ReentrantLock

一、使用1、创建一个可重入锁 rL= ReentrantLock(true/false)2、rL.lock()3、try{业务代码块}catch(){异常记录}finally{ rL.unlock() 释放锁}二、lock的时候发生了什么、线程处于怎样的状态1、rL最重要的字段:抽象队列同步器 AbstractQueuedSynchronizer sync,负责获锁 acquir...

2019-08-31 00:39:40 178

原创 重构第十一章及以后——处理继承关系等

主要是将字段、函数、构造函数上下移动于继承体系之中;抽象出子类、接口;继承与委托。1、字段上移:针对子类字段重复的情况2、函数上移:针对子类函数重复,如果子类需要上移的函数依赖于子类的特性,可以将这个函数在超类中定义为抽象函数3、构造函数函数体上移:也就是子类构造函数,利用超类构造函数构造一部分字段。4、函数下移5、字段下移6、抽取类:新建一个子类,将特性移到新类中,使用子类而不是类型...

2019-08-13 08:56:44 158

原创 重构第十章——简化函数调用

重构第十章——简化函数调用1、函数改名,做到顾名思义2、添加参数,如果可以不添加参数,那就不添加参数3、移除参数4、将查询和修改函数分离:如果遇到并发问题,可以查询、修改各自独立,并都神明为synchronized5、令函数携带参数:5和12中的2)做法相反,12中的2)为同一件事情创建不同的方法,5是为不同的方法抽象参数变成一个方法6、用简单传单的不同的函数,代替复杂传参的一个函数,...

2019-08-11 22:28:23 198

原创 领域驱动设计读书笔记

领域驱动设计读书笔记总计与思考,from0723

2019-07-23 09:21:59 208

原创 代码整洁之道——读书小结

代码整洁之道第一章

2019-04-29 19:12:47 162

原创 重构第九章——简化条件语句

重构第九章,讲解如何简化条件语句(if then else、switch case),使得程序逻辑更加清楚,同时方便扩展,主要手法有8种。我在每种手法的后面加了一句话,总结这种手法的目的或者做法。1、分解条件:结合Extract Method使得逻辑更清晰做法:将if-else if-else语句块的 条件 和 每个条件执行的逻辑,分解成方法。这样一来,条件更加清楚(通过方法名来传达),每...

2019-04-29 16:04:13 298

原创 六大设计原则和补充原则 以及其他原则(待写)

六大设计原则和补充原则 以及其他原则(待写)https://mp.weixin.qq.com/s/9wfEJvU_ON6gq71L9Oni7g

2019-04-29 11:45:01 401

原创 熟悉Spring、Mybatis并研究架构源码,吸取优秀的开源思想(待写)

无内容。待写。20190429。

2019-04-29 11:41:47 164

原创 重构第八章——重新组织数据

第8章介绍重新组织对象的数据的重构方法,对象的数据包括普通字段、常量、类型码等,以下16条重构手段涉及到封装、解耦、设计模式。1、自封装字段什么时候进行自封装:当类的字段在其他地方(如子类中、别的类中)使用时,进行自封装是必要的,因为不封装的话,只能修改字段的可见范围(对象的字段可见范围绝大多数情况下都应该是private的,在继承体系中可能是protected,不能根据访问需要而改动)。...

2019-04-28 17:04:23 499

原创 职场基本三原则——安全、进步、收益

职场基本三原则:安全原则——保证自身安全、进步原则——谋求晋升拒绝佛系、收益原则——懂得算账,处理领导给钱少的问题1、安全原则安全原则是首要原则。第一是工作安全,稳定了工作和位置才能图发展。第二是信用安全,良好的信用是职场的通行证、润滑剂。工作安全与信用安全冲突时:变通行为。比如帮同时代打卡,帮的话可能存在一定后果,对工作安全不利;不帮,对人情不利,信用安全受损。衡量对工作安全的不利程...

2019-04-28 12:37:14 553

原创 java中的观察者模式使用——Observer和Observable

本文翻译java源码中对Observer和Observable的注解,介绍观察者使用过程。1、Observer接口用途:当一个类想要获得被观察对象变化的通知时,可以实现Observer接口。主要方法:Observer接口只有一个方法,void update(Observable o, Object arg)。这个方法在被观察对象变化时,被自动调用。应用程序调用被观察者的notifyOb...

2019-04-27 21:05:06 952

原创 重构第七章——在对象之间搬移特性

针对对象的重构,解决 把责任放在哪里 的问题,主要8个手段:函数搬家、字段搬家、当类承担过多责任时提取新类(反之一个类不太有责任时就是删之,将类内联化)、利用委托或代理作中间人(反之就是移除中间人)、无法修改类时的扩增方法(两种)。1、方法搬家A类和B类,A类中的某个方法中的逻辑依赖B类中的字段,可以考虑将这个方法移到B中。如果这个方法还需要A中的字段,可以将作为参数传入。2、字段搬家...

2019-04-27 16:54:26 204

原创 RabbitMQ消息可靠性、延迟队列以及高可用集群

介绍RabbitMQ的作用、不可靠性、如何保证可靠性、死信队列、集群。1、作用:①②RabbitMQ Server作为消息的接收者、消息的发送者;③消息持久化;④消息堆积延后传递;⑤消息广播;⑥消息分类路由2、生产端和消费端都会存在不可靠的问题。1)消费端不可靠:消息的传递的过程:RabbitMQ Server-->OS buffer --> network --&...

2019-04-25 13:48:45 620

原创 重构第六章——重新组织函数

本文首先记录了对重构这本书第六章的学习笔记,第六章讲重新组织函数,主要过程是:发现问题(long method)——> Extract Method ——>Substitute Algorithm。其中抽取方法是重点和难点。1、问题源于long methods2、手段是Extract Method,当提炼没有必要是,使用Inline Method,使用函数动作本体,Extra...

2019-04-24 00:31:41 212

原创 重构第二章——重构的注意事项及重要性&杂记

本文在阅读重构这本书的基础上,摘记了一些重要的观点,包括重构的注意事项、重要性和一些编程的杂记。注意事项:1、开发过程中的两顶帽子——重构和添加新功能,原则是:只干一件事,添加新功能时不做重构,重构时不添加新功能。2、何时重构:①事不过三(重复遇到某个问题、重复写相似代码等),三则重构②添加新功能,尤其不易添加时③修补错误时④复审代码时重要性:1、作者的结论是:重...

2019-04-23 23:04:37 561

原创 重构第三章:何时重构——22种坏味道

1、重复代码2、方法过长3、类过大4、过长参数列5、发散式变化,类由于不同的原因在不同的地方发生变化。怎么解决:运用Extract Class部分内容提炼到一个新类中,这样每个类都因只因一种变化而需要修改。策略模式是对付发散式变化的典型手段。6、散弹式修改,也就是说当系统需要修改时,只用修改某一处,而不用修改多个地方。怎么解决:使用Move Method 和 Move Fiel...

2019-04-23 22:14:07 434

原创 Python学习概论

0、Python是一种解释型、面向对象、动态数据类型的高级程序设计语言1、python适合开发哪些类型应用?Web开发,包括网站、后台服务等等;人工智能、数据分析、自动化运维方面大量运用。其次是许多日常需要的小工具、网络爬虫,包括系统管理员需要的脚本任务等等;另外就是把其他语言开发的程序再包装起来,方便使用。2、python的缺点第一个缺点就是运行速度慢,和C程序相比非常慢...

2019-04-19 14:53:17 207

原创 重构第一章——重构三部曲:抽取方法、移动方法、使用多态

在阅读重构改善既有代码的设计(Refactoring improving the Design of Existing Code)这本书的第一章的基础上,对于其给的演示的例子,来梳理一下第一章重构的流程,以及重构前和重构后的对比效果。第一章主要运用了三种基本的重构方法,我称之为三部曲:抽取方法、移动方法、使用多态。目的是:对象方法责任合理分配、代码易于维护。下面具体展开。首先介绍背景。重构...

2019-04-19 14:36:45 462

原创 Vector源码解读

本文介绍Vector源码分析,对其API doc注解进行翻译并解释。一、翻译Vector类的注解:①基本功能:Vector类实现了一系列的array对象。像一个array一样,它包含的成员可以通过整数下标来访问,但是它的长度(size)可以根据需要进行扩增和收缩,以适应在Vector对象创建后增加和移除元素的需求。Vector对象通过维护一个容量和一个容量扩增(capacityIncrem...

2019-04-19 11:01:10 345

原创 Java第一篇博客

第一篇。无内容。2017/11/6。

2017-11-06 22:29:56 133

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除