首页
学习
活动
专区
工具
TVP
发布

薯条的编程修养

专栏作者
35
文章
28000
阅读量
14
订阅数
Golang GC 从原理到优化
这篇文章与笔者之前所写几篇不同,是一篇综述型的文章,将从 GC 理论、在 Golang 中的应用、以及如何去做优化,这三个角度逐次进行阐述,文章中对于一些技术点会引用到多篇文章,希望读者也都能进行阅读,这有助于更全面的了解 Golang GC。
薯条的编程修养
2023-01-30
1.9K1
[译]Uber Go语言规范
风格是管理我们代码的规范。风格这个词有点问题,因为这些规划所涵盖的内容远远超过了源文件的格式化 -- gofmt为我们处理了这些。
薯条的编程修养
2023-01-30
9370
[译]Go中的循环依赖:如何解决这个问题
作为一个 Golang 开发,你可能在项目中遇到过包的循环依赖问题。Golang 不允许循环依赖,如果检测到代码中存在这种情况,在编译时就会抛出异常。本文会讨论循环依赖是如何发生的以及如何处理。
薯条的编程修养
2022-08-10
8.8K0
IO 密集型服务 性能优化实战记录
Feature 服务作为特征服务,产出特征数据供上游业务使用。服务压力:高峰期 API 模块 10wQPS,计算模块 20wQPS。服务本地缓存机制:
薯条的编程修养
2022-08-10
8210
计算密集型服务 性能优化实战始末
worker 服务消费上游数据(工作日高峰期产出速度达近 200 MB/s,节假日高峰期可达 300MB/s 以上),进行中间处理后,写入多个下游。在实践中结合业务场景,基于快慢隔离的思想,以三个不同的 consumer group 消费同一 Topic,隔离三种数据处理链路。
薯条的编程修养
2022-08-10
7370
[Go 1.14.1]一个死锁bug的排查始末
某晚突然服务报警,上游服务访问超时数量显著上升,初步排查访问某一容器的链接全部超时,摘流后上游访问恢复。
薯条的编程修养
2022-08-10
8850
用规则引擎让你一天上线十个需求
如果是本号老读者,可能知道我是做数据系统的,作为一个在线数据服务组,我们这边承接的需求是小而多的。我在一家打车公司上班,运营大佬们认为不同用户在不同场景下有不同打车需求,设计出来很多子品类。于是我们组会承接这样一类需求:计算用户不同品类的各种实时单量,如:快车呼单量、拼车完单量。
薯条的编程修养
2022-08-10
5270
Context源码,再度重相逢
各位读者朋友们大家好,我是随波逐流的薯条。深秋了,前几天气温骤降,北京的人和狗都不愿意出门,趴在窝里冻的打寒颤。我的书房里没装空调,暖气要十一月中旬才来,每次想学习都得下很大的决心,所以这篇文章发出来时比预期又晚了几天~
薯条的编程修养
2022-08-10
2090
Context这三个应用场景,你知吗
现在具备一定规模的互联网公司都用微服务形式让各系统组合起来为用户提供服务,一个简单的业务在流程上可能需要十几个甚至几十个系统间互相调用。由于每个系统内部的正确性无法保证,若出现了case,比如用户反馈积分少发了,就需要排查这十几个系统的日志信息,看问题出在哪里。
薯条的编程修养
2022-08-10
2890
Sync Once:不是吧,不到20行源码居然来回改了这么多次
大家好,我是好久不见的薯条,上篇文章 编写一个配置化的Kafka Proxy,让你分钟级别接入Kafka 的阅读量很惨淡,搞得我那段时间有点丧,可能大家还是更喜欢Golang方面的文章,也可能是那篇写的有点搓... 这几天北京降温又下雨,我久违的感冒了,秋高气爽,读者朋友们要注意多加衣服啊,感冒还是很难受的。
薯条的编程修养
2022-08-10
1910
编写一个配置化的Kafka Proxy,让你分钟级别接入Kafka
消息队列作为服务解耦、异步收发消息的组件,如今已经广泛应用于各大互联网公司,具备一定规模的公司会有专门的团队负责维护消息队列。当我们需要使用消息队列时,得写专门的代码进行连接,比如若用Golang编码,当需要使用Kafka消息队列时可能会使用 sarama库。这意味着需要在业务代码中写一些与业务无关的kafka配置与连接代码。
薯条的编程修养
2022-08-10
1.3K0
一个95分位延迟要求5ms的场景,如何做性能优化
组内的数据系统在承接一个业务需求时无法满足性能需求,于是针对这个场景做了一些优化,在此写篇文章做记录。
薯条的编程修养
2022-08-10
2680
听说Mutex源码是出名的不好看,我不信,来试一下
Mutex需要两个变量:key表示锁的使用情况,value 为0表示锁未被持有,1表示锁被持有 且 没有等待者,n表示锁被持有,有n-1个等待者;sema表示等待队列的信号量,sema是个先进先出的队列,用来阻塞、唤醒协程。
薯条的编程修养
2022-08-10
3380
Mutex和上厕所居然有这么多异曲同工之妙
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
薯条的编程修养
2022-08-10
3380
配置化系统中的图模型
To C端的业务系统发展流程一般是:MVP版本快速上线验证猜想,然后大多数版本到这里就半死不活不再迭代了,少数效果不错的业务会继续迭代下去。在这个过程中,运营和PM的核心诉求是:研发团队可以快速实现功能,最好当天提需求当天实现,需求后续若有迭代系统还能进行灵活修改。
薯条的编程修养
2022-08-10
4880
从0.5到1用golang上线一个web项目
在上一篇文章中,我们从0到0.5用Golang写了一个web应用,到0.5是因为那坨代码离生产环境还差的很远。满分按100分的话,这篇文章继续补充从0.5到1的内容,尝试描述作为一个合格的在线服务应该具备的部件。读者朋友对本文有啥意见欢迎留言。本文范围如下:
薯条的编程修养
2022-08-10
5160
从0到0.5用golang写一个web项目
学生时代曾和几个朋友做了一个笔记本小应用,当时我的角色是pm + dba,最近心血来潮,想把这个玩意自己实现一遍,顺便写一篇文章记录整个过程。
薯条的编程修养
2022-08-10
6071
程序员使用谷歌搜索的十种技巧
对程序员来说,一项非常重要的技能就是解决问题的能力,解决未知问题离不了搜索引擎。在个人实际使用中,谷歌的使用体验是要优于*度的,很多比较偏的技术问题通过谷歌搜索都可以在github issue、Stack Overflow中找到答案。所以如何用好谷歌是程序员必备的技能之一。
薯条的编程修养
2022-08-10
9060
Go程序员进化史
“写 n! 的若干种进化(退化)史 初级程序员 📷 package fac func Factorial(n int) int { res := 1 for i := 1; i <= n; i++ { res *= i } return res } 学了递归的程序员 📷 package fac func Factorial(n int) int { if n == 0 { return 1 } else { return Factorial(n - 1) * n } }
薯条的编程修养
2022-08-10
2100
睡前故事|用Bitmap与AST做一个配置化时长系统
三多心里骂娘,但是一想到自己下个月又得交房租了,还是满含泪水打开了需求文档,需求文档大概的意思如下:
薯条的编程修养
2022-08-10
3440
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档