加载中
为自己搭建一个分布式 IM(即时通讯) 系统

前言 大家新年快乐! 新的一年第一篇技术文章希望开个好头,所以元旦三天我也没怎么闲着,希望给大家带来一篇比较感兴趣的干货内容。 老读者应该还记得我在去年国庆节前分享过一篇《设计一个...

2019/01/02 08:07
2.4W
设计一个百万级的消息推送系统

前言 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两...

如何成为一位「不那么差」的程序员

前言 已经记不清有多少读者问过: 博主,你是怎么学习的?像我这样的情况有啥好的建议嘛? 也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。 因此也许诺...

HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!

前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它...

2018/07/23 08:20
2.2W
一个学渣的阿里之路

前言 最近有些朋友在面试阿里,加上 Java-Interview 项目的原因也有小伙伴和我讨论,近期也在负责部门的招牌,这让我想起年初那段长达三个月的奇葩面试经历。 本来没想拿出来说的,毕竟最后也...

2018/06/22 08:18
9.8K
秒杀架构实践

前言 之前在 Java-Interview 中提到过秒杀架构的设计,这次基于其中的理论简单实现了一下。 本次采用循序渐进的方式逐步提高性能达到并发秒杀的效果,文章较长请准备好瓜子板凳(liushuizhang...

2018/05/09 08:41
8.5K
动手实现一个 LRU cache

前言 LRU 是 Least Recently Used 的简写,字面意思则是最近最少使用。 通常用于缓存的淘汰策略实现,由于缓存的内存非常宝贵,所以需要根据某种规则来剔除数据保证内存不被撑满。 如常用的 ...

2018/04/08 11:19
2K
基于 Redis 的分布式锁

前言 分布式锁在分布式应用中应用广泛,想要搞懂一个新事物首先得了解它的由来,这样才能更加的理解甚至可以举一反三。 首先谈到分布式锁自然也就联想到分布式应用。 在我们将应用拆分为分布...

2018/04/02 10:01
4.2K
手写编程语言-实现运算符重载

前言 先带来日常的 GScript 更新:新增了可变参数的特性,语法如下: int add(string s, int ...num){ println(s); int sum = 0; for(int i=0;i<len(num);i++){ int v = num[i]; sum = sum+v...

09/19 07:56
18
里程碑!用自己的编程语言实现了一个网站

前言 在上一篇《终于实现了一门属于自己的编程语言》 介绍了自己写的编程语言 GScript ,在文中提到希望最终可以使用 GScript 开发一个网站。 到目前为止确实是做到了,首页地址: https://...

09/14 06:28
9.2K
终于实现了一门属于自己的编程语言

前言 都说程序员的三大浪漫是:操作系统、编译原理、图形学;最后的图形学确实是特定的专业领域,我们几乎接触不到,所以对我来说换成网络更合适一些,最后再加上一个数据库。 这四项技术如果...

09/07 01:09
1.1W
一门语言的作用域和函数调用是如何实现的

前言 上次利用 Antlr 重构一版 用 Antlr 重构脚本解释器 之后便着手新增其他功能,也就是现在看到的支持了作用域以及函数调用。 int b= 10; int foo(int age){ for(int i=0;i<10;i++){ age+...

08/17 11:31
840
用 Antlr 重构脚本解释器

前言 在上一个版本实现的脚本解释器 GScript 中实现了基本的四则运算以及 AST 的生成。 当我准备再新增一个 % 取模的运算符时,会发现工作很繁琐而且几乎都是重复的;主要是两步: 需要在词法...

08/07 20:44
29
用位运算为你的程序加速

前言 最近在持续优化之前编写的 JSON 解析库 xjson,主要是两个方面的优化。 第一个是支持将一个 JSONObject 对象输出为 JSON 字符串。 这点在上个版本中只是利用自带的 Print 函数打印数据:...

07/31 22:52
36
XJSON 是如何实现四则运算的?

前言 在上一篇中介绍了 xjson 的功能特性以及使用查询语法快速方便的获取 JSON 中的值。 同时这次也更新了一个版本,主要是两个升级: 对转义字符的支持。 性能优化,大约提升了30%⬆️。 转...

07/12 00:57
12
用面向对象的方式操作 JSON 甚至还能做四则运算 JSON 库

前言 在之前实现的 JSON 解析器中当时只实现了将一个 JSON 字符串转换为一个 JSONObject,并没有将其映射为一个具体的 struct;如果想要获取值就需要先做断言将其转换为 map 或者是切片再来获...

07/04 08:55
27
几百行代码实现一个 JSON 解析器

前言 之前在写 gscript时我就在想有没有利用编译原理实现一个更实际工具?毕竟真写一个语言的难度不低,并且也很难真的应用起来。 一次无意间看到有人提起 JSON 解析器,这类工具充斥着我们的...

06/28 01:46
68
几百行代码实现一个脚本解释器

前言 最近又在重新学习编译原理了,其实两年前也复习过,当初是为了能实现通过 MySQL 的 DDL 生成 Python 中 sqlalchemy 的 model。 相关文章在这里:手写一个词法分析器 虽然完成了相关功能...

05/30 13:19
70
分享一个 SpringCloud Feign 中所埋藏的坑

背景 前段时间同事碰到一个问题,需要在 SpringCloud 的 Feign 调用中使用自定义的 URL;通常情况下是没有这个需求的;毕竟都用了 SpringCloud 的了,那服务之间的调用都是走注册中心的,不会...

05/23 17:33
48
撸了一个 Feign 增强包 V2.0 升级版

前言 大概在两年前我写过一篇 撸了一个 Feign 增强包,当时准备是利用 SpringBoot + K8s 构建应用,这个库可以类似于 SpringCloud 那样结合 SpringBoot 使用声明式接口来达到服务间通讯的目的...

05/06 13:12
2.1K

没有更多内容

加载失败,请刷新页面

返回顶部
顶部