自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

__一叶__的博客

红颜弹指老、刹那芳华

  • 博客(118)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 结构化思维模型的构建(多种思维参考)

前言什么是结构化思维:逻辑+套路表达要有逻辑:演绎(因果)顺序、时间(步骤)顺序、空间(结构)顺序、程度(重要性)顺序做事要有套路:why、who、when、where、what、how、how much如何结构化思考:先建立中心,然后进行分解参考金字塔结构建立中心:明确目标,也就是先搞清楚why (自上而下展开,自下而上分类归纳)结构化分解:按逻辑顺序(相互独立、完全穷尽规则分解)构建思维模型1.5W2H思维(是全面分析事物所具备的基础思维结..

2022-05-16 23:08:57 1842

原创 结构化思考与表达之“金字塔原理”

思维决定你的命运,人与人最大的不同就是思维方式的不同。过去的事已成过去(相同的信息),但是不同的思维会产生不同的结果或反应。然后是对思维结果的呈现——即表达,如何条理清晰机构话的表达,是你与人是否能够高效沟通的关键。思维的推理过程——归纳和演绎归纳就是从个别到一般,演绎则是从一般到个别。1.归纳1)归纳的定义(从已知信息的共同属性中推导出结论)2)复合型信息的归纳法(对于复合型信息,要先提炼核心思想,再归纳出结论)【难点不是在归纳,而是提炼信息并归纳】3)归纳中避免“..

2022-05-16 23:08:45 1047

原创 如何快讲清楚一件事和它的价值(STAR原则)

STAR原则是情境(situation)、目标(target)、行动(action)、结果(result)四项的缩写。面谈、目标制定等过程中,比如给老板讲计划、写商业材料、晋升、面试等等场景,往往需要我们将一件事情重点背景、价值等表达清楚,这过程中STAR原则是一个不错的模板。首先,定义清楚问题类型What类问题关注结果,需要回答“做了什么事情 + 拿到什么结果”,时间在30秒以内,其中事情部分最好用3句话能够描述清楚,结果部分尽量用数据来描述;How类问题关注过程,需要回答“做事情..

2022-05-16 23:08:05 1953

原创 项目实施如何推动落地?(PDCA戴明环)

PDCA执行法就是把事情的执行过程分成四个环节:计划(Plan)、执行(Do)、检查(Check)和行动(Act),从而把控执行过程,保证具体事项高效高质地落地。PDCA循环的四个过程不是运行一次就完结,而是周而复始地进行。一个循环结束了,解决了一部分问题,可能还有问题没有解决,或者又出现了新的问题,再进行下一个PDCA循环,依此类推。1.计划环节确定具体任务、阶段目标、时间节点和具体责任人第1步:明确问题问题可以用三种方式之一来定义。第一种是,任何与标准有偏差的东西。第二种..

2022-05-16 23:07:35 1815

原创 如何设立清晰的可衡量的目标(SMART原则)

目标是你想带来的价值 想做的事与目标的联系有多强,抓主要矛盾,不能主观想当然(要进行调研论证) 目标要SMART: Specific具体的明确的、Measurable可衡量的、Attainable可达到的、Relevant相关的、Time-bound有期限的从捡垃圾说绩效目标主管:“小A,新一年的目标,你自己的想法呢?”小A:“主管,我的目标是去老和山捡垃圾。”主管:“不对不对,捡垃圾是你计划要做的事情,不是一个目标。目标是【你想带来的价值】。”小A:“捡垃圾的价值不是显而..

2022-05-16 23:07:17 743

原创 目标制定OKR比KPI有什么优势

最近看到越来越多的企业在启用OKR,我们团队也开始在试用,结合自己之前OKR的一些经历,浅谈一下我所理解的OKR与KPI的区别。kpi:关键绩效指标okr:目标与关键成果KPI的问题KPI:关键绩效指标它把公司的目标自上而下地分解,并且通过相关的关键绩效指标来衡量实际的执行效果。KPI的问题(曾经的确是比较先进的管理方法,但是到了今天缺点也很明显)首先,它只适合标准化的、目标稳定的工作。(技术创新就不适合用KPI来衡量了,因为创新有很大的不确定性,既不可能标准化,也不可能..

2022-05-16 23:06:54 1380

原创 业务关键路径最小成本试错《精益创业》

用户探索 (用户痛点假设、解决方案假设)1.用户需求:(常识判断、头脑风暴、找到天使用户、用户访谈 总结)刚需、痛点、高频2.解决方案:(判断是否贴合用户需求)1)深度观察、访谈、倾听用户2)感同身受,设计思考斯坦福设计思考5步:感同身受,定义问题与挑战,形成设想,塑造原型,实验迭代3)不急于推销解决方案4)不断探索,积累认知如何设计最小可行产品(MVP)1.用户排序:定位天使用户找出痛点最迫切,愿意尝试不完美新事物的天使用户天使用户基本...

