首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
有疑说
有疑说
创建于2021-05-16
订阅专栏
技术专栏
等 4 人订阅
共43篇文章
创建于2021-05-16
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
有疑说
1年前
后端
架构
如何快速定位现网 BUG
“幸福的家庭都是相似的,不幸的家庭却各有各的不幸”,托尔斯泰的名言。在 BUG 定位这件事情上,其实也有类似的现象:”菜鸟们的紧张无措都是相似的,老鸟们的方法却各有各的不同”。 年年过大促,年年定位现
1587
4
评论
有疑说
1年前
Go
后端
译|There Are No Reference Types in Go
有一天,我用谷歌搜索一个 Go 问题,谷歌将我引导到 Go FAQ 页面。问题解决后,我阅读了整个 FAQ。我注意到一个问题,为什么数组是值,而 map、slice 和 channel 是引用?
241
1
评论
有疑说
1年前
Go
后端
Go 语言没有引用类型,指针也与众不同
面向对象编程强调数据和操作绑定,方法是有状态的,本身可能会修改数据。因此编程时确定方法是否会修改原始数据尤其关键。多数从其他语言转到 Go 语言的开发者,都会首先了解 Go 语言传递参数的时候到底是
114
1
评论
有疑说
1年前
后端
Go
译|What “accept interfaces, return structs” means in Go
“接受接口、返回结构” 的一般原则,我在前一篇文章中写到,也多次在代码评审时向同事介绍,但经常遇到“为什么”的疑问。特别是因为这不是一条硬性规定。该想法的关键在于保持灵活性的同时避免预先抽象,并理解何
387
1
评论
有疑说
1年前
Go
后端
如何用好 Go interface
interface 是 Go 语言最精髓的特性之一,一直以来想写一篇关于 interface 的文章,但是一直没敢写。持续几年之久,还是斗胆总结下。
600
2
评论
有疑说
1年前
后端
Go
一个优雅的 LRU 缓存实现
Golang 的各种组件很灵活也很强大,但对于初级入门的使用者来说,要用好着实不易。最近,在开发一个可以拿来即用的 golang 库。第一个组件选择了缓存,主要是因为这个组件非常的关键,但也非常不容易
1129
6
评论
有疑说
1年前
Go
架构
后端
Go 函数式编程:Higher-order function
在请求处理过程中,应用程序会接受和处理请求,然后返回响应结果。在该过程中,还存在一些通用的功能,例如:鉴权、监控、链路追踪。众多 RPC 框架会提供称之为 Middleware 或者 Intercep
694
3
评论
有疑说
1年前
架构
后端
译|Eventually Consistent
一年前,我写过一致性模型的文章的第一个版本。因为当时写的很匆忙,而且这个主题非常重要,值得更缜密的对待,所以我并不是很满意。ACM Queue 为将其发布到自己觉得杂志上,所以请我仔细推敲。我得以借此
370
2
评论
有疑说
1年前
Linux
内存管理 - 物理内存
本篇从我自己的角度来写对物理内存管理的理解。逐步揭开相关的细节: 1. 内核是使用什么地址访问物理内存的? 2. 物理内存为何需要分区? 3. 伙伴系统和 SLAB 系统 有何区别?
232
1
评论
有疑说
2年前
MySQL
MySQL 设计与查询规范
想象一下自己是一名伐木工人,突然有天有人想你推销一款新的工具——链锯。你也买了一把,不过你不懂得怎么用。你估摸着按照自己原来擅长的砍树方法,把链锯大力地挥向树干……
208
1
评论
有疑说
2年前
架构
后端
译|High-Performance Server Architecture
介绍 本文的目的是分享我多年来关于如何开发某种应用程序的一些想法。更准确地说,将写的与一大类程序有关,这些程序旨每秒处理大量离散的消息或请求。低级优化通常是搞砸设计的人最后的选择。
552
5
评论
有疑说
2年前
Go
诠释 Channels orchestrate; mutexes serialize
channel 是 Go 语言独有的一个特性,相比 goroutine 更加抽象,也更加难以理解。毕竟后者可以类比线程、进程...
873
3
评论
有疑说
2年前
架构
内容型产品架构:推模型还是拉模型?
无论是信息流、论坛、信箱,还是私聊、群聊、通知,推拉模型是内容型(包括:社交型)产品架构的核心。做出正确选择的关键在于对 产品形态 和系统组件 清晰的认识 模型 推模型(写扩散) 为每个内容消费者维护
637
4
2
有疑说
2年前
分布式
如何维护好一个微服务
微服务火了这么久,服务越拆越多,但是很少有人知道如何维护好一个微服务。本文以微博的 “用户资料” 服务举例来谈谈。 反之,则意味着该服务存在问题,需要修正。 不符合 4、5、6 点,意味着存在潜在的问题,或者当出现问题时无法得到有效识别。 维护好一个服务,不要匆忙下结论(Don…
284
3
1
有疑说
2年前
Go
Golang 面向对象编程
是,也不是。尽管 Go 有类型和方法,并且允许面向对象风格的编程,但没有类型层次结构。Go 的『接口』概念提供了一种不同的实现方式,在某些方面更通用。同时,缺少类型层次结构使 Go 的『对象』感觉上比 C++ 或 Java 等语言中的『对象』轻很多。本文的目的就是通过示例来说明…
214
1
评论
有疑说
2年前
Go
译 | Packages as layers, not groups
四年前,我写了一篇名为 《标准包布局》 的文章试图阐述:包布局。即使对高级 Go 开发人员来说,这也是最困难的话题之一。然而,大多数开发人员还在艰难地将代码组织到目录结构中,相应的目录结构随着应用程序缓慢增长。 几乎所有编程语言都有一种机制,将相关功能组合在一起。Ruby 有 …
283
3
2
有疑说
2年前
架构
高并发系统设计(4) —— 结构化缓存
在众多应用中,缓存都是标配,使用缓存都能获得非常巨大的性能提升。然而却少有人能把缓存用好,使用缓存的服务,随着需求的迭代都会不可避免的陷入一种怪圈: 在反复的折腾之下,系统难以维护,最终不得不走向整体“重构”。 以微博为例,当打开微博时,页面主要数据构成有:分类列表(左侧);微…
595
4
评论
有疑说
2年前
Go
永远不要在不知道如何停止的情况下启动一个 goroutine
在 Go 中,goroutine 的创建成本低,调度效率高,同时存在数十万个 goroutine 并不奇怪。虽然单个 goroutine 使用的内存有限,但是不意味着可以毫无限制的创建 goroutine。 每次启动 goroutine 时,必须知道 goroutine 何时、…
2853
5
评论
有疑说
2年前
Go
译|Go Concurrency Patterns: Context
在 Go 服务中,每个传入的请求在单独的 goroutine 中处理。请求回调函数通常启动额外的 goroutine 以访问后端,如数据库和RPC服务。处理同一请求的一系列 goroutine 通常需要访问请求相关的值,例如端用户的标识、授权令牌和请求截止时间。当请求被取消或超…
252
1
评论
有疑说
2年前
Go
sync.singleflight 到底怎么用才对?
所有的请求被同时打到下游存储上,将会影响下游存储的服务质量,因此需要严格限制访问下游存储的并发量。使用 Golang 编程的人,倾向于不假思索的使用 singleflight 应对 Cache Miss(缓存未命中),即: 在绝大多数场景下,singleflight 都很好用,…
947
4
评论
下一页