• 博客(15)
  • 收藏
  • 关注

原创 产品高阶能力:架构图的设计与画法

今天作者和大家分享的是产品架构图的设计与画法,架构图将可视化的具象产品和服务,抽象成信息化、模块化、层次结构以及关联关系清晰的架构,并通过不同分层的交互关系、功能模块的组合、数据和信息的流转,来传递产品的业务流程、商业模式和设计思路。文章结构:基于抽象和复杂对产品架构图的一些思考;产品架构图的设计思考与画法。一、基于抽象和复杂对产品经理个人能力的一些思考日常的工作中,假如你身边坐了一个女程序猿,为...

2021-05-28 09:49:56 303

原创 Spring中毒太深,离开Spring我居然连最基本的接口都不会写了

随着 Spring 的崛起以及其功能的完善,现在可能绝大部分项目的开发都是使用 Spring(全家桶) 来进行开发,Spring也确实和其名字一样,是开发者的春天,Spring 解放了程序员的双手,而等到 SpringBoot出来之后配置文件大大减少,更是进一步解放了程序员的双手,但是也正是因为Spring家族产品的强大,使得我们习惯了面向 Spring 开发,那么假如有一天没有了 Spring,...

2021-05-25 10:58:38 118

原创 美团面试题:缓存一致性,我是这么回答的!

前言一道之前的面试题:如何保证缓存和数据库的一致性?下面介绍几种方案(大家回答的时候最好根据自己的业务,结合下面的方案)文章较长,可以点赞在看方案分析更新缓存策略方式常见的有下面几种:先更新缓存,再更新数据库先更新数据库,再更新缓存先删除缓存,再更新数据库先更新数据库,再删除缓存下面一一介绍!方案一:更新缓存,更新数据库这种方式可轻易排除,因为如果先更新缓存成功,但是数据库更新失败,则肯定会造成数...

2021-05-24 11:53:34 346

原创 使用Spring 原生注解来快速实现 策略模式 + 工厂模式

前言这阵子在做项目组重构的工作,工作中的一部分就是就目前代码库中与企业交互的逻辑抽离出来,单独做一个微服务,实现企业交互逻辑的关注点分离。在这里面我很自然而然的就用到了策略模式 + 工厂模式的方式,包装内部实现细节,向外提供统一的调用方式,有效的减少if/else的业务代码,使得代码更容易维护,扩展。之前看过一些文章,是使用自定义注解+自动BeanProcessor的方式来实现,个人感觉有点麻烦。...

2021-05-21 10:09:29 224

原创 还在写大量 if 来判断?试试用一个规则执行器来替代它