2022-05-16 12:58:21 664 1

原创 通过用户生命周期理解业务数据(AAARR漏斗模型)

AARRR(主要用于toC,toB可参考)对应用户生命周期中的5个重要环节:获取、激活、留存、收益、推荐。因为每个环节都只有一部分用户会进入下一环节,整体生命周期呈现出漏斗形状,所以叫漏斗模型。AARRR模型的核心就是以用户为中心,以完整的用户生命周期为指导思想,分析用户在各个环节的行为和数据,以此来发现用户需求以及产品需要改进的地方。1. 获取(Acquisition)获取环节首先要做的就是触达用户,获取阶段的核心任务就是找到投入产出比最好的几个渠道。触达用户后,吸引用户进入产品是获取..

2022-05-16 12:54:29 1672

原创 研发如何快速理解业务?(5W1H8C1D)

理解业务能力 = 分析功能需求(5w1h) + 分析质量需求(8C) + 总结上线效果(1D)5W指的是:When(何时)、Where(何地)、Who(何人)、What(何事)、Why(何因),代表需求产生的背景和功能上线后的运行环境,类似于操作系统上下文(Context)的概念。为什么要特别关注需求的背景呢?有两个重要的原因:首先,客户需求背后的真正问题才是关键。其次,理解需求背景有助于设计更好的方案。When,代表和时间相关的信息Where,代表和地点相关的信息W..

2022-05-16 12:50:01 437

原创 各中间件的文件存储结构分析/mq/db/es

前言 说明 本文主要介绍几个高性能中间件的磁盘文件存储结构、存储逻辑等,从而学习它们的设计思路。 linux磁盘文件硬盘的最小存储单位是扇区(Sector,512B),块(block)由多个连续的扇区组成,块的最常见的大小是4kb(8个连续的扇区组成)。 磁盘读取的基本单位是扇区(物理层),而操作系统(文件管理系统)读写的基本单位是块(逻辑层)。 block:文件数据存储在块中,一个文件可能会占用多个块,但是一个块只能存放一个文件。 inode:linux/unix文件系统的基...

2022-05-15 19:32:12 1046

原创 Kafka原理解析

Kafka 是一个分布式流式处理平台。LinkedIn 最早开发 Kafka 用于处理海量的日志有很大关系,最开始就不是为了作为消息队列的,由于高性能,以及随着发展很多短板都被逐步修复完善,后面才在消息队列领域占据了一席之地。主要有两大应用场景:消息队列:建立实时流数据管道,以可靠地在系统或应用程序之间获取数据。 数据处理:构建实时的流数据处理程序来转换或处理数据流。Kafka架构基础结构Broker(代理): 可以看作是一个独立的 Kafka 实例。多个 Kafka ...

2022-05-12 22:42:31 639

原创 理解JDBC/JPA/Mybatis/Hibernate

JPA全称Java Persistence API,为POJO提供持久化标准规范,可以通过注解或者XML描述【对象-关系】之间的映射关系,并将实体对象持久化到数据库中。JPA是一套ORM规范,Hibernate实现了JPA规范!Spring Data JPA 可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现。JDBC和JPA的区别不同标准:jdbc是数据库的统一接口标准;jpa是orm框架的统一接口标准。 用法区别:jdbc更注...

2022-05-11 09:54:31 872

原创 Dubbo框架

SpringCloud与Dubbo的区别两者都是现在主流的微服务框架,但却存在不少差异:初始定位不同:SpringCloud定位为微服务架构下的一站式解决方案;Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用和治理 生态环境不同:SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏,现在逐渐丰富起来。 调用方式:SpringCloud是采用Http协议做远程调用,接口一般是Rest风格,比较灵活;Dubbo..

2022-05-11 09:47:18 552

原创 SpringCloud

Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快速应用于生产中。可以理解为它是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等操作,而 Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松..

