<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[eric1984的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/eric1984</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; eric1984]]></copyright><item><title><![CDATA[git rebase研究]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/142209704</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/142209704</guid><author>eric1984</author><pubDate>Fri, 13 Sep 2024 14:10:46 +0800</pubDate><description><![CDATA[3》重置当前分支的提交历史，使它和dev分支的提交历史保持一致，即：原本只出现在dev分支上的提交记录c1，现在也出现在了当前分支上；1》找到当前分支和dev分支各自的最新提交c1和c2；然后从c1和c2开始向前回溯，找到它们在提交历史上的“共同祖先”c0；4》在这个基础上，然后再逐一追加只在当前分支上出现的提交记录，比如：c2，整个过程才算结束。2》把当前分支上从c0往后的每个提交记录和c0进行对比，并把对比结果存到临时文件里；一、把别的分支的commit顺序迁移到当前分支（重建基线），线性化提交历史。]]></description><category></category></item><item><title><![CDATA[DCI架构的理解]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/128003920</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/128003920</guid><author>eric1984</author><pubDate>Wed, 23 Nov 2022 17:05:52 +0800</pubDate><description><![CDATA[/ DCI，app层与domain层之间有了一个role的桥廊，app（context）不会耦合特别多的属性，只耦合少部分的行为。对聚合根的直接耦合，变成了对角色的使用。DDD里聚合根同时实现类的属性和方法，容易出现上帝类；传统的ddd架构，领域层是纯oop模型，应用层使用领域层的聚合根来完成业务，DCI是把。总结：app与domain层中间，添加一层role，用来切分聚合根。// context里面仅依赖角色，不直接依赖聚合根Person。// 纯DDD，聚合根是铁板一块，容易形成上帝类。]]></description><category></category></item><item><title><![CDATA[关于js的屏幕分辨率适配]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/127367510</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/127367510</guid><author>eric1984</author><pubDate>Mon, 17 Oct 2022 16:47:09 +0800</pubDate><description><![CDATA[5、显示效果：默认js不做任何自适应的时候（位置和大小都是固定像素值），os放大控件大小时，os的控件都放大了，chrome全屏时自己做了自适应，保证不会超出屏幕。html的渲染区域变大了，html里面的字体放大了，相对位置变大了，但是屏幕分辨率不变，所以导致部分内容会超出屏幕范围，需要左右拖拽来显示。3、操作系统的控件大小伸缩：操作系统会在默认屏幕分辨率的基础上，做大小的伸缩，操作系统提供的控件会做伸缩的自适应：分辨率变大时，字体和控件会等比例放大。2、显示器分辨率 硬件的分辨率，不一定和大小正相关。]]></description><category></category></item><item><title><![CDATA[springdata jdbc设计理念]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/126670450</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/126670450</guid><author>eric1984</author><pubDate>Fri, 02 Sep 2022 21:04:24 +0800</pubDate><description><![CDATA[多对多的关系数据结构上用2个聚合实现，领域函数上使用实体。// 领域服务是添加作者，数据结构是存储关联关系。DDD里的核心关系，1、聚合  2、关联。]]></description><category></category></item><item><title><![CDATA[JVM GC]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/126589622</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/126589622</guid><author>eric1984</author><pubDate>Mon, 29 Aug 2022 17:49:20 +0800</pubDate><description><![CDATA[GC最佳实践]]></description><category></category></item><item><title><![CDATA[关于数据湖 数据仓库和湖仓一体]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/122866677</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/122866677</guid><author>eric1984</author><pubDate>Thu, 10 Feb 2022 18:14:47 +0800</pubDate><description><![CDATA[1、数据仓库：传统的数仓ETL建模和分析处理
2、数据湖：基于原始的半结构化、非结构化数据，使用分布式的计算任务进行分析和处理，不是基于良好建模的数仓，强调数据的动态模型、原始的数据
3、湖仓一体：数据就是一份，底层是企业的全部数据，包括结构化、半结构化、非结构化，中间通过统一的加工处理直接支撑上层所有仓的应用(BI、报表以及湖的应用)，不再需要ETL连通（原来是存储2份数据，1份是原始的，1份是ETL之后的），数据能够直接用来进行分析。

4、胡仓一体技术实现方案：
1》Snowflake（分布式并行计算]]></description><category></category></item><item><title><![CDATA[dataql的内部实现]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/120532040</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/120532040</guid><author>eric1984</author><pubDate>Tue, 28 Sep 2021 16:25:03 +0800</pubDate><description><![CDATA[1、整体是自定义了一门dsl，并实现了指令集和执行器
2、核心数据结构
QueryModel 语法树  QIL 指令集 Query：整体dsl解析执行的门面 DataModel：通用数据类型，可以解包成具体的object list 原子类型等
UDF （User-Defined Function）用户定义函数，mysql的udf是用c写的，dataql的udf是用java写的（注册后可以在脚本中使用）
3、运行时核心逻辑
QueryResultImpl QueryImpl.execute(Custom...]]></description><category></category></item><item><title><![CDATA[mysql的锁 和可重复读 RR的实际业务场景与实际意义]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/118001807</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/118001807</guid><author>eric1984</author><pubDate>Thu, 17 Jun 2021 20:58:52 +0800</pubDate><description><![CDATA[mysql的锁
锁的颗粒度，决定并发度和速度
InnoDB的行锁是针对索引加的锁，不是针对记录加的锁。并且该索引不能失效，否则都会从行锁升级为表锁；

rr的业务场景：多个相关的查询，同时取出来使用，并且要保证业务含义一致
1》 对数。 上个月的余额，本月的账单（3个结果），当前的余额（修改了1个结果），正常应该是上月余额-本月账单==当前余额，现在因为2次读时，差了1个更新事务，所以对不上了
2》 汇总数额不对。同一个事务内，先查详情，后聚合count，详情加起来和count返回的结果不一致
3》

..]]></description><category></category></item><item><title><![CDATA[nginx 常用配置]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/118001124</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/118001124</guid><author>eric1984</author><pubDate>Thu, 17 Jun 2021 20:19:13 +0800</pubDate><description><![CDATA[多进程模型：master负责管理，worker负责处理连接和http请求
sendfile：从默认的 磁盘--内核（read文件）--用户态--内核（write数据）--协议栈，变成磁盘--内核--协议栈

upstream 定义后端的多个服务器地址

server {
    listen    80 default_server; # 域名不匹配时的默认server
    listen    [::]:80 default_server;
    server...]]></description><category></category></item><item><title><![CDATA[postman学习]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/117993086</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/117993086</guid><author>eric1984</author><pubDate>Thu, 17 Jun 2021 14:31:02 +0800</pubDate><description><![CDATA[1、全局变量 环境变量 测试集变量
{{variable}}

2、测试脚本
pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
3、发送前的脚本
pm.globals.set("filter", "user-1");

4、工作流 用test脚本来实现
postman.setNextRequest('Postman Echo PUT')
5、取出数据塞入全局变量
var jsonData = pm]]></description><category></category></item><item><title><![CDATA[关于mysql的 mvcc和read view]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/117982524</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/117982524</guid><author>eric1984</author><pubDate>Thu, 17 Jun 2021 09:52:58 +0800</pubDate><description><![CDATA[RR隔离级别下，整个事务开始时创建1个read view，后面的事务提交的结果，不会体现在读的结果里。
RC隔离级别下，每个快照读，都会生成新的read view。

mysql的所有的快照读，都不保证读到最新的结果，因为都不会加锁
...]]></description><category></category></item><item><title><![CDATA[分布式session cas oauth2区别]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/116663673</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/116663673</guid><author>eric1984</author><pubDate>Tue, 26 Jan 2021 17:42:09 +0800</pubDate><description><![CDATA[不同公司）之间集成的场景。cas的本质是多个系统在一个集中的地方进行认证。
3、oauth2：本质是协调用户、平台、第三方之间的权限的关系。解决的是开放平台开放自己的能力的问题，比如微信开放自己的账号体系，但是不会直接给原始的用户名和密码，而是使用与用户名、密码等效的token的机制，来让第三方使用。
区分授权码和令牌的原因：用授权码获取令牌时，需要传递和server之间事先约定好的密码，用来验证换取token的客户端
]]></description><category></category></item><item><title><![CDATA[spring session 原理]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/116663670</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/116663670</guid><author>eric1984</author><pubDate>Tue, 26 Jan 2021 15:22:33 +0800</pubDate><description><![CDATA[apSession
4、web socket的支持
5、DefaultCookieSerializer 通过cookie来传输sessionid
6、HttpSessionAdapter 修改了标准servlet的HttpSession
spring-session-data-redis：redis做后端存储
核心类是RedisOperationsSessionRepository
 
使用header传递session：
 @Bean
    public HeaderHttpSessi]]></description><category></category></item><item><title><![CDATA[antd的默认配置]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/116663667</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/116663667</guid><author>eric1984</author><pubDate>Mon, 11 Jan 2021 15:32:53 +0800</pubDate><description><![CDATA[之后，自动处理
]]></description><category></category></item><item><title><![CDATA[mybatis plus的插件扩展]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/116663663</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/116663663</guid><author>eric1984</author><pubDate>Fri, 27 Nov 2020 16:38:10 +0800</pubDate><description><![CDATA[ 参数映射 结果映射
 
二、mybatis的映射器
MappedStatement = SqlCommandType（CRUD的类别）+SqlSource+ParameterMap+ResultMap+BoundSql
SqlSource：原始xml中设置的sql语句，还没有解释loop等语义
BoundSql: loop、while等语义处理完之后的语句，一般带？和参数等信息
BoundSql = sql（语句）+ parameterObject（入参） + ParameterMapping]]></description><category></category></item><item><title><![CDATA[spring容器内置的事件的顺序和说明]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/116663660</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/116663660</guid><author>eric1984</author><pubDate>Wed, 11 Nov 2020 10:39:11 +0800</pubDate><description><![CDATA[好了
3、ApplicationContextInitializedEvent context上下文本身创建和初始化好了，ApplicationContextInitializer都已经执行了
4、ApplicationPreparedEvent 容器完全准备好了，但是bean definition还没有加载
refresh() --- 具体的注入bean
5、ApplicationStartedEvent 初始化完成
6、ApplicationReadyEvent 处在运行中了
]]></description><category></category></item><item><title><![CDATA[数据开发 数据服务 数据中台]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/116663658</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/116663658</guid><author>eric1984</author><pubDate>Mon, 21 Sep 2020 17:51:05 +0800</pubDate><description><![CDATA[据服务：
根据配置，自动的生成对应的通用查询接口，并发布到api网关，解决的是怎么把表映射成接口的问题
 
数据中台：基于同一的平台，开发了众多的数据服务，当有新的需求时，可以直接组合使用已有的实现。比如，组合使用 查询天气、物流单号、发货单等，实现对收货人的提醒。
]]></description><category></category></item><item><title><![CDATA[几种分布式事务技术的比较]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/116663655</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/116663655</guid><author>eric1984</author><pubDate>Fri, 04 Sep 2020 18:20:46 +0800</pubDate><description><![CDATA[的表），但是保证强一致性。
2、TCC：需要改造业务逻辑，手动实现 try的锁定的功能。对业务侵入很强。
3、saga：默认执行成功，在需要的时候，再回调cancel。已经提交的事务，不保证隔离性。
4、seata：对于update insert delete自动生成回滚的sql，需要时进行回滚，但是不保证数据的强一致性，回滚时会导致脏读（回滚和提交是2个本地的事务）

5、lcn：发起方最后成功，触发各个阶段的真正提交。不会脏读，性能介于seata和2阶段之间。但是发起方挂了，会导致 数据不一]]></description><category></category></item><item><title><![CDATA[MongoDB动态代理]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/116663653</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/116663653</guid><author>eric1984</author><pubDate>Fri, 15 May 2020 09:42:35 +0800</pubDate><description><![CDATA[mpleMongoRepository
对于findByXXX的解析在
org.springframework.data.repository.core.support.RepositoryFactorySupport.QueryExecutorMethodInterceptor
 
]]></description><category></category></item><item><title><![CDATA[MongoDB 数据建模]]></title><link>https://blog.youkuaiyun.com/eric1984/article/details/116663649</link><guid>https://blog.youkuaiyun.com/eric1984/article/details/116663649</guid><author>eric1984</author><pubDate>Wed, 13 May 2020 15:21:09 +0800</pubDate><description><![CDATA[
m:n 使用reference ，关联表， 更新等要保证事务性
 
二、模型例子
1、电商建模： https://blog.youkuaiyun.com/wanght89/article/details/77197400
product和分类
{
   slug:&quot;wheel-barrow-9092&quot;,
   sku:&quot;9092&quot;,
   name:&quot;Extra Large Wheel Barrow&quot;,
   description:&q]]></description><category></category></item></channel></rss>