2021年5月7日
架构设计 架构设计最重要的就是理解整个产品体系在系统中的定位。搞清楚系统背后的背景,才能做出最佳的设计和抽象,不要做需求的翻译机。评论系统,需要做成评论平台,可以接入各种业务形态。 需要实现以下几个功能: 发布评论:支持回复楼层 读取评论:按照时间、热度排序 删除评论:用户和up主可以删除……
阅读全文
2021年5月3日
排序算法分析 排序是指将一组对象根据一定的逻辑进行重新排列的过程。排序的算法应用于计算机的各个领域中,排序的快慢对社会运转起着至关重要的作用。 常见的基础排序算法有:冒泡排序、选择排序、插入排序、希尔排序等,这些排序算法的时间复杂度较高,仅适用于小规模数据的排序。 针对于大规模数据,常……
阅读全文
2021年2月19日
算法题的几种模式 滑动窗口 滑动窗口用于在给定数组或者链表的特定窗口大小上执行所需的操作,比如查找最长的子字符串或者子数组。 题目 1004. 最大连续1的个数 III 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15……
阅读全文
2021年2月14日
微服务概览与治理 go语言实践 - error go语言实践 - concurrency go工程化实践 微服务可用性设计 评论系统架构设计 播放历史架构设计 分布式缓存&分布式事务 go语言实践 - 网络编程 日志&指标&链路追踪 DNS&CDN&多活架构……
阅读全文
2021年1月14日
分布式锁 redis 实现 加锁:SETNX key value,当 key不存在时将 key的值设为 value ,返回值为 1;若给定的 key 已经存在,则 SETNX不做任何动作,返回值为 0 。 解锁命令:DEL key,通过删除键值对释放锁,以便其他线程可以通过 SETNX 命令来获取锁。 锁超时:EXPIRE key timeout, 设置 key 的超时时间,以保证……
阅读全文
2021年1月10日
2021年的N个问题 通过问题的形式完成2021年的技术领域的学习计划,每个部分最少包含5个问题,问题总数在50个左右 数据结构与算法 决策树是什么 深度优先遍历 广度优先遍历 设计模式 分布式的AP CP CAP什么意思 缓存和数据库 mysql 丁奇的课程 redis的sentinel机制 哨兵 中间件 kafka CDN kafk……
阅读全文
2020年12月5日
基本原则 闲钱投资 不动用大资产 经历完整牛熊过的人才是有经验的 提高胜率才是最主要的 关键要素 趋势投资,以月或者周为周期,建立分析系统 买卖策略,来行情该买什么 投资纪律和经验,怎样持续盈利 分析和判断市场 把影响市场的因素明确 政策:货币,财政 技术图:K线图,关注资金量 市场情绪:很难量化 资金变化……
阅读全文
2020年12月5日
syn.Pool leak.Pool io.Writer在使用sync.Pool之后,延迟变高 golang bufio的用法……
阅读全文
2020年11月7日
slice 1 2 3 4 // a[low : high : max] path := []byte("AAAA/BBBBBBBBB") sepIndex := bytes.IndexByte(path,'/') dir1 := path[:sepIndex:sepIndex] //Full slice expression, last index is capacity append golang的append不是值拷贝,特别是在append函数入参的时候,尽量使用copy函数先处理一下再append,否则会踩很多坑。 slice的核心内容有两点: 函数为值复制传递 slice的属性包含指向底层数组的指针、ca……
阅读全文