2022-05-11 09:44:03 208

原创 SpringBoot

简介1.内置很多组件2.简化配置,自动配置Spring Boot是伴随着Spring4.0共同诞生的,它的目的就是简化spring的配置及开发,并协助开发人员可以整体管理应用程序的配置而不再像以前那样需要做大量的配置工作,它提供了很多开发组件,并且内嵌了web应用容器,如tomcat和Jetty等。其目的便是使我们的开发变得简化并且能大幅度提高开发人员的开发效率,为了简化Spring功能的配置我们可以引入或启动我们需要的Spring功能。这样做的好处就是避免开发人员过多的对框架的关注,而把更多的

2022-05-11 09:41:49 132

原创 Spring MVC / Webflux

SpringMVC流程前端控制器 DispatcherServlet:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度 处理器映射器 HandlerMapping:根据请求的URL来查找Handler 处理器适配器 HandlerAdapter:负责执行Handler 处理器 Handler:处理器,需要程序员开发 视图解析器 ViewResolver:进行视图的解析,根据视图逻辑名将ModelAndView解析成真正的视图(view)..

2022-05-11 09:39:56 299

原创 Spring核心组件和启动流程

1.Spring常用七大模块Spring Core:框架的最基础部分,提供 IoC 和DI 服务,对 bean 进行管理。 Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、EJB、电子邮件、国际化、定时任务等) Spring AOP:集成了所有AOP功能 Spring Web:提供了基础的 Web 开发的上下文信息,提供对常见框架如Struts2的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器 Spring

2022-05-11 09:37:22 214

原创 Netty基础及原理

