读书笔记
文章平均质量分 68
gghh2015
这个作者很懒,什么都没留下…
展开
-
工作中用到的零散知识-链接汇总
工作中遇到的问题,参考解决办法汇总原创 2017-03-18 16:01:12 · 354 阅读 · 2 评论 -
实现最简单的RPC框架-《架构探险-从零开始写分布式服务框架》读书笔记
整体结构: 代码如下:public interface HelloService { public String sayHello(String content);}public class HelloServiceImpl implements HelloService { @Override public String sayHello(Str...原创 2018-04-06 22:52:54 · 529 阅读 · 0 评论 -
使用Zookeeper实现服务注册中心-《架构探险-从零开始写分布式服务框架》读书笔记
前言最近在看《架构探险-从零开始写分布式服务框架》,对于分布式框架的入门级选手还是挺合适的,扫盲。对分布式服务框架中的基本概念:RPC、SOA、序列化、Spring集成RPC、ZooKeeper、I/O模型、Netty、软负载、服务治理做了系统介绍。手写了RPC框架、使用ZooKeeper实现注册中心、Netty服务端和客户端,以及前面各个概念的代码实现。总之,概念讲的比较清楚,代码也比较多,...原创 2018-04-06 16:38:50 · 2024 阅读 · 1 评论 -
代码整洁之道-第2章有意义的命名-读后感
对计算机认知的另一个视角看这本书之前认为,从java角度看计算机,从下到上分为:汇编等基础语言、各种操作系统、JVM虚拟机、Java代码、网络、分布式(各种并发、缓存、各种架构)。从这本书的开篇就认识到,还可以这样看:代码、模型、需求。前一段时间刚听说了一个DDD领域驱动模型设计,恩,这样一来,好像给这个模型有个一个定位。欢迎使用Markdown编辑器写博客本Markdown编辑器使用...原创 2018-08-19 21:54:16 · 261 阅读 · 0 评论 -
代码整洁之道-第2章函数-switch语句优化
写出短小的switch语句很难,写出只做一件事的switch语句也很难,它天生就要做N件事。我们无法避开switch语句,不过还是可以确保每个switch都放在较低的抽象层级,而且永远不重复。利用多态实现switch的优化根据雇员类型计算薪资:public Money calculatePay(Employee e) throws InvalidEmployeeType{ ...原创 2018-08-24 00:26:18 · 1044 阅读 · 0 评论 -
代码简洁之道-总结
从8月13号拿到这本书,历时两个月认真看了一遍,书中给了很多实用的建议,也以代码的方式展示了具体的优化方法和步骤。书中1-13章有一个具体的点,逐个分析优化代码需要注意的地方。读到第14章的时候,我崇拜的两个大牛给了建议,一个说代码还是要多写,写的多了发现不合理的地方的自然的就会想办法改进;一个建议我应该去读源码,从源码中学习解决问题的方式和思路,而不是还在看这些基础的书,源码看多了自然也就知...原创 2018-10-15 09:47:00 · 5168 阅读 · 2 评论 -
缓存穿透
《深入分布式缓存:从原理到实践》缓存数据没有命中就会存在缓存穿透。目标:避免攻击性穿透、并发更新穿透,让缓存数据的失效过程尽可能平滑。方法:选择不同的缓存策略、缓存淘汰算法。第一种场景:利用不存在的key攻击应用。过程:每次请求会先检查缓存中是否存在,如果存在返回缓存内容,如果不存在就回源,然后再将结果缓存。如果查询的某个数据在缓存中一直不存在,就会造成每一次请求都回源,这样缓存就失去...原创 2019-02-15 09:43:07 · 143 阅读 · 0 评论 -
引入缓存前的考量-大处着眼,小处着手《深入分布式缓存-从原理到实践》
缓存不是系统架构的必选项,只有在遇到性能瓶颈的业务场景,才可能需要引入缓存。首先从宏观考虑,整体的缓存场景,缓存层次,缓存策略(同步/更新)。其次从局部考虑,选择合适的缓存组件,使用方式(数据结构、分布、部署),制定缓存系统的SLA(服务等级协议)。最后,在系统运行过程中,要对缓存系统监控报警,还要根据业务发展、访问规模的变化,不断对缓存架构优化及演进。...原创 2019-02-13 09:46:57 · 186 阅读 · 0 评论 -
影响缓存使用效果的几个关注点
1、监控运行中的缓存对于进程外缓存,一般需要监控cpu,进程内存使用情况,连接数等。2、GC影响原创 2019-02-26 22:16:48 · 164 阅读 · 0 评论 -
Java编程思想-并发-终结任务
1、编程思想电子版724页原创 2017-12-08 08:59:26 · 216 阅读 · 0 评论 -
Spring实战第四版读后感
最近用1个月的时间看了Spring实战第四版,详细看了第1部分Spring核心,粗略看了第2部分Web中的Spring、第3部分后端中的Spring、第4部分Spring集成的第16章。总体来说,Spring入门书和工具书,书的描述方式就像作者坐到你对面给你上课一样,循序渐进的开展,从第1部分开始,讲Spring怎么出现的,核心思想是怎么回事儿,可以怎么使用,到后面的3章Spring在前端后端集成原创 2017-07-16 18:51:58 · 13248 阅读 · 7 评论 -
解决swift实现的websocket与后台通信问题:websocket is disconnected: masked and rev data is not currently supported
运行环境:使用websocket通信,客户端是iOS APP,使用swift写的websocket库Starstream2.0,在模拟器上运行,服务端是Java的spring-websocket框架。问题描述:当客户端和服务端都按官方文档提供的标准写法写好后,出现websocket is disconnected: Invalid HTTP upgrade错误,经过一翻查找讨论,为websoc原创 2017-05-23 09:21:49 · 3133 阅读 · 0 评论 -
SQL必知必会读后感
上个月要写报表,集中补充了SQL知识,为了看着方便买了本《SQL必知必会》,封面上写着在通勤的路上就可以掌握SQL,到手后发现,确实方便携带,但内容有点坑,估计是给学生用的,都是最基本的语法和用法,稍微复杂点的应用场景都没有涉及,也有可能应用场景都和业务相关,都掌握在行业里的资深程序员手里,不是各行各业都会用到的所以也不好介绍。原创 2017-07-16 20:45:55 · 715 阅读 · 0 评论 -
iOS APP开发的一些小心得
作为一名java开发,就因为我有mac本,我们老大就让我去开发一个库,说好的不难,半个月的工作量,年前提到的,让有时间看一下swift语言,我的目标特别高远,想以后做架构师,而架构师的知识面要宽,所以我觉得我熟悉一下这个语言也还行,所以就接了。我们公司都是java,我是单独开发,所以自己踩了很多坑,也是很宝贵的经验。和大家分享一下。 项目要做的是IM,仿照微信的聊天功能和界面,后端原创 2017-05-31 14:09:03 · 594 阅读 · 0 评论 -
java编程思想读后感
最近找工作,面试了好多家企业,见了很多优秀的面试官,都给了很多有帮助的建议。大部分面试官在知道我在看Java编程思想,都会认为我现阶段不适合看编程思想,head first会更适合我。开始我觉得是不是自己有些好高骛远,应该踏实的把基础打扎实。后来我问了自己几个问题,看Java编程思想给自己带来进步了吗?有没有看着很痛苦的感觉?答案是很清楚的,当然给我带来很大帮助,也潜移默化的解决了一些问题。我原创 2016-09-06 19:03:17 · 4514 阅读 · 0 评论 -
java基础-head first java
1、问:其他程序语言都可以用整数类型做判断条件,java可以这样吗?int x = 1;while(x){}答:不行,java中的integer与boolean两种类型并不相容。只能用如下的boolean变量测试。boolean isHot = true;while(isHot){}2、问:在java中if与while循环都是boolean测试,有什么区别?答:if 如原创 2017-09-28 09:39:07 · 699 阅读 · 0 评论 -
session&cookie&网络协议模型
1、java实现get,post请求:2、session:16进制32位。组合方式16的32次方,也可以说2的128次方。保存在服务端。3、cookie:保存在客户端。cookie存放位置:4、使用公共机,切记退出登录:清空session cookie5、网络协议模型OSI(open System Inte原创 2017-10-31 19:17:30 · 446 阅读 · 0 评论 -
设计模式-最少知识原则
当你正在设计一个系统,不管是任何对象,你都要注意它所交互的类有哪些,并注意它和这些类是如何交互的。最少知识原则希望我们在设计中,不要让太多的类耦合在一起,以免修改系统中的一部分,会影响到其他部分。如果许多类之间相互依赖,那么这个系统就会变成一个易碎的系统,它需要花很多成本维护,也会因为太复杂而不容易被其他人了解。下面看一句不太好的代码:(从气象站取得温度计对象,然后再从温度计对象去的温度)原创 2017-11-04 20:46:23 · 612 阅读 · 0 评论 -
java基础-head first 设计模式
1、第一个设计原则:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。解释:如果每次新的需求一来,都会是某方面的代码发生变化,那么你就可以确定,这部分的代码需要被抽出来,和其他稳定的代码有所区分。或是:把变化的部分取出来封装起来,以变以后可以轻易的改动或扩充此部分,而不影响不需要变化的其他部分。总之:这几乎是每个设计模式背后的精神所在。原创 2017-10-31 18:50:27 · 511 阅读 · 0 评论 -
适配器模式&装饰者模式&外观模式
关于适配器模式和装饰者模式:个人理解为,适配器是横向的转换接口,而装饰是纵向的包装接口。适配器模式将一个对象包装起来以改变其接口,装饰者模式将一个对象包装起来以增加新的行为和责任,外观模式将一群对象“包装”起来以简化其接口。原创 2017-11-04 20:55:03 · 438 阅读 · 0 评论 -
Java编程思想-并发-基本的线程机制/共享受限资源
1、编程思想电子版699页:public class SelfManaged implements Runnable{ ..... public SelfManaged(){ t.start();} .....}1)创建线程,这与从Thread继承并没有什么特别的差异,只是语法稍微晦涩一些。但是,实现接口还可以继承不同的类,原创 2017-12-06 19:45:12 · 162 阅读 · 0 评论 -
JMM-java内存模型
在并发编程中,需要处理的两个关键问题:1、线程之间如何通信。2、线程之间如何同步。线程之间的通信机制有两种:1、共享内存。2、消息传递。共享内存的并发模型里,线程之间共享程序的公共状态,通过读-写内存中的公共状态进行隐式通信。消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显式通信。JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存中,每个线程...原创 2019-05-03 17:12:04 · 217 阅读 · 0 评论