Skip to content

四火的唠叨

一个纯正程序员的啰嗦

聊聊拼多多的商业模式

作为业余爱好,一直很喜欢研究企业的商业模式。我以往觉得电子商务这个赛道竞争很激烈,生意很难做,尤其是中国当前的环境下,近些年在商业模式上也没有太多有意思的创新。快两年前,写过一点关于拼多多的,但主要是批评,我不喜欢它的生意模式,我觉得它的壮大会打压中国的品牌成长。这个观点至今依然成立,不过,除此以外,那个时候我对于拼多多的理解还是比较浅薄的。随着这两年拼多多的成功,我觉得我看到了它越来越多以前没有看到的东西。这些东西让我越来越觉得,黄峥,真的是个眼光很长远,执行上也很厉害的人。

最早的时候,我以为拼多多的核心就是低质量、低价的策略。后来我渐渐明白,所谓的低价策略,只是最肤浅的一个表象。

[……]阅读全文

OAuth2.0 的几种授权流程

首先,从高维度看,OAuth 是要解决什么问题?

OAuth 要解决的是客户端在不知道和不使用用户密码的情况下,怎么样安全访问并获取用户所拥有的资源的问题。

顺带说一句,经常和 OAuth 一起谈到的 OIDC 则是解决了用户信息(profile)获取的问题。简单说,OAuth 解决了 Authorization 的问题,OIDC 解决了 Authentication 的问题。

OAuth 有几种角色:

  • Resource Owner:资源的拥有者,比方说终端用户;
  • Resource Server:资源服务器,比如用户想要调用的 API;
  • Client:就是用户来进行鉴权和资源操作的客户端,比方说浏览器

[……]阅读全文

初涉 ML Workflow 系统:Kubeflow Pipelines、Flyte 和 Metaflow

入职 Coupang 两个月了,第一个月主要上手和开发 BOS(Business Operating System)系统,第二个月开始调研选型 ML Workflow 平台。前者目前来说相对比较简单,后者对我来说是一个新坑,也比较有意思,随便写写技术上的体会。

先扯点题外话,其实这次求职有几个比较符合我预期的机会,可在思考之后,我基本上毫不犹豫就选择了 Coupang 这一家。最主要的原因,并非因为雇主,而是因为要做的事情。一个相当规模的团队,在大干一场的早期阶段,要在搭建起属于自己相当规模的 AI infra 来。

我觉得软件行业的巨大的变革,新世纪以来就三次,第一次是互联网应用的崛起,我太小没能

[……]阅读全文

关于近期求职的近况和思考

自去年秋天裸辞之后,一直在考虑职业生涯的问题。之后加入求职大军,目前进展还算顺利,作为软件工程师的下一站也将很快确定下来。但是这一次的 career break,虽说时间不算长,却给了我莫大的启发,我也有了一些思考。

从 fullstack engineer 到 platform engineer

其实在去年年初的时候就简要叙述过这个事情。熟悉我的朋友都知道,我的职业生涯有点奇怪,从 Huawei 开始,我是一个全栈工程师(fullstack engineer),从网页设计、前端开发到后端开发都是一锅端的,当时也非常喜欢这个方向,这也是我后来在极客时间上写 《全栈工程师修炼指南》这门课的原因之一

[……]阅读全文

聊一聊分布式系统中的时间

今天聊一下时间的话题。在分布式系统中,"时间" 是一个挺有趣,但是很难处理的东西。我把自己的理解简单整理下来。

不可靠的物理时钟

首先,单一节点的物理时钟是不可靠的。

物理时钟本身就有偏差,可是除此之外,可以引起节点物理时钟不准确的原因太多了,比如 clock jump。考虑到 NTP 协议,它基于 UDP 通信,可以从权威的时钟源获取信息,进行自动的时间同步,这就可能会发生 clock jump,它就是说,时钟始终会不断进行同步,而同步回来的时间,是有可能不等于当前时间的,那么系统就会设置当前时间到这个新同步回来的时间。即便没有这个原因,考虑到数据从网络传输的延迟,处理数据的延迟等等,物

[……]阅读全文

