Blog

Agility6

2024 💃

Thought

Ready for 2025 💃 时间来到2024的末尾,年度总结也如约而至这几天不断的回忆;2024年我做了什么,或者说这一年我可以用什么词进行概括呢?最终选择这三个词来概括整一个2024年 校园 实习 选择 在最最最开始的时候先让「科技」告诉我2024年做了什么吧 (Github!!!) (Top应用居然是百度网盘,批评居然不是VsCode/Goland😢) (b站大学) 抓住校园的尾巴 🎉 这一年虽然名义上我还是一名大学生,但是自我的定位已经是半只脚踏出校园的人了。回想24年春节的时候,给自己下达的目标就是暑假前落实实习。所以在大三下学期的时候,并没有把太多精力花在学校中(意思是经常逃课)不过还是在大三下的时候参加了一些活动 计算机程序设计大赛 蓝桥杯算法比赛 虽然结果不太尽人意,计算机程序设计大赛止步于省赛;蓝桥杯省二。现在回想起来其实并不是获奖最

Plan9 & Go Assembler

Tech

Rob Pike 对 Go 语言设计理念的阐述中,一直在强调 Go 语言的简洁、清晰和高效。本文会通过揭示 Go 语言的底层实现,来理解语法糖的运作原理,并提供分析其他语言实现的思路

Golang-SliceTrick

Tech

前言 本篇文章是根据Go官网的一个有趣的Wiki,Golang一直都是以简单著称的,如果你是一个Java选手,那么一定会给眼花缭乱的库所征服,会封装一切你能用到的方法。 这个图十分有趣(Everything is 「for」) 尽管Golang并没有给开发者封装太多的方法,反而是通过一些Tricks可以实现你想要达到的效果 这种设计仅仅是一种选择而已,并没有绝对的正确! 下面就来看看官方给介绍的一些Tricks吧 Slice 大部分的时候使用slice都是和append和copy打交道,官方也是这样推荐的 基础使用 Copy复制 先来看看如果需要复制slice,可以使用什么方法 func main() { a := []int{1,2,3} b := make([]int, len(a)) copy(b, a) } func main() { a := []int{

关于MySQL与Redis的数据一致性问题研究

Tech

前言 MySQL和Redis,这两个都是在项目中常用的工具,MySQL作为数据的持久化保证,虽然说在MySQL默认的存储引擎InnoDB中比较好的平衡了「高性能和高可靠」,但是如果想应对互联网的大型流量上,可能还是捉襟见肘甚至可能导致整个系统崩溃。 公认的项目中通常是「读多写少」的情况,换言之可能在大部分时候数据不是那么多变的。因此缓存的引入可以解决读多情况。 Redis是什么 这里不长篇的介绍Redis的各个细节,我们先来讨论一下缓存是什么?缓存其实本质来说就是「空间换时间」的概念,在常见的系统设计时候,无一例外都会使用到缓存这个思想,例如解析URL的DNS服务器存在缓存、InnoDB中的Buffer Pool也是缓存的一种思想。 回到Redis来说,Redis单实例的读QPS可以达到10w/s,其实足以因对大部分场景了。 使用缓存的思想 在此之前我先简单的谈一谈,我对新技术引入的一些思

调用第三方接口需要考虑什么?

Tech

前言 在实习的过程中我遇到了多个需要对接第三方平台的工作,那么对接的时候我应该考虑什么或者是我应该注意什么。 因此这一篇文章就尝试总结一下吧 经常需要考虑的点 封装统一的Http请求工具类 这一点很好理解,其实就是为了去更好的复用代码 打印请求接口入参、出参、耗时日志 参数的合法性校验 减少对下游无效的调用 例如,数据格式的校验、业务合法性的校验 接口设置超时超时时间 不同的业务场景设置不同的超时时间 接口是否需要重试以及重试的次数需要考虑 需要考虑一下下游接口提供的能力,注意事务接口不要重试 查询类接口重试,也是需要考虑的因为要考虑下游接口QPS的支持 多次调用改为单次批量调用 接口返回的数据考虑是否缓存 如果返回数据理论上在长时间内都不会改变,可以使用redis进行缓存