高考结束那天,我发了个朋友圈,只有四个字:「自由的风」。我如释重负,觉得这个世界在此刻才真正向我敞开了大门。那时我认为这就是自由。 我的老师在下面评论:「有那么夸张吗?哈哈」。那时我不懂,但我现在正是老师当时的年纪,我于是懂了——自由在不同的人眼里,在不同的年龄段,有不同的含义。不过我无法否认,那就是自由的感觉,即使枷锁本来是不该有的。 现在我早就过了评判高考是非的阶段。对于现在的我,评判它只是一种关于哲学、政治、社科的纯理性思辩。我可以聊很多,但如果当年的我和现在的我就此问题进行一场对话,当年的我可能讨论到一半就会一枪把我嘣了,然后说卢涛南你变了,你这个油条,你让我感到丢脸。 我一直认为高中是一段强加于人的苦难体验,如果它不是苦难…
阅读全文最近临时在帮朋友做一些外包,基本上代码都是 AI 写的,我想如果不是有 AI, 我大概不会帮这个忙,因为即使这些活不难,我还是要写很多代码。但现在,我可以一个人同时做 2-3 个项目。 在这个过程中,更加让我确定了对于程序员来说,软件开发的范式已经彻底彻底改变了。生成代码再也不是程序员「应该」做的事情,而是应该被放手给 AI 做的事。 这也让我对判断一个程序员的能力从代码能力转变成了使用 AI 的能力,我想,如果我现在要为团队招程序员,我会在面试时着重了解这个人如何使用 AI 完成一个需求。 对于程序员来说,「使用 AI 的能力」包含很多维度,这些维度综合起来,才决定 AI 是否真正能成为程序员的杠杆: 对业务的理解 软件是为解决用…
阅读全文最近我在编程上一个很大的变化是把持续月付了将近 1 年的 Cursor 换成了 Claude Code. 之前一直不用 Claude Code 原因有二: Claude Code 在中国使用非常困难,我已经算是比较愿意折腾的人了,也折腾不动它。在 Cursor 中使用 Claude 模型则非常方便。 我不是很喜欢完全在 CLI 中 AI 编程,因为我使用 AI 编程的方式比较像 Copilot 而不是结对编程的形式。也就是说我喜欢在像 Cursor 这样的编辑器中,精确告诉 AI 要改动什么文件,或要针对哪几行的 code 进行改写。我认为在 Claude Code 中要做到这种「指哪打哪」非常困难。 这次转变的契机在于,上个月我竟…
阅读全文
04最近又写了一本小书。 这本小书定价 29 元,你可以在 这里 购买 PDF 版本。如果你有特殊需求,也可以购买 Markdown + PDF 版本,价格是 49 元(为了增加盗版成本)。 这本书篇幅不长,但因为比较小众,所以定价稍高,请读者自行斟酌购买。 这是一本关于浏览器插件开发的书。这本书面向的是那些希望开发自己的浏览器插件满足自己需求的,也许你是专业的前端程序员,或是略懂前端代码的后端人员,在 AI 的加持下,大概都能从中受益。 之所以想写这本书,是因为我在过去一两年开发过不少浏览器插件(如微信读书笔记同步助手 Notepal, 浏览器 AI 助手 SumBuddy, 专注插件 等等标签 等等),积累了不少经验。这几年越来越多…
阅读全文
05在 AI 越来越强大的这段时间里,我思考得比较多的一个问题是,我们是否高估了智力的重要性。 引起这个思考的原因有很多,一是大语言模型的进化程度让我感受到,语言模型在智能(推理、学习速度、知识广度等)方面已经远远超越人类,而这样的智能是每个人都能运用的。也就是说,人类完全可以把需要智能的行动交给 AI 处理,人类更多地是负责决策层面的工作。 二是因为我自己就是一个智力平平的人,小学当我学到除法的时候,我花了很长时间才理解除法是什么。我在开始学 JavaScript 的时候,也花了很长时间理解什么是 callback, 为什么函数能作为参数被传递和调用。 但我这个智力平平的人还是得到了算是不错的成果。我总是对别人说,我不是一个很聪明的人…
阅读全文
06我从两年前开始放弃了所有笔记软件,换用 Apple Notes 记录我的所有笔记。这个举动缘于我读了 Tiago Forte 的一本书 The PARA method. 可能大家比较熟悉他的另一本书 Build The Second Brain, 是关于如何使用笔记软件构建自己的「第二大脑」。这本书也有提到他的 PARA 理论(我在我之前的文章也有提到过我如何应用这个理论管理我的笔记)。两本书都读过以后,我认为 The PARA Method 这本书更偏向实操,我从中收获了更多的方法论。如果你只想读一本,那么我推荐读这一本。 读完这本书后,我立即在 Apple Notes 中基于 PARA 方法建立起了笔记组织的形式,这一套组织形式…
阅读全文
07趁着国补,把手头用了 5 年的 MacBook Air M1 换成了 MacBook Pro 14 寸 M4. 顺便手动重新配置新电脑,在此记录一下每次设置新电脑时我会做的一些设置和必装的软件。 设置 把点按切换成轻点: 我不喜欢用触摸板点按拖动来移动窗口,觉得有点费力,所以我会调整为三指拖移。旧版本的 OS X 可以直接在系统设置中调整,新版本的 macOS 竟然把它归类到辅助功能里了: 把 Control 键和 Caps Lock 键互换。因为我需要频繁使用 Control 键,Caps Lock 的位置是最合适的,这也是 HHKB 的默认布局: 取消 Spotlight 的所有索引,因为我用 Raycast, Spotligh…
阅读全文
08高中时我读吴军的《浪潮之巅》,觉得很可惜,我出生太晚,错过了一个又一个的浪潮。我总是想,如果我身处这些浪潮,是否也会造就一点什么?我是不是也能创造一家了不起的企业而为人常道? 那时我才 17 岁,我在沙滩上观望浪潮,抱怨生不逢时。而现在,我 29 岁,已经在海中游泳多时。就在这几年,OpenAI 发布 ChatGPT 后,这片海似乎又卷起了一波巨大的浪潮,又有人站在了浪潮之巅,但我还没有。我已经无法再抱怨生不逢时,因为我已经在海里了。在很多个深夜,我差点就想承认,我这辈子只能是一个普通人,我太高估自己。但到了第二天,我又开始不服气,还是不能接受作为一个普通人活着,想做出伟大的产品,想做一家伟大的公司,想在世界上留下一点美妙的痕迹。…
阅读全文
09Sam Altman 最近有一个关于 AI 和写作的访谈,让我开始思考 AI 辅助写作这个课题。 在辅助生产代码方面,Cursor 和 GitHub Copilot 已经证明了 AI 和人类在编程方面的协作非常有效。通过代码的上下文和注释,加上人类显示声明需求,AI 能很好地完成写代码任务。 我在思考在写作的时候,是否也能有一个 Copilot 辅助人类更好地写作。 大部分人不会进行深度写作,根据二八法则,80% 的人在消费 20% 的人生产的内容。这 80% 的人,偶尔进行浅度写作,例如写社交网络的动态、写用于工作中用于信息同步的文档。这类写作,我认为 AI 可以辅助的地方非常有限,用户基本不会主动为这样的场景寻找专门的写作工具或…
阅读全文
10最近大量地使用 Cursor 替代了 VS Code, 开始习惯直接在编辑器里告诉 AI 我的需求,让它来代替我写出代码段。 请注意,我用了「代码段」这个词,而不是「代码」,因为我想做一个区分 —— 按照我目前的经验来看,生成式 AI 非常擅长生成一段内聚的代码,而不是一整个应用程序。 在没有 AI 生成代码前,我写代码也是这样的一个流程: 思考整个应用的架构、模块 选择适合的技术栈 开始写代码,设计目录结构、抽象 真正开始实现实现 AI 也许能为第 1 和第 2 点提出建议,但我目前不需要。第 3 点我认为对于稍微复杂一点的生产级应用, AI 还做不到把这一块也做到。可能很多人看到现在 Claude 直接能写出一个全功能的 Tod…
阅读全文2023 年的 5 月,我离开了微软,开始了自己做产品的旅程。到现在刚好满了一年,这一年发生了不少事情,有些在 2023 年终总结里提到过,这一篇我想更详细地列出在这一年我具体做了什么、对自由职业的思考、对做产品的一些思考等等。 首先是我的产出,这一年我的产出主要是两个产品、一个播客。 两个产品 Notepal 离职后第一个认真做的产品是 Notepal, 这是一个用于把微信读书笔记同步到各个笔记应用的插件。我在这篇文章详细写过这个产品的起源和在做这个产品的时候的一些思考。我在做这个产品的时候完全没有想到,这个只卖 50 块的插件,在这一年帮我付了我一整年的房租。 EpubKit EpubKit 是另外一个我投入比较多的产品。这是一…
阅读全文
12上周刚刚发布了一个用 Electron 的应用 EpubKit. EpubKit 是一个把网页制作成电子书的工具。在 EpubKit 里,我需要一个数据库来存储内容,最好的选择是 SQLite. 但是,由于 Electron 有 renderer 和 main 区分开的机制,所以在 Electron 中使用 SQLite 会非常麻烦 —— SQLite 的执行要在 Main process, 但调用要在 Renderer process. 在 Electron 里,Renderer 和 Main process 之间的通信是通过 IPC (Inter-Process Communication) 实现的。也就是说,我可能需要把每一个…
阅读全文
13虽然我有 Switch 游戏机, 但我不是游戏的发烧友,对任天堂及其社长岩田聪更不甚了解。前些天听《半拿铁》的《任天堂往事》系列,对任天堂的发展有了一些了解,也听闻岩田聪同时是一个非常出色的程序员,所以开始对岩田聪产生了一些兴趣,于是找到了这本收集了岩田聪说过的话的书,希望能一睹这位天才程序员对管理企业和写程序有哪些独特的见解。 这本书不长,读完后我对岩田聪确实有了更多了解。首先是从他身上学到了一些管理企业的方法。 岩田聪的管理风格非常务实和「接地气」,他讲到他喜欢和员工一对一面谈: 我在与全体员工谈话的过程中,发现了许多“经过面谈才头一回意识到的事情”。就算对方是一向保持着沟通的人,也有在一对一的场合才讲得出口的话。这样说或许不太…
阅读全文
14昨天 Sixian 提到了 React 的新版官方文档,之前一直没有去读,今天抽空读了其中 Escape Hatches 的部分,有一些收获,也有一点感想,在这里简单分享一下。 声明:我经常使用 React, 但我不是 React 的专家,我也不再是一个对技术会进行非常深入探究的人了。所以对于 React 最新的一些 API, 可能对某些人来说是老生常谈,但对我来说是新鲜的。所以本文只是简单分享一下我看到的之前不知道的一些 API. 跑两次的 useEffect 开发环境 useEffect 跑两次是故意的,是为了帮助开发者在开发环境中发现你是否正确地给你的 effect 做了 teardown. The right questio…
阅读全文
15可在小宇宙收听本文音频版 变化 2023 年初,持续了 3 年的疫情封控结束了,整个社会迎来了一个转变的开端,没人知道会变好还是变更糟糕。随后 3 月,我决定离开微软,我自己也迎来了一个转变的开端,我也不知道会变好还是更糟糕。 我财务自由了吗?如果财务自由有一个绝对值,那么无论是多少,我肯定都没有达到。离职后有很多朋友问过我这个问题,现在刚好可以在博客也跟我的博客读者分享:当我在考虑不工作时,我在思考什么? 1. 如果继续现在的状态,那么 3-5 年内我会有什么不同? 这是我在考虑是否入职微软之前用的同一个方法,是我朋友教我的。当年我觉得如果不入职微软见识见识,我一定会后悔,留在原来的公司也不会有太大的变化。今天即使我已经离职了,但…
阅读全文写下这篇文章是我的插件 Notepal 发布的第三天,目前收获了几十名付费用户,在这短短几天已经有 5000 多条微信读书笔记被同步到 Readwise, flomo 或 Obsidian 中。 (28 号没有数据是因为那天出了事故,日志没有进来。) 很感谢点进这篇文章的你没有因为 1000 元是个小数目所以选择无视,这个数目确实很小,它甚至没有很多程序员坐在办公室待一天赚得多,但「有人愿意购买」的意义远比数目的大小对目前的我来说意义更大,而且我在开发和上线整个过程中学习到了不少,也实践了不少我读的一些关于 start a business 的书,我发现在亲身经历了这个过程后,再重读这些书,体会更加深刻,所以我很想在这篇文章和大家分…
阅读全文
17在清迈结束了一周的禅修学习,想把自己的体验和感悟写下来,才发现这些我感觉不可思议的体验,用文字和图片表达出来是多么的苍白。 事缘起年初意识到自己的心理健康状态不再适合继续工作,遂辞职休息。刚好看到早见小姐分享了她在巴厘岛冥想的点滴,才发现泰国清迈有寺庙提供冥想学习。于是当晚就找好了寺庙,订下去泰国的机票。 我在出发前一直在想这次远行学习到底能不能符合我的期望学习到「真正的」冥想技术。一周下来,我的感觉是这一周学习到的和体验到的远远超出我的期望。我不仅在老师的带领下练习冥想,还对佛教有了新的认识。 通往幸福的道路在哪里 我到的第一家寺庙是 Wat Umong, 中文应该译作乌蒙寺。我在这里待了五天四夜。Umong 基本是靠自己练习,没…
阅读全文
18冯大辉 Fenng 发了一条 Tweet 问 对于各位高考过来人,如果成绩只能上二本,要不要复读? 以下是我的想法。 我当时考到的是二本,除了学费贵一点之外,我觉得都挺好的。我个人的浅见是,命运是没有人能预测的,复读和不复读是两个不同的分支。当然这说了等于没说。所以我来试试纸上谈兵一下: 我们假设复读一定能考上一本,那么我们可以把问题简单化为一个博弈:是否用人生的一年时间去换这个一本学历? 我有一个高中同学选择了复读,最后考到了比不复读更好的学校,但是在我对他的理解和我的个人认知里,他复读和不复读,并不会有很大的区别。 在我有限的经验观察里,人和人的距离,一本和二本的差距只占了非常非常小的部分,最重要的是人本身,他是否能客观地认知自…
阅读全文本文视频版: YouTube Bilibili 作为一个程序员,我每天都会消化大量的信息。我以前总是会担心我花了这么多时间读各种各样感兴趣的内容但最后都派不上用场,或者不知道怎么找到想要的东西。所以我喜欢学习一些关于知识管理的方法论,然后结合自己的情况慢慢摸索出一套比较适合自己的笔记方法。在这个影片我就要给大家分享一下我从浏览信息到记录笔记再到输出的整个过程是怎么样的,我是怎么在我的笔记工具里整理我的笔记的。 其实与其说是在「记笔记」,我觉得更贴切的说法是我们在构建我们自己的「第二大脑」。我们本身的大脑的长处不是记东西,而是思考和创造。所以我们需要借助计算机创造一个我们的「第二大脑」,把我们见过的有价值的东西一直记住,等我们需要的时…
阅读全文
20一 今天是我的 28 岁生日。 在 2016 年的生日,我在博客写下了一篇《21 岁我想说的》,那年我进入了「大厂」,获得了世俗意义的「成功」,于是写下了这篇充满雄心壮志的文章。我觉得我离自己想要的「成功」越来越接近,我终于要用技术让别人刮目相看,用技术做点有意义的事情,帮助公司的业务 move fast. 我 13 岁就梦想的事情,在那一年成真了。 很感谢当年的自己写下了那篇文章,记录下来我的年少轻狂。就像王小波在《黄金时代》里所说的: 那一天我二十一岁,在我一生的黄金时代。我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云。 但是直到今天我 28 岁,我才深刻地理解这段话的下半段: 后来我才知道,生活就是个缓慢受锤的过…
阅读全文
21今年的年终总结写得有点晚,2021 年觉得自己一事无成,迟迟没有动笔。如今 2022 年也已经过去了,虽然同样觉得自己在今年一事无成,但转念又想自己应该给自己一个回顾的机会,终于还是动笔了。 琐碎的生活变化 2022 年因为工作的变化,主要都生活在苏州。苏州是一个很「慢」的城市,我算不上特别喜欢,但我很喜欢苏州的湖。我在 ByteTalk 的这期播客节目 里提到过一些我对苏州的看法。 苏州的一些区域可以骑摩托车上路,我喜欢摩托,所以买了一辆摩托通勤,周末偶尔也会到不同的湖边溜溜车,还认识了一些摩友。 意外的插曲 我从多年前开始受情绪问题的困扰,在 2021 年开始变得更严重,到了 2022 年,它变得更加凶猛。 那根一直在紧绷的弦,…
阅读全文
22保持一颗解决问题的心 按照我的观察,那些在工作中用技术取胜的人们共同点都在于他们能保持一颗解决问题的心。他们可以率先想到一种更优的手段解决存在的问题(一般是效率问题)。他们不是嗅觉特别灵敏或者技术特别强,而是当他们遇到了问题,不是把它作为抱怨的话题,而是开始思考这个问题为什么没人解决、应该怎么解决,然后把它实现出来。这种心态在职场上特别稀缺。 我在创业公司的时候做一个图文排版的 App, 设计师会设计一些模板,然后交给我来实现。当时我们有很多模板,为了测试这些模板实现在不同的手机屏幕大小会有什么问题,我们要花特别多的精力。可以想象测试的数量 = 模板数量 * 屏幕尺寸的数量。后来我用 puppeteer 写了个自动生成不同屏幕和模板…
阅读全文倪爽 在 Twitter 推荐了这本书,对于喜欢写作的我来说很吸引,花了很短时间就把这本书读完了。在这里推荐给大家。这本书主要给认为写不出来文章的人提供一些指南,书的前半部分是方法论,后半部分是写作套路(或者说写作框架)。 九宫格指的是在写作之前,从文章的中心,可以扩散出 8 个方格,填写和这个中心有关的信息,型成一个写作九宫格。九宫格的作用是在写作前迫使你先对文章中心进行思考、提出问题,然后进行填充。是一种帮助你在写作前收集信息的辅助手段。 所以通俗地讲,九宫格写作法的核心在于训练你在写作前的信息收集习惯。书中有一个比较确切的例子:如果你准备一场旅行,打算旅行过后写一篇游记。你就应该在旅行之前就画好一个九宫格,填上这篇游记你想要写…
阅读全文
24对于我来说,我一直认为自己缺少做决策的能力。成年人的生活不像学生时代,所有的题目都有固定答案。所有的选择都不存在绝对的对和错,它只是在人的一生 checkout 了一个新的 branch. 我总是不知道应该如何做决定。 刚好看到了 Jeff Bezos 曾经谈到了自己是如何做决定的,他称之为 Regret Minimization Framwork (遗憾最小化框架) —— 他会想象自己到了 80 岁的时候,是否会认为不做这件事情会让自己遗憾。尽量让人生的遗憾数量最小化。即使当时的选择后来看来是错误的,但也不会后悔尝试过。 我很受启发。想起在 4 年前,我曾经问 Cycle.js 的作者 staltz 一个 问题, 我问他是否也会因…
阅读全文我在退学的那一年写了一篇《你根本用不着退学》来告诫想退学的人慎重选择退学这种方式。今年是写完这篇博客的第五年,我想结合五年来作为一个辍学生遇到的经历,再谈谈退学。 我第一次感受到辍学给我带来的副作用是刚辍学不久的时候,曾经给一些「大厂」投过简历,在 HR 筛选简历的一轮就被筛选掉了。我当时对进「大厂」的心理预期本来就很低,所以这对我来说根本影响不了我的心情,被筛选掉反而是正常结果。我很幸运,阿里的其中一个部门鬼使神差地给我了一个机会,我最终顺利通过了面试。 我辍学后在别人眼里过得一帆风顺,是因为我受到了运气的眷顾。我很幸运,我出生在一个小康家庭,可以让我从小就能接触到我往后一生都热爱的计算机和互联网;我很幸运,在辍学前遇到了李秉骏先…
阅读全文
26Babel 官方最近发布了一篇博客 称 Babel 团队的 funding 已经不够了。一直以来我零碎地捐赠过一些开源项目和个人,在卖贴纸和 T 恤的时候也把大部分的利润捐赠给了 Vue. Babel 这件事让我有了固定每月捐赠一些开源项目的想法。 目前设定的是每月至少 $20 (约 130 多元人民币) 的预算,这样平均至少可以捐赠 4 个不同的项目。我可以在这个预算内根据我的技术栈灵活地选择我对哪些项目进行捐赠。 我个人会选择一些这样的项目进行捐赠: 我在做 side-project 的时候经常会用的项目 项目没有融资背景(例如我非常喜欢 Prisma, 可是它已经有了 $12M 的 A 轮融资) 做了一些我用到的工具的个人开发…
阅读全文在 我对 Svelte 的看法 一文里,我分析了 Svelte 在编译时实现 Reactive 的原理。在这篇文章,我将分析在 Svelte 里更新一个状态 (state) 值后更新到 UI 的这一过程。 阅读本文前,你应该至少: 读过 我对 Svelte 的看法 明白 JavaScript 中的 事件循环 机制 原理分析 为了保持简单,先从一个和 Svelte 无关的例子讲起: // 假设我们正在实现一个 counter, 只有一个 state,就是 count, 它是一个 number: let count = 0 // 我们可以实现一个 setCount, 来改变 count 的值,顺便执行更新 UI: function se…
阅读全文购买链接 我对 Apple 的钦佩除了是因为产品本身的设计和体验,还有 Apple 作为商业巨头,对个人隐私、环保、无障碍等等这些「人文关怀」有着并非门面功夫的执着。读这本书之前我没有想到这些执着其实大部分来自于 Tim Cook. 2014年5月,美国国家公共政策研究中心保守派智囊团的一名成员逼迫库克衡量可持续发展项目会给苹果带来的利益损失,库克拒绝了,他说:“当我们付出努力,为了让盲人也可以使用我们的设备时,我是不会考虑该死的ROI(投资回报率)的。苹果在发起环保倡议、保护员工安全和其他政策时也是如此。“如果你让我做事的时候,唯一关心的就是投资回报率,那我希望你马上抛出苹果的股票!”库克向这位保守投资者吼道。 谈到慈善这件事,乔…
阅读全文
29我在很早前已经听说过 Svelte, 但是一直没有机会在新的项目真正地用上。最近在尝试模仿实现一个 Roam Research 的编辑器,考虑到可能会有大量和 DOM 交互的逻辑,所以我趁这个机会选择了 Svelte, 目前这个编辑器的已经完成了大部分的功能,开源在 https://github.com/djyde/plastic-editor . 在开发的过程中我对 Svelte 非常满意,这篇文章打算就我的体验来说说我对 Svelte 的一些看法。 你需要有使用过任意一个前端框架的经验才能读懂本文。这篇文章不是一篇 Svelte 教程,如果你想学习 Svelte, 请浏览 Svelte 的官方教程,本文试图通过告诉读者 Svel…
阅读全文
30偶尔看到这篇名叫 Consume less, create more 的文章,是作者从「消费者」转变为「生产者」的心路历程。他每天在巴士上面用 iPhone 写点什么,最终写出了这篇文章。 我从懂事开始就一直觉得自己在这个世界上与众不同,觉得自己的出生一定是背负了某个特殊的使命。后来发现原来每个人年轻的时候都是这么想的,随着年纪渐长,大多数人开始接受自己只是个普通人的事实。我也不例外。 但唯一没有变过的是我没有因为意识到了自己的平凡而停止了试图变得不平凡。其中的一个表现就是我希望在这个世界上,我是作为一个生产者存在的,而不只是一个消费者。 写博客、编程、做音乐都是我的生产,即使我写的博客没有让我成为几十万粉丝的 KOL, 我写的代码…
阅读全文COVID-19 疫情最严重的时候我在广州,记得我 12 月底从杭州飞回广州的时候,根本没有想到事情会发展得和 SARS 一样严重。印象中那个时候的关键词是:安静,冷空气,未知。不知道这样的情况会持续多久,每天关注着 Telegram 的 Broadcast 看新增的感染有多少。同时还远程办公着,做着「花呗来电」的需求。没错,就是那个让你付钱还要每月打电话提醒你还花呗的服务。 没想到多年前我们都在探索的远程办公,会因为一场传染病让更多人体验到了。但显然,我体验到的只是畸形的远程办公,他披上了远程办公的外衣,让我们每个人变成了 On call 24 小时 —— 比如我甚至在炒菜的时候还要接入电话会议。 我思考了很多,在 4 月份决定离…
阅读全文
32这个月我将离开阿里巴巴,结束至今 4 年的阿里生涯。 在阿里的 4 年我体验到非常多的东西,了解到了作为一个「职业程序员」的工作状态,认识了很多很靠谱的同事。尝试了一些东西,创造了一些东西,也吸收了一些东西。 我很幸运,这几年我遇到的老板都对我非常好。在 UC, 甄子给了我很大的自由度,让我得以在技术上做很多的探索 。在花呗,完颜和我一起做了很多次难忘的乐队演出。我很喜欢 花呗前端团队 ,这里的同事很有趣,在一起工作非常快乐,他们在面对复杂且繁忙的业务时展现的专业性是我难以企及的。 Why leave? 在大公司,成为一个优秀的业务型程序员要做的更不仅仅是理解业务需求。而我更擅长的是用技术解决效率问题、通过设计降低软件复杂度(Pro…
阅读全文
33争论框架是个无聊的事情,有一天在开车的时候我突然想到选框架和选车是一样的。 React 就像手动挡,Vue 就像自动挡。你不能因为你会开手动挡就看不起开自动挡的,我想正常的驾驶员在城市代步都会选择开自动挡。我只想代个步,为什么不把复杂的事情交给变速箱呢。 当你要下赛道,你可能要选择手动档。因为你相信你的人脑比变速箱要聪明得多。你需要由你自己的大脑控制最重要的事 —— 赛车里是速度,软件开发是性能。useMemo 或者shouldComponentUpdate 就是你车里面的那根档棍。 用手动档的没有必要看不起用自动档的,人家根本不在意这车能不能开到极速,只想安心开开车顺便摸摸副驾驶的大腿;用自动档的也没必要在路上看到别人开手动档的就…
阅读全文如何让用户愿意花钱购买你的软件 / 服务 ? 如果你也在思考这个问题,那么你一定要读一读 Kathy Sierra 写的 Badass: Making Users Awesome (中文译作《 用户思维+ 好产品让用户为自己尖叫 》) 想象一下,有一天,你看到有人在网上写了一篇如何记账和理财的文章,读罢,备受鼓舞,文章的作者在里面提到了如何用一个 App 高效做记账,于是你买下了这个 App. 背后驱使你买这个 App 的原因是什么?是因为你觉得这个 App 很不错?不,是因为你想成为那个善于理财的人。 这就是这本书的观点 —— 用户购买你的产品,他在意的是用了你的产品,他成为了什么样的人。所以,如何打造一个可以持续获得用户的产品,…
阅读全文V2EX 这两天有一篇这样的帖子:《说句实话,我后端现在已经看不懂前端了,太难了》 原文内容是: 看不懂惹,肿么办,最近在学 react,完全抓瞎。 然后又附加了内容: 一直用的 jquery,手动找位置然后对应 dom 操作,现在各种前端各种依赖,一会 route 一会 webpack 的 给爷整蒙了都。 类似这样的帖子多年来数不胜数,但这次评论区的评论比较典型,所以我决定这次不再沉默。当然,本文并非针对帖子作者。 对于那些抱怨前端「看不懂」的网友,我们应该问他们一个问题:为什么前端就应该是谁都能看懂? 这些网友从来不会抱怨别的领域的代码看不懂,比如他们不会说「我一个前端已经看不懂后端了」,或者「我一个后端已经看不懂 iOS」了。…
阅读全文总结 2019 年 3 月我来到杭州,在蚂蚁金服开始了新的工作。这是我第一次在广东省外的地方生活。 新的环境,新的工作,对我来说是一个很大的挑战。挑战不在于如何适应一个新的环境,而在于在一个技术基建完备的环境里,如果业务难关不是技术可以解决的,那我的价值在哪里?在这个方面,我让很多对我抱有期望的人失望了。 「我的价值是什么」是我不断寻找答案的命题,我不满足只作为一个消费者活在世上。只有作为生产者创造自己独特的价值,才让我觉得自己是这个世界的一员。 我创造了很多,但好像只有写博客算是对别人来说稍微有价值的东西。现代的人又不怎么喜欢认真地看文字了,写好一篇文章的阅读量也不比同样内容的一个视频高。就连我一个关注了很久的独立博客博主,也转了…
阅读全文
37我和父母的关系很糟糕,在小时候,我们之间的「交互」方式大部分是命令、教训,严重的时候甚至打一顿。我很讨厌被命令去做家务。 成年以后,即使脱离了原生家庭,但无论是工作伙伴之间的合作,还是处理亲密关系,都偶尔会出现矛盾,形成无效的沟通,甚至产生情绪。 很幸运我读到了《非暴力沟通》这本书,让我发现我在日常接触到的沟通中,多少隐藏着无形的暴力。 全书围绕非暴力沟通的四个要素进行讲解:观察、感受、需要、请求。如果沟通没有这些要素,那么这些沟通最终的结果很可能是情绪化的收场,又或者成为了压死骆驼前的每一根稻草,总有一天爆发。 在一段亲密关系中,我们很容易听到或自己说到过这样的话:「你怎么每次都这样」。这样的一句话,很容易使对方产生抵触情绪,导致…
阅读全文
38这是一封 2014 年我写给未来的自己的信。当时在上大一,是上职业规划课时老师布置给我们的一个作业,写完我们就交给老师保存,他会在我们大学毕业后返还。 老师通过微信联系我说有封信在他那里,并拍了这张照片(图为我用 Office Lens 处理后)。我早已忘掉我曾写过这封信,看完后我就全记起来了。 记起来刚上大学时对未知的憧憬,记起来在教室听无聊的网页设计课,记起来退学那天给宿舍阿姨还了钥匙后坐上中巴回广州市区的时候听的那首《一路向北》。
阅读全文
39如果你被本文的标题吸引,那么你应该已经试过很多次雄心勃勃地开始选择你喜欢的静态网站生成器 (Static Site Generator), 然后精心挑选或者自行手写一个你钟意的主题,写下一篇题为 “Hello World” 的博客,宣称从今天起重新开始写博客。几个月后就再也不更新了。 为什么你总是无法坚持写博客?和很多「为什么无法坚持做某事」的问题一样,我们得先弄清楚为什么要写博客。 我听过很多人想建博客的理由是想把博客当成笔记本,记录自己学到的东西、遇到的问题和解决方法。这是一个让博客最终走向荒废的理由,因为你在笔记本就可以做到类似的事,除非你记录的问题有你自己独到的思考,否则网友们更愿意去看 StackOverflow. 写博客…
阅读全文我在 2016 年初加入 UC 的国际业务部,负责为 UC News 搭建运营后台。随着前端团队人数越来越多,我开始推动团队的前端技术栈统一以及前端工程化,开发了一个叫 Cans 用于快速搭建中后台前端应用的框架。直到了 2019 年我离开 UC, Cans 仍然服务于 UC 的国际业务。 本文主要记录了我如何从 UC News 运营后台孵化出这个内部框架,以及其背后的设计理念。虽然 Cans 没有开放源代码。但我认为相比这些工具的源码,那些我在开发这些工具背后的理念、思考,更有被分享的价值。也算作是对我在 UC 工作的一个总结。遂有此文。 我们在做 UC News 运营后台的时候,面临的最大问题是:当有新的业务需要我们团队支撑开发…
阅读全文
41从 2014 年开始写博客以来,因为不设评论区,我收到不少读者的 Email 来信。透过 Email, 来信的人比评论区直接评论要更严谨一些。来信中的大部分是请教问题,其它则是一些感谢的话。 几天前我购买了一块软木板挂在自己的房间,想到可以把一些有意思的读者来信打印出来钉到软木板上。于是在收件箱整理了 2014 年至今 5 年来收到的所有读者来信。 其中我发现一封 2015 年的已经被我淡忘的邮件: 这是一位在国外当老师的妈妈,特意来信想为她的儿子寻问关于编程的问题。当时我回信尽可能地写了很多浅薄的意见和经验分享,后来就再没有通信。这位母亲让我感动。 时隔几年再看来往的信件,无论是提到的这位母亲,还是其它特意发来感谢的读者,他们让我…
阅读全文
42昨天在回杭的飞机上看完《Newness》, 一部探讨开放性关系的电影。男女主角都喜欢新鲜感,最后因为约炮堕入爱河,但很快开始感到关系平淡和厌倦,于是尝试开放性关系. 各自一番经历后最终决定放弃自由,认真经营这段感情。 我很喜欢探讨这种两性哲学问题,因为我在看待两性关系中有些犬儒主义 —— 我不相信人性,不相信忠诚,世界上充满诱惑。更愿意相信大多数的婚姻是一场交易。 当两人初试开放性关系时,遇到一位专家在谈论「外遇」和「开放性关系」的成因,她说: When I go to look for someone else, it’s not always because I wanna get away from you, it’s bec…
阅读全文
43声明式编程 (Declarative Programming)是一种编程范式。现实世界中,我们大部分编码都是命令式的。 举个最常见的例子,对于用 JavaScript 来构建 UI, React 是声明式的。 // 普通的 DOM API 构建 UI const div = document.createElement('div') const p = document.createElement('p') p.textContent = 'hello world' const UI = div.append(p) // React 构建 UI const h = React.craeteElement const UI = h('…
阅读全文
44有次和朋友提到移民的想法,他说,为什么不考虑日本呢?我的回答是,我对日本没有特别的情感。朋友说他正相反。然后他问道:难道你的童年没有看日本动画吗? 我的童年除了阅读,大部分信息的获取来源于电视机。我从电视机看过的日本动画不少 —— 在 CCTV 少儿频道看《四驱兄弟》,在 TVS (南方卫视) 看《哆啦 A 梦》,在华娱卫视《通灵王》、《军曹》,在本港台看《游戏王》,在翡翠台又看了不计其数的,就不一一列举。 我从这些动画片里感受不出日本文化,一是因为都是中文的配音,二是基本上我看的都是虚构类作品,无法从中了解到日本的文化生活。只有翡翠台偶尔播出一些配音的日本真人电视节目,让我了解到日本的街道和风景是如此模样,但仅此而已。 不过我却很…
阅读全文王小波在《跳出手掌心》里有这么一段话,初读时使我似醍醐灌顶: 我上大學時,有一次我的數學教授在課堂上講到:我現在所教的數學,你們也許一生都用不到,但我還要教,因為這些知識是好的,應該讓你們知道。這位老師的胸襟之高遠,使我終生佩服。我還要說,像這樣的胸襟,在中國人文知識分子中間很少見到。 把「知识」换成「普世价值」,我认为道理同样成立: 我们追求普世价值,是因为普世价值是好的,是对的,只要你是人类,你就应该拥有他。如果有人不幸失去,那么就应该帮助他。 令人难过的是,由于一系列客观条件,一部分人无法对此感同身受。普世价值和民族无关,和国籍无关,它属于全人类。一旦能意识到一点,那么这些人就很容易能识破一些延用了近半个世纪的可笑的借口和谎言…
阅读全文如果问工作以来我悟出的最重要的观念是什么,那就是,人生是一个不断取舍的过程。 我们总是在作自己未来的规划和目标的时候说,我想要什么,而忽略了问自己一个问题,「我愿意为此舍弃点什么」。我们逃避了残酷的事实 —— 我们每天只有 24 小时,我们什么都想要,但这是不可能的。 意识到这一点,有利于我们做很多的决策,而且对很多让你感到可惜的事都释怀了。 有人总是会在年初列下自己的读书清单,但直到年底,发现自己一本都没有读完。这是很多人懊恼和焦虑的来源 —— 为什么我总是无法履行自己的规划? 过去我总会把原因归咎于没有做好时间管理,但后来我顿悟了,在列下读书清单时,并没有问自己这样的问题 —— 你愿意为读书带来的精神收益,而舍弃点什么? 如果你…
阅读全文本文不提供训练计划 本文不提供饮食计划 我在《2018 年终总结》里提到了我健身的成果,在这篇文章里,我将分享我健身的过程,以及身体上、心智上的一些成长。 接触健身的经历 说来惭愧,我第一次接触健身是 2015 年。当时刚出来工作,有点闲钱,看到镜子里的那只瘦猴,决定开始去健身房增肌。于是在知乎搜索了很多关于增肌的回答,选了住处附近的一家健身房,就开始瞎练了,没有计划,也不知道怎么做计划。 那时我身高 165, 体重 46kg. 想做卧推,空杆(20kg)都推不起;想做划船,动作做不好。这时候在健身房确实很大压力,什么都做不好,还怕占着别人地方。 这样坚持了 2 个月,没什么效果。自然就放弃了。过了一段时间,我决定花钱请一个私教,重…
阅读全文大人热爱数字。如果你跟他们说你认识了新朋友,他们从来不会问你重要的事情。他们从来不会说:“他的声音听起来怎么样?他最喜欢什么游戏?他收集蝴蝶吗?” 他们会问:“他多少岁?有多少个兄弟?他有多重?他父亲赚多少钱?”只有这样他们才会觉得他们了解了他。 如果你对大人说:“我看到一座漂亮红砖房,窗台上摆着几盆天竺葵,屋顶有许多鸽子……”那他们想象不出这座房子是什么样子的。你必须说:“我看到一座价值十万法郎的房子。”他们就会惊叫:“哇,多漂亮的房子啊!” —— 《小王子》 2018 对我自己来说,是灰心的一年。这一年除了和往年一样的焦虑以外,也没有做成什么我认为了不起的事。很大的原因是我对技术失去了信心。 小时候,我最大的理想是「用技术改变世…
阅读全文
49今年身边的朋友陆陆续续毕业出来工作了,偶尔有机会的时候会聚在一起聊聊,然后谈到各自的就业情况。我发现有很多朋友还不知道自己想从事的职业是什么,因此也不知道自己未来会怎么样,先做着现在能做的。 因为我的经历特殊,有人也会对我开玩笑说真不知道读书有什么用,还不如早点出来工作。我知道以我朋友的受教育程度来说,这肯定只是玩笑,他们不可能是「读书无用论」者,所以我也会附和着笑。 虽然这只是句玩笑话,但是确实令我回顾了一下我从我的在校生涯中得到了什么东西。 我首先想到的是英语。我的小学是从一年级开始就有英语的课程,所以我接触英语的时间很早。我自认小学四年级以前我还是个很乖的学生,上课认真听讲,作业按时完成。所以我的语数英成绩都很不错。从小培养了…
阅读全文当我问应聘者「你有什么问题想问」的时候,大多数应聘者会问我前端应该怎么学。我每次都会很真诚地按照面试过程对他们的了解尝试给他们一些建议。从多次的交流当中,我倒是慢慢地了解到了前端领域里很多普遍的问题。 前端有很多不同的框架和库。 我上大一的时候,有一门课叫网页设计,前几个课时教 HTML, 又教一个课时 CSS, 再教一个课时 JavaScript. 然后是 jQuery. 当时我很气愤,学生连 DOM 是什么都还没搞清楚,就要他们用 jQuery,这不是误人子弟吗。我后来想明白,学校大概已经把 jQuery 看作是饭碗了。 把库和框架看作饭碗是无可厚非的, 我们不能苛刻地要求所有程序员都对软件开发抱有发自内心的热爱。但是急功近利地…
阅读全文