业务场景近日在公司领到一个小需求,需要对之前已有的试用用户申请规则进行拓展。我们的场景大概如下所示:if (是否海外用户) { return false;}if (刷单用户) { return false;}if (未付费用户 && 不再服务时段) { return false}if (转介绍用户 || 付费用户 || 内推用户) { return ...

2021-05-18 10:38:58 207

原创 Java中对象池的本质是什么?(实战分析版)

简介对象池顾名思义就是存放对象的池,与我们常听到的线程池、数据库连接池、http连接池等一样,都是典型的池化设计思想。对象池的优点就是可以集中管理池中对象,减少频繁创建和销毁长期使用的对象,从而提升复用性,以节约资源的消耗,可以有效避免频繁为对象分配内存和释放堆中内存,进而减轻jvm垃圾收集器的负担,避免内存抖动。Apache Common Pool2 是Apache提供的一个通用对象池技术实现,...

2021-05-18 10:25:44 507 1

原创 方法调用:一看就懂,一问就懵?

方法调用是不是很熟悉?那你真的了解它吗?今天就让我们来盘一下它。首先大家要明确一个概念,此处的方法调用并不是方法中的代码被执行,而是要确定被调用方法的版本,即最终会调用哪一个方法。class字节码文件中的方法的调用都只是符号引用,而不是直接引用(方法在实际运行时内存布局中的入口地址),要实现两者的转化,就不得不提到解析和分派了。解析我们之前说过在类加载的解析阶段,会将一部分的符号引用转化为直接引用...

2021-05-14 11:12:25 305

原创 MySQL分表时机:100w?300w?500w?都对也都不对!

导读以交友平台用户中心的user表为例,单表数据规模达到千万级别时,你可能会发现使用用户筛选功能查询用户变得非常非常慢,明明查询命中了索引,但是,部分查询还是很慢,这时候,我们就需要考虑拆分这张user表了。如果此时,我们才去做分表,可能已经太晚了,为什么呢?我以最典型的应用场景:用户筛选功能,以查询年龄在18到24岁的100位女性用户为例:在单表的情况下,我们的SQL是这么写的:SELECT *...

2021-05-14 10:49:55 331

原创 异步编程的几种方式,你知道几种?

近期尝试在搬砖专用语言 Java 上实现异步,起因和过程就不再详述了,总而言之,心中一万头草泥马奔过。但这个过程也没有白白浪费,趁机回顾了一下各种异步编程的实现。这篇文章会涉及到回调、Promise、反应式、async/await、用户态线程等异步编程的实现方案。如果你熟悉它们中的一两种,那应该也能很快理解其他几个。为什么需要异步?操作系统可以看作是个虚拟机(VM),进程生活在操作系统创造的虚拟世...

2021-05-13 11:17:41 341

原创 Switch竟然会报空指针异常,学到了!

前言前几天重新看 《阿里巴巴Java开发手册》有一条这样的规约:出于好奇,打算研究一下!,强迫症,没办法!我们先用一个案例测试一下:public class Test { public static void main(String[] args) { String param = null; switch (param) { cas...

2021-05-12 10:29:14 1613

原创 在项目中使用c3p0作为数据库连接池,被技术总监怼了

一、介绍数据库连接是一项非常关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。记得之前做的一个项目,当时的应用程序配置的c3p0数据库连接池,最大允许的连接数是500,结果上线没多久,并发量直接上来了,导致大量的数据插入失败,当晚的心情可想而知~从那一次事故之后,让我对应用程序的数据库连接数有了一次深刻的认识,为了防止再次栽跟头,特意抽了一个时间来编写程序测试案例,用于测试...

2021-05-12 10:00:15 248

原创 SpringCloud 微服务开发JWT认证流程

在微服务开发中中我们首先会通过认证中心获取JWT,然后每次发起后端请求都会将JWT放在请求头中,这时候我们后端需要对这个JWT进行验证判断是否合法及是否有对应请求权限,这一过程主要有两种方案:服务端自主验签方案API网关统一验签方案服务端自主验签方案首先咱们来看服务端验签的架构图。首先梳理下执行流程:第一步,认证中心微服务负责用户认证任务,在启动时从 Nacos 配置中心抽取 JWT 加密用私钥;...

2021-05-11 10:41:06 611

原创 害怕面试被问HashMap?这一篇就搞定了!

搞定HashMap作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java==集合中的精髓==了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白白的,没有足够的内力怕是一时半会...

2021-05-10 10:15:04 174

原创 关于主从延迟,一篇文章给你讲明白了!

生活中所受的苦,终会以一种形式回归!前言在实际的生产环境中,由单台MySQL作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面因此,一般来说都是通过集群主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力进行部署与实施总结MySQL主从集群带来的作用是:提高数据库负载能力,主库执行读写任务(增删...

2021-05-08 10:12:14 483 2

原创 10分钟!搞定分布式事务的来龙去脉

本地事务事务Transaction由一组SQL组成,具有四个ACID特性ACIDAtomicity 原子性 构成事务的一组SQL,要么全部生效,要么全不生效,不会出现部分生效的情况Consistency 一致性 数据库经过事务操作后从一种状态转变为另一个状态。可以说原子性是从行为上描述,而一致性是从结果上描述isolation 隔离性 事务操作的数据对象 相对于 其他事务操作的数据对象相互隔离,互...

2021-05-07 09:47:12 148

空空如也

空空如也

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

TA关注的人

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