文章506
标签266
分类65
使用Go构建GraphQL API

使用Go构建GraphQL API

Go创建Goroutine时显式调用时的坑

Go创建Goroutine时显式调用时的坑

分享一个在线协作白板网站

分享一个在线协作白板网站

解决Android项目下载Gradle速度极慢的问题

解决Android项目下载Gradle速度极慢的问题

AndroidStudio初始化项目时竟然遇到了下载Gradle速度极慢的问题,即使挂了梯子也不行?!

网上一番搜索,找到了几个解决方案;


AndroidSupportLibrary和AndroidX的区别

AndroidSupportLibrary和AndroidX的区别

最近在看《第一行代码(第三版)》,开篇提到了以后Google将会支持AndroidX而不建议使用AndroidSupportLibrary;网上查询了一些资料;


使用MongoDB查找最近阅读最多的文章

使用MongoDB查找最近阅读最多的文章

最近给博客的文章添加了一些数据记录,然后用这些在MongoDB中的阅读记录添加了最近阅读比较多的功能;


Node+Redis实现基于IP的限流策略

Node+Redis实现基于IP的限流策略

API限频可以保护和提高API的服务的可用性;如果某个IP在一个时间段进行大量的访问请求(例如典型的DDos攻击),不但会影响其他用户的访问,严重的还有可能直接拖垮整个服务;

针对API限流有多种策略,Node.js可以使用Koa现成的限流模块koa-ratelimit,Java也有对应的限频实现方式(通常通过注解+AOP的方式即可实现);

本文使用Redis+Node,以相当轻量级的方式实现了针对IP的访问限频,起到了抛砖引玉的作用;

源代码:


迁移MongoDB官方Atlas集群中数据

迁移MongoDB官方Atlas集群中数据

之前博客用的是MongoDB提供的免费Atlas数据库,位于新加坡。每次请求的时候都要顶着几百的延迟,体验是相当的差了!

所以最后还是在自己的良心云上搭了个MongoDB,把数据同步过来了;


浅谈C++中的RAII

浅谈C++中的RAII

使用C++实现一个Mark-Sweep的GC

使用C++实现一个Mark-Sweep的GC

在现代编程语言中,无论是Java这种基于JVM的语言,还是Golang这种直接生成Native的语言,都存在自己的GC;

由于GC的存在,我们可以肆无忌惮的申请内存并创建对象而不必手动的释放内存空间;而对于GC中的垃圾清理,我们也仅仅是停留在理论学习中;

本文带大家使用C++实现一个简单的GC,以实际代码理解GC的实质;

源代码: