GRC (二)

昨天姑且算是完成了GRC的开发. push这个命令不是很想加,想了一下也没有必要. GRC的0.8.0版本昨天算是发布了, 应该也算是头一次正经的用Rust来开发软件. 在crate.io上看起来有100的安装了. 不知道他们脸上是什么表情 wwww ...

2020年10月01日 · 1 分钟 · 252 字 · sdttttt

GRC (一)

ooo! 一个不错的消息. 目前GRC的commit规范的功能已经完全实现了. 之前还说要几个星期, 看来比我想得要快很多 👴勤勉 基本上已经和git-cz有着完全一致的功能. 我也已经把GRC发布在了crates.io网站上. 在crates.io上搜索grc就能看到. 同时我也在v2ex上写了关于GRC的文章. ...

2020年09月26日 · 1 分钟 · 202 字 · sdttttt

sraft (二)

昨天草草的完成了通信协议适配器, 至少能做到自由切换协议, 纵看整个编程模型还是有缺陷, StateMachine的内部结构比我想的要复杂的多, 多个状态实现的切换,以及对一些内部事件的触发. StateMachine模块的密度和其他模块完全不同. 反而RaftKernel存在的意义却减小了. ...

2020年09月22日 · 1 分钟 · 359 字 · sdttttt

Sraft (一)

今天开始算是正式编写Sraft这个库, 开发的原因有两个: 我需要通过这次开发来熟悉Raft这个协议.(以后面试或者和人攀谈也更有底气) 我的微服务框架的服务中心需要一个能达成分布式一致性的功能. 语言采用的是Go, 目前的编程模型大概也完成了, 下面我来介绍: ...

2020年09月21日 · 2 分钟 · 506 字 · sdttttt

2020-9-19

目前还是个5月份刚毕业的应届生, 今年还是撞到了疫情这个时间口上, 工作真是相当的难找, 6月到7月的样子, 我去尝试去考驾照, 目前还在科目二这边卡着, 中间有空也是各种找单位去面试. 比较幸运, 我在8月初的时候收到了来自安恒信息的面试通知, 他们是一家上市公司, 规模也不小, 我也是被别人内推才有这个面试资格的, 面试一共三轮, 前两轮技术面试, 最后一轮综合面试, 第一轮技术面试大概就是问了我一些JVM原理, 以及编码思路, 还有一些我比较擅长的分布式存储的问题. 第一轮过的呢也还算惊险. 第二轮是在几天后, 问的内容基本上是一些JDK源码, 数据结构, 还有一些框架问题.我回答的还算是流畅, 也算是过了.可惜,最后一轮面试之前,因为安恒不招收985,211以外的应届生, 所以我被淘汰了. ...

2020年09月19日 · 2 分钟 · 995 字 · sdttttt

FAQ

以前一些小白经常问我的问题. Q: 我想自己建立一个网站, 我应该使用什么技术? A: Ruby on Rails. ROR是一款老牌的WEBMVC框架, 到现在有10多年的历史了. 在中国, ROR使用的并不多, 这并不能说明它不优秀, ROR拥有非常多的功能模块, 几乎没有ROR做不到的. 论开发效率,ROR绝对能满足你, Ruby这个语言, 如果你有去学过, 会发现他的语法非常的随意. 自己造一个语法Ruby都能支持, 我认为, Ruby是在所有语言中开发体验最好的语言. 良好的开发体验加上优秀的开发效率, ROR是值得你去使用的. ...

2020年09月19日 · 1 分钟 · 259 字 · sdttttt

MyBatis 源码分析

其实很早就想写一篇 iBatis 的源码分析了, 不过有段时间去学习 Go 了, Java 就放下了, 最近 重新捡起 Java 就把以前没填的坑,填一下. Init 现在开始正片. 首先是 iBatis 的初始化工作.我们看下面的代码: 1// `BlogDataSourceFactory`的主要作用: 通过你的配置文件, 初始化一个DataSource 2DataSource dataSource = BlogDataSourceFactory.getBlogDataSource(); 3// JdbcTransactionFactory一个New就能得到, 没什么依赖条件 4TransactionFactory transactionFactory = new JdbcTransactionFactory(); 5// Environment要你交出数据源和事务工厂还有你的环境是开发还是生产 6Environment environment = new Environment("development", transactionFactory, dataSource); 7// Configuration有基本上你所有的配置 8Configuration configuration = new Configuration(environment); 9// 添加你的mapper到配置列表中, 等会我们去分析它 10configuration.addMapper(BlogMapper.class); 11// 通过你的配置类,让我们初始化一个SqlSessionFactory! 我们终于进入正题了!! 12// 可能你觉得很快... 其实本人在这里面分析还是花了很长时间 13SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration); 好, 上文有说configuration.addMapper(BlogMapper.class)这个方法, 现在我们来分析一下它. ...

2020年09月10日 · 9 分钟 · 4031 字 · sdttttt

GoSyncPool

今天在看Sentinel-golang源码的时候发现sentinel在内部使用了sync.Pool该结构体.看到Sync和Pool的我第一反应想到应该是线程池之类的东西.在实际看过原理之后发现并不是这样的. ...

2020年09月03日 · 2 分钟 · 578 字 · sdttttt

B Tree

这篇文章以数据库存储的数据结构来引出本文的重点B树,以及后面还有另一种数据结构B+树. 试想, 如果你想持久化大量的数据在硬盘上, 同时还希望能高效的查询和修改他们, 你会怎么做, 使用哪种数据结构. 数组和链表, 他们的缺点很明显, 我们寻找数据需要遍历整个数据结构, 试想一下你的数据库中有50PB的数据, 这个开销是我们无法接受的. ...

2020年08月30日 · 2 分钟 · 999 字 · sdttttt

Blog Upgrade

这几天修改了这个Blog的主题, 加载速度应该是更快了, 而且优化了整个项目的自动部署. 取消了双仓库的部署策略, 在部署任务的执行上也用上了异步. 现在每次修改完成后的生成以及部署的速度比以前快了大概40%左右.但是访问Github Page的速度还是一如既往的的满.

2020年08月29日 · 1 分钟 · 129 字 · sdttttt