几个有意思的分布式系统设计模式

分布式系统有它特有的设计模式,无论意识到还是没有意识到,我们都会接触很多,网上这方面的材料不少,比如 《Catalog of Patterns of Distributed Systems》,还有 《Cloud Design Patterns》等等。这里简单谈谈几个我接触过的,也觉得比较有意思的模式。

LSM Tree

对于这个话题,基本上第一个在我脑海里蹦出来的就是 LSM 树(Log Structured Merge Tree)。其实,LSM 树本来只是指一种数据结构,这种数据结构对于大吞吐量的写入做了性能上的优化(比如日志写入),同时对于根据 key 的读取也有不错的性能。换言之,对于读写

[……]阅读全文

本地部署 Minikube + Docker 记录

我有 Mac 和 Windows,这些年折腾软件方面的环境 Linux 用得比较多,最近想安装一个 Kubernetes 的本地环境,本着 "生命不息,折腾不止" 的精神,打算在 Windows 上动手。了解到可以尝试 Minikube,在此简单记录一下。

首先得要安装 Docker,但是在 Windows 下跑 Docker 有两种方式,WSL(Windows Subsystem for Linux)或者 Hyper-V。我首先把这些 Windows 组件都勾上:

我两条路都去走了一下,为了使用 Hyper-V,我还去 BIOS 里面打开虚拟化支持的选项。不过,后来才知道,因为操作系统版本是 Windows 10 Ho

[……]阅读全文

谈谈分布式锁

不要使用分布式锁

就像 Martin Fowler 说的那样,"分布式调用的第一原则就是不要分布式",谈分布式锁也要先说,不要使用分布式锁。原因很简单,分布式系统是软件系统中复杂的一种形式,而分布式锁是分布式系统中复杂的一种形式,没有必要的复杂性就不要引入。

有的逻辑是没有副作用的(纯函数代码),那就可以无锁执行;有的数据经过合理的 sharding 之后,可以使用单线程(单节点)执行,那就单线程执行。

比如一种常见的模式就是使用 queue(比如 Kafka),任务全部放到队列中,然后根据 sharding 的逻辑,不同的 consumer 来处理不同的任务,互相之间不会干扰冲突。

还有

[……]阅读全文

我裸辞了

我裸辞了。

工作差不多十六年了,从来没有以离职后休假的方式休息过。今年还是比较特别的,我做了很多新的尝试,想改变一下自己,包括这最近发生的一件事情。事情发生得很快,我辞职了,在作为 engineer 加入 Doordash 一年零十个月后。

记录一下。

原因

我不是在二十岁的年纪,做决定容易缺乏思考,其实,我已经想了这件事情好久了。在这期间,我也和不同的朋友和同事讨论过,他们有的还在 Doordash,而有的也已经离开了。说起来,大致有三个原因:

第一个,是兴趣的不匹配。

郭德纲说过,如果你每天做的事情是你喜欢做的,那就是老天爷赏饭吃。这样的情况只在少数人身上发生,而

[……]阅读全文

谈谈拼多多和品牌

最近有些思考,想在这里随便聊一下拼多多和品牌的话题,记录一下。

我不是学经济的,也不是学商业的,但是关于品牌和商业模式的话题,很多人都有自己的思考。我想聊聊这个事情是由最近拼多多市值超过阿里的事情引起的。

首先一点,电子商务的红利期早就过去,现在看来,电子商务真的算不得什么好生意,也很难谈什么扎实的护城河。电子商务,最多就是套着已经黯淡马甲的零售业,没有什么本质区别。

也许在十五年前,电子商务是能给人无限遐想空间的商业模式。阿里巴巴这些年可以说把一副好牌打坏,电商成功了,但不能躺在功劳簿上,于是它尝试了大量的 "第二曲线",可是基本上输多胜少,臃肿的人员不说,投资也是一塌糊涂。

[……]阅读全文

关于软件行业未来和职业生涯的一点思考

关于行业未来