为什么使用Netty,不直接用nio做得更多1.支持常用的应用层协议,如http、websocket2.解决了黏包半包问题、编解码3.支持流量控制等定制化功能(流量控制、黑名单等)4.具有完善的异常处理功能(网络闪断、拥塞等)做得更好1.更优秀更强大的工具和apiByteBuf - ByteBuffer (单个postion到双执行,不用每次flip,各种零拷贝)FastThreadLocal - ThreadLocal(使用index直接分配索引,避免hash冲..

2022-05-10 23:11:41 388

原创 分布式协调(配置/注册)

算法paxos、zab、raft服务注册与配置ZooKeeper、Eureka、Nacos、Consul、Etcd关于CP还是AP的选择:选择 AP,因为可用性高于一致性,所以更倾向 Eureka 和 Nacos;关于Eureka、Nacos如何选择,哪个让我做的事少,我就选择哪个,显然 Nacos 帮我们做了更多的事。【针对cp如果恢复很快,则也可以考虑cp】 技术体系:Etcd 和 Consul 都是Go开发的,Eureka、Nacos、Zookeeper 都是Java开发..

2022-05-08 19:52:14 992

原创 Tomcat主要结构和启动流程

Tomcat最重要的两部分——连接器(Connector)、容器(Container)。连接器负责对外交流,容器负责内部处理。单独的连接器或者容器都不能对外提供服务,需要把它们组装起来才能工作,组装后这个整体叫作Service组件。Service本身没有做什么重要的事情,只是在连接器和容器外面多包了一层,把它们组装在一起。Tomcat内可能有多个Service,通过在配置多个Service,可以实现通过不同的端口号来访问同一台机器上部署的不同应用。Tomcat为了实现支持多种I/O模型和应用层协议,..

2022-05-08 19:46:55 1168

原创 Tomcat是干嘛的

0.为什么来了解它(背景-冲突-疑问-答案)作为go/c++的程序员,学习java后,后端部署web应用基本都会碰到tomcat,查阅后说是web容器,跟nginx也不是一个品类,一下子还不太好理解这玩意儿。以往的认知中(go/c++)通常后端服务不是直接启动就可以了吗,启动后应用程序监听端口接收协议请求,处理请求后返回,为什么到了java还要一个web容器???仔细研究后发现,从设计解偶考虑,才有了web容器(tomcat/jetty等),具体逻辑看以下步骤:1.没有web容...

2022-05-08 19:43:17 3307

原创 《深入拆解Tomcat & Jetty》笔记

极客时间《深入拆解Tomcat & Jetty》笔记03_你应该知道的Servlet规范和Servlet容器1.HTTP服务器怎么知道要调用哪个Java类的哪个方法呢。最直接的做法是在HTTP服务器代码里写一大堆if else逻辑判断,HTTP服务器的代码跟业务逻辑耦合在一起了,如果新加一个业务方法还要改HTTP服务器的代码。2.那该怎么解决这个问题呢?面向接口编程是解决耦合问题的法宝,于是有一伙人就定义了一个接口,各种业务类都必须实现这个接口,这个接口就叫Servlet接口..

2022-05-08 19:37:42 369

原创 Java并发

volatileJava内存模型抽象了线程执行时CPU多级缓存与主存的关系,在当前的 Java 内存模型下,线程可以把变量保存本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。(Java 内存模型主要目的是为了屏蔽系统和硬件的差异,避免一套代码在不同的平台下产生的效果不一致)所以引入了volatile变量,使用时必须从主存加载,赋值时必须写回主存。volatil..

2022-05-08 19:30:07 132

原创 Java容器/集合

注意:juc并发容器,以及Vector/Stack/HashTable,都只是单一操作保证线程安全,但是多线程同时复合操作是有安全性问题的。比如:v.remove(v.size() - 1) 是复合操作,可能A线程执行了删除,B线程拿到的size已经变了,导致越界异常;for循环访问同理。interface ListArrayList LinkedList Vector CopyOnWriteArrayListVector(数组,已不建议使用)[线程安全]所有公有方法..

2022-05-08 19:24:11 386

原创 《深入理解java虚拟机》笔记

====================================第二部分 自动内存管理机制====================================第2章 Java内存区域与内存溢出异常1.运行时数据区域程序计数器 [线程独立] 虚拟机栈、本地方法栈(有的虚拟机是合二为一) [线程独立] 元数据区(类、方法、静态变量、常量) jdk1.7及之前称为方法区 堆区 直接内存2.HotSpot虚拟机对象揭秘对象创建过程:类加载检查 ->

2022-05-08 19:19:34 177

原创 《Thinking in java》笔记

《thinking in java》引发的思考关于java面向对象的思考——抽象、并发thinking in java中1.1抽象过程的描述问题空间——>解空间的映射(所有问题最终都是列表,所有问题最终都是算法,面向对象)对象是现实世界的抽象,到解空间中很好表述难点:如何在问题空间的元素 到 解空间的对象之间创造一一对应的映射java中的不足——interface、abst?、 (1.必须先定义最高层[或者使用适配器方式] 2.类似的类如何高效的相互复用[比如...

2022-05-08 19:17:26 845

原创 负载均衡LB

dns、lvs、haproxy、keepalived、nginx负载均衡系统,通常用于将任务(比如用户请求)分配到多个服务器处理,以提高网站、应用或者数据库的性能和可靠性。负载均衡(即任务分配器)分类dns负载均衡:按地域负载均衡到不同的数据中心 或 同机房多ip入口 硬件负载均衡:同一中心负载均衡到各个集群 F5(2-800w/s 特贵) A10(...) 软件负载均衡:集群内负载均衡到不同节点 lvs(4层 80w/s) nginx(7层 5w/s 虽然nginx现在支持4层但用..

2022-05-08 19:08:55 172

原创 PostgreSQL基础和原理

丰富的数据类型数字 字符 数组类型int[] / text[] / int[][] json/jsonb类型 xml类型 货币类型money 日期date/time/timestamp 布尔boolean 空间几何类型point/line/box/path/circle等 网络地址类型inet/macaddr 位串bit uuid类型 复合类型CREATE TYPE complex AS(a int, b int) 范围类型int4range/numrange/datera..

2022-05-08 19:05:13 2661

原创 RocketMQ基础及原理

前言消息队列带来的好处 通过异步处理提高系统性能(减少响应所需时间) 削峰/限流 降低系统耦合性 消息队列带来的问题 系统可用性降低:在加入 MQ 之前,你不用考虑消息丢失或者说 MQ 挂掉等等的情况,但是,引入 MQ 之后你就需要去考虑了! 系统复杂性提高:加入 MQ 之后,你需要保证消息没有被重复消费、处理消息丢失的情况、保证消息传递的顺序性等等问题! 一致性问题:(消费失败、重复消费、顺序消费)消息队列是异步的,当消息没有被...

2022-05-05 23:27:59 857

原创 Redis基础及原理

简介使用场景 数据缓存 分布式锁(setnx) 全局ID(incr) 计数器/限流(incr) 位统计(bitmap) 时间线timeline(list) 消息队列:List提供了两个阻塞的弹出操作:blpop/brpop,可以设置超时时间 抽奖:自带一个随机获得值:spop myset 点赞、签到、打卡(set) 商品标签(set) 商品筛选:获取差集:sdiff set1 set2;获取..

2022-05-05 23:16:30 222

原创 MySQL基础和原理

字符编码MySQL 字符编码集中有两套 UTF-8 编码实现: utf8:utf8编码只支持1-3个字节 。 在utf8编码中,中文是占 3 个字节,其他数字、英文、符号占一个字节。但 emoji 符号占 4 个字节,一些较复杂的文字、繁体字也是 4 个字节。【mysql4.1时支持utf8,当时utf8还是草案,要求最多3个字节】 utf8mb4: UTF-8 的完整实现,正版!最多支持使用 4 个字节表示字符,因此,可以用来存储 emoji 符号。 一、索引...

2022-05-05 23:01:31 204

原创 ElasticSearch基础和原理

简介Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Lucene是apache软件基金会 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西

2022-05-05 22:49:15 1495

原创 计算机内存管理

常见内存管理机制 块式管理:远古时代的计算机操系统的内存管理方式。将内存分为几个固定大小的块,每个块中只包含一个进程。 页式管理:把主存分为大小相等且固定的一页一页的形式,页较小,相对相比于块式管理的划分力度更大,提高了内存利用率,减少了碎片。页式管理通过页表对应逻辑地址和物理地址。 段式管理:页式管理虽然提高了内存利用率,但是页式管理其中的页实际并无任何实际意义。 段式管理把主存分为一段段的,段是有实际意义的,每个段定义了一组逻辑信息,例如,有主程序段 MAIN、子程序段 X、数

2022-05-05 22:33:34 397

原创 网络编程Epoll/Poll/Select详解

在这些开源项目中都有使用(redis、memcached/libevent、nginx)Linux 文件描述符 linux中一切都是文件(普通文件、目录文件、链接文件、设备文件。。。) 其中文件描述符fd(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其值是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行 I/O 操作的系统调用都通过文件描述符。 例如命令(g++ lots_of_errors 2>&1 | he..

2022-05-05 22:29:40 237

原创 HTTP请求过程HTTPS/TLS原理

HTTP请求过程,HTTPS/请求过程,TLS原理

2022-05-04 12:49:30 1626

原创 TCP报文结构/三次握手/四次挥手/滑动窗口/拥塞控制

tcp报文结构介绍,三次握手、四次挥手等原理

2022-05-04 12:46:35 512

原创 布隆过滤器、布谷过滤器

布隆过滤器及用途

2022-05-04 12:37:09 371

原创 索引的选择B树/B+树/B*树/LSM树

B树多路平衡树,比二叉的查找次数少很多,做数据库索引时就能减少磁盘IOB+树(SQL索引存储结构)叶子节点才存数据,并有指向相邻兄弟节点的指针;B+树的高度一般为2-4层,叶子节点存储的数据通常是一页(默认16k)或一页的整倍数(MySQL每次读取都是读一页)。B*树非叶子节点也有指向相邻兄弟节点的指针跳表很像B*树,它是平衡树的一种替代的数据结构,跳表对于树的平衡的实现是基于一种随机化的算法的,没有那么多约束,也就是说跳表的插入和删除的工作是比较简单的。LSM树(用于HBase,Leve

2022-05-04 12:33:32 434

原创 Docker网络原理

k8s快速安装脚本,k8s集群二进制安装方法,不使用kubeamin,官方对kubeadmin的解释是不适用于大规模集群,仅用于快速搭建测试集群(截止目前v1.10,不清楚未来是什么态度)。

2022-05-04 12:13:30 512

原创 docker swarm 覆盖网络 v1.12

创建覆盖网络$ docker network create \ --driver overlay \ --subnet 10.0.9.0/24 \ --opt encrypted \ my-network273d53261bcdfda5f198587974dae3827e947ccd7e74a41bf1f482ad17fa0d33默认集群中的节点会加密自己与其他节点的通信,--opt encrypted 指定不同节点间容器通信另附加加密层。--subnet指定网络子网,若不指定

2022-05-04 12:10:07 1057

MirrorDriver屏幕录像

基于MirrorDriver实现的屏幕录像软件,不是MirrorDriver的源码哈。

2015-12-05

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

TA关注的人

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