软件行业裁员到处是风声鹤唳,关于行业,关于职业,关于未来,平日里总有一些零散的想法,可是总体来说,始终是忙碌太多,而思考太少。于是,这个周末静下心来,想努力把这些碎片串起来——可是似乎这并不是一件很容易做的事情,那就先把这些想法记录下来。

首先,关于软件行业。很显然的是,任何行业都有周期,软件行业也不例外,软件行业已经过了最疯狂的时间段,现在整个市场都在高利率下,在高昂的借贷成本下冷静下来。我依然记得最疯狂的时候,大概就是在疫情大放水期间,小红书上都有各种行业的牛鬼蛇神 "三个月转码" 的小作文,那些就让我想起了好多年前,我刚读大学的时候,听说招计算机专业的毕业生,因为需

[……]阅读全文

关于经济和投资,再见,有趣的 2023 年

2022 年末 2023 年初的时候,中国顶尖的投资银行中金公司(中国国际金融股份有限公司)对于中国宏观经济做了十大宏观预测。如今到了年末,回头一看,了不得,居然全错。要知道,能把这十道题全部做错和把十道题全部做对一样,都是只有非同寻常的人才能做到的。

不过,我倒不是想强调中金公司搞宏观分析的团队有多么得不靠谱,而是说,预测宏观本来就是一件无比困难的事——事实上,华尔街的分析师也好不到哪去:

股票策略师 Mike Wilson 预测,标准普尔 500 指数即将暴跌。在美国银行,Meghan Swiber 及其团队表示,要为美国国债收益率暴跌做好准备。在高盛,包括 Kamakshya

[……]阅读全文

音频:我不是码农,我是程序员,我和你一样,为理想而奋斗

不慌不 MANG 播客的主播 FANG FANG 聊了一下程序员的话题,音频放在这里。下面是 Spotify苹果 Podcast 的嵌入代码,国内的小宇宙链接在此。

Show notes:

  • 02:36 "码农" 是不经意的自嘲还是妄自菲薄?
  • 04:45 十年前写下《致那些自嘲码农的苦逼程序员》文章的机缘
  • 11:32 要意识到自己所讲述的故事 narrative 对自己的暗示, "自我验证预言" 与现实的交互影响
  • 15:38 误解之一: 程序员是无趣的人?
  • 17:23 误解之二: 程序员的工作单调乏味?
  • 24:17 程序员也需要全面的能力, 写程序只是工作中的一部分
  • 30:08《你不适合做程序员

[……]阅读全文

关于时间管理的一点新的感悟

从读书,到工作,都离不开时间管理,我相信只要不是属于无比随性的少数人,应该都有自己的体会。因为这件事情太重要了,它贯穿于每日的生活和工作之中。好久以前就写过一点关于时间管理的体会,后来又补充了一些,现在重新开一篇短小的文字,记录一点新的感悟。

变化

随着年岁的增长,我却越来越感到时间管理这件事情在不断地变得更加重要,因为整体的事务数量和复杂度都提升了。

关于其中的原因,我仔细思考过。大致上,在年纪轻一点的时候,兴许每天需要筹划实施五件事,但是现在呢,每天需要筹划实施十件事。相应地,年轻的时候,兴许可能这五件事里面,最终能完成三件;而现在,这十件事里面,也最多能完成五件,看似完

[……]阅读全文

闲聊投资:亲自体验和护城河

闲聊一点美股投资。以前讲过一点我投资美股的原则(有些想法有了变化),今天想接着再补充说一些。

上周五的时候,和同事闲聊聊到了投资,他提到,巴菲特建议大多数人只需要买指数就好了,因为投资个股对于大多数人来说都是一件长期收益小于投资指数的事情。即便不买指数,还有那么多基金,都很方便购买——事实上,市场上大部分的资金都来自于专业机构,他们有高级的工具,有专业的人员,市场在某种程度上就是一个零和游戏,那凭什么自己做的投资决策能击败他们?如果不能,那为还不如就买相应的基金就好了。我很赞同这样的看法,可是,投资个股也有好处,其中之一就是有乐趣,可以保持自己对于经济、公司等等的敏感性,让自己持续学习。

[……]阅读全文

学习 OpenAPI 的一点记录

我记得在毕业以前,就大致明白这样一件事情,系统之间、模块之间的交互,要确定协议,要定义接口,兜兜转转这些年过去了,我觉得对这件事情认识当然越来越深刻,也说不清其中的程度。最近做的项目中,开始大量地和 OpenAPI 打交道,一方面要最先使用 OpenAPI 来定义接口,让多个其他交互的模块都遵循它来开发,就是 "OpenAPI Driven Development" 的意思,这没啥特别的;但另一方面,系统中还需要把 Protobuf 接口定义转换成 HTTP 接口定义,并实施地使用 swagger-core 来动态创建 OpenAPI Spec,这就比较好玩了。

gRPC 到 HTTP 的协议转换

[……]阅读全文

一些皓哥和我的故事——谨此纪念陈皓先生

好久没动笔了,昨日得知左耳朵耗子陈皓先生突然离世的消息,颇为震惊和难过,也感到非常惋惜。他曾经是我在亚马逊时期团队中的经理,更重要的是,他是对我在软件工程师这条道路上影响最深的几个人之一,我觉得我应该写一点纪念性的文字。

要说和陈皓的联系,大概从十来年前说起,之前也关注酷壳博客,2011 年底的时候,在南京的我我正在找工作,想去北京,我写邮件给他,附上我的简历和我当时还在 ITEye 的 blog,问他招不招人。那时我只是一个工作三年多的程序员,和我想象的不同,陈皓回邮件很快,也没有什么架子,我们来来回回讨论了不少技术问题。之后赶在年前跌跌撞撞过了面试,两月份我就加入了北京亚马逊,在一个把负责商

[……]阅读全文

入职后一些零散的感受和思考

有些时候自己会有一些想法,但是过于零散,想把它们记录下来,可是又找不到一个清晰脉络可以把它们串起来。入职已经两周了,我还记得快要五年前加入 Oracle 的时候,我也写了一篇类似零散的文字,不过那个时候是在入职一个月左右的时候。

Facebook 的唏嘘

我记得在五年前谈 offer 的时候,Facebook(现在改名叫 Meta 了)也给了 offer,他们的 recruiter 当然是尽力试图说服我加入他们,而不是加入 Oracle。当时有一句话我依然记得,大致是说不只要看当下 compensation 的价值,要考虑到股票的潜力,因为 Facebook 的股票的潜力是 Oracle 所不能比的(北美软件工程师

[……]阅读全文

近况更新:第三次换工作

最近发生了太多的事情,也没有更新 blog,来冒个泡。

我基本上是一个很长时间才会换一次工作的人,说好听点就是爱惜羽毛(工作经历),注重长期积累而非短期回报,说难听点那叫懒得动弹。

记得在 2012 年初的时候,我在人生中第一次换工作,从华为跳到亚马逊,那时候我已经在华为干了三年半了,其中的主要动机一个是想开阔眼界,另一个是可以不那么辛苦。

接着就是 2018 年初,在亚马逊干了六年之后,第二次换工作,从亚马逊跳到甲骨文,主要动机有两个,一个是我想在职业生涯有个突破,去参与云计算的浪潮;第二个是我觉得当时我的薪水已经严重偏离市场能给我的待遇了,所以想去谋取一份更合理的薪水。

这一

[……]阅读全文

常见分布式应用系统设计图解(十五):支付系统

支付(Payment)系统可以很复杂,比如可以和银行打交道,和信用卡系统打交道。如果我们考虑用户在一家电商买东西,在结账的时候,借助电商支持的支付系统(Payment Service Provider)来完成支付行为。

支付系统需要结合商家(包含卖家和买家)一起来看。最典型的一种需求是,卖家在电商网站挂了东西卖,买家挑选了货物,结账并支付,电商依赖于支付系统来完成支付,并通知买家支付成功。

  • 图中用两条虚线分隔出了 3 列,最左边是用户,中间是电商系统(比如 Amazon),右边是 Payment Service Provider(PSP,比如 PayPal)。支付操作需要保证幂等性,

[……]阅读全文

AltStyle によって変換されたページ (->オリジナル) /