MoreRSS

site iconDeppWang | 德普王修改

男|程序员|爱折腾|工具控|五笔 er|麻将爱好者
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

DeppWang | 德普王的 RSS 预览

Readwise Reader,一个愿意打开的稍后阅读工具

2026-02-10 12:43:05

长久以来,我一直在寻找一个称心的稍后阅读工具。从 Pocket 到 Raindrop,我都用过一段时间。Raindrop 存在一个矛盾的问题:它的数据永久保存功能需要付费,但如果只当收藏工具用,又有 MarkMark 等产品可替代;如果当稍后阅读工具用,付费倒也合理,可问题是——我不愿意打开它。

我甚至想过自己开发一个 AI 驱动的增强版 Raindrop,加上自动标签、智能推荐、小红书式浏览……需求是真实的,但自己造轮子不现实,一个人根本做不完。

直到我遇到了 Readwise Reader

一个稍后阅读工具,如果你不愿意打开,那它保存再多内容也没有意义。Reader 是我第一个愿意主动打开的稍后阅读工具,原因有三个。

第一,阅读体验好。Raindrop 只有 List 视图,没有底部 Tab,打开它更像在翻一个收藏夹,而不是在用一个阅读工具。Reader 不一样,它的界面就是为阅读设计的,打开一篇文章,读起来舒服,让你愿意停留。

第二,操作逻辑顺。用 Raindrop 的时候,我自己建了一套标签体系来管理阅读状态:uninput(未读)、inputing(在读)、input(已读)。这套逻辑本身没问题,但每次都要手动打标签,操作起来有摩擦。而且 Raindrop 保存文章时,光标默认停在备注栏而不是标签,这些小细节堆起来,体验就差了。Reader 原生就有 Inbox(未读) → Later(在读)→ Archive(已读)的流转,和我在 Raindrop 里手动搭建的逻辑完全一致,但不需要自己建标签,拖一下或者点一下就完成状态切换。操作少了一步,使用意愿就多了一分。

第三,随机排序。打开稍后阅读工具,面对一长串收藏列表,常常不知道该读哪篇,然后就关掉了。Reader 有随机排序的功能,把收藏列表打乱,不用从头到尾按顺序挑。这个看似简单的功能,实际上解决了「打开后不知道读什么」的问题,大大降低了阅读的启动成本。

说完为什么愿意打开,再聊聊稍后阅读这件事本身。

我们喜欢探索新的、未知的内容,也喜欢有深度的文章。看到好内容,第一反应是「先存下来」,但存下来之后呢?大多数人的稍后阅读列表,最终变成了「再也不读」列表。稍后阅读的本质是一个输入流程:探索 → 阅读吸收 → 输出。它等于「未阅读 + 正在阅读」,终点是输出,越少越好。如果你的稍后阅读列表只增不减,说明流程出了问题。当列表被打乱,每次打开都能遇到不同的内容,稍后阅读就可以成为第一选择,不再无意识的是去找新的东西。

要让这个流程跑通,有一个前提:信息源要聚合在一处。我以前的状态是,文章放 Raindrop,视频留在各个平台,Twitter 的收藏内容放书签……信息分散在各处,想统一阅读根本不可能。Reader 把这些全部聚合到了一处,网页文章、RSS 订阅、Newsletter、Twitter、PDF、甚至视频,都可以在一个地方阅读和管理。只从这一处输入,阅读流程才能真正跑通。

稍后阅读解决的是「读」的问题,而永久保存解决的是「找」的问题。读过的内容,未来某天想引用、想回顾,能不能搜到?永久保存的终点是好查找,Reader 支持本地缓存和全文搜索,读过的东西不会消失。这也是稍后阅读的自然延伸——读完了,留下来,找得到。

最后聊聊 Reader 这个产品本身。

Reader 不只是一个稍后阅读工具,它的定位是聚合自定义信息输入流。你可以把它理解为稍后阅读 + RSS 阅读器 + Newsletter 收件箱,合在了一起。除了前面提到的阅读体验和状态流转,它还支持 Feed 订阅、Twitter 集成、YouTube 视频保存(带字幕文本)、阅读时高亮笔记,以及多设备同步。

顺带说一下,很多人会混淆 Readwise 和 Reader。简单来说,Readwise 是数据中枢,汇总你在各处的高亮笔记,统一管理、回顾和导出(比如同步到 Obsidian);Reader 是阅读端,是你实际阅读的地方。在 Reader 里产生的高亮会自动同步回 Readwise。

Reader 目前的订阅费用是 $9.99/月(按年付),对比同类工具不算便宜,但如果你能一直愿意使用它,自己得到了提升,就划算。新用户有 1 个月免费试用,学生可以申请半价,邀请其他用户还能获赠 30 天(你通过我的邀请链接注册也可以额外获赠 30 天,就有 60 天)。建议先试用体验一下,两个月足够你判断它是否适合自己。

稍后阅读的终点不是收藏,而是输出。好的工具不是让你存更多,而是让你真正愿意打开、真正读完、真正用上。Reader 对我来说,就是那个让「稍后阅读」不再等于「再也不读」的工具。

macOS 利用 LaunchAgents + GitHub 自动同步文件修改

2025-12-08 11:40:01

在多台 Mac 间同步笔记或脚本可以使用 Git ,它能帮我们保留历史、解决冲突,但手动 git add/commit/push 容易忘。下面这套做法用 LaunchAgents 定时执行一个 Git 脚本,把指定仓库的修改自动提交并推送到 GitHub(或任意 Git 远端),既省事又留痕。

思路与准备

  1. 一个可访问的 Git 仓库,例如 [email protected]:demo/notes-sync.git,本机已配置好 SSH Key 或 Token。
  2. 仓库路径假设为 /Users/demo/Workspace/notes-sync,请替换成自己的目录。
  3. 写一个自动提交脚本,再用 LaunchAgents 每隔几分钟调用一次。

编写自动提交脚本

新建脚本 /Users/demo/Workspace/git-auto-commit.sh

#!/bin/zsh

REPO="/Users/demo/Workspace/notes-sync"
cd "$REPO" || exit 1

# 拉取远端,避免与他人改动冲突
git pull --rebase origin main

# 只在有变更时提交,避免空提交
if [[ -n "$(git status --porcelain)" ]]; then
git add .
git commit -m "auto-commit: $(date '+%Y-%m-%d %H:%M:%S')"
git push origin main
fi

赋权:

chmod +x /Users/demo/Workspace/git-auto-commit.sh

配置 LaunchAgents 定时执行

~/Library/LaunchAgents 新建 plist 文件 com.demo.git-auto-commit.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.demo.git-auto-commit</string>

<!-- 每 5 分钟执行一次 -->
<key>StartInterval</key>
<integer>300</integer>

<key>ProgramArguments</key>
<array>
<string>/bin/zsh</string>
<string>/Users/demo/Workspace/git-auto-commit.sh</string>
</array>

<!-- 日志便于排查 -->
<key>StandardOutPath</key>
<string>/Users/demo/Workspace/git-auto-commit.log</string>
<key>StandardErrorPath</key>
<string>/Users/demo/Workspace/git-auto-commit-error.log</string>
</dict>
</plist>

加载与调试:

launchctl load ~/Library/LaunchAgents/com.demo.git-auto-commit.plist
launchctl start com.demo.git-auto-commit # 立刻跑一次
launchctl list | grep git-auto-commit # 查看状态
tail -f /Users/demo/Workspace/git-auto-commit.log

如需停止或卸载:

launchctl stop com.demo.git-auto-commit
launchctl unload ~/Library/LaunchAgents/com.demo.git-auto-commit.plist

关键注意事项

  • 认证方式:优先用 SSH Key,若用 Token 写在脚本里,记得用只读权限并限制作用域,或在 Keychain 保存环境变量再在脚本里读取。
  • 分支一致性:脚本里固定 main(或 master),与远端分支保持一致;多人协作时保留 git pull --rebase 以减少冲突。
  • 执行频率StartInterval 300 秒适合笔记类场景;频率过高会增加推送次数,可按仓库活跃度调整。
  • 忽略敏感文件:在 .gitignore 中排除缓存、日志、临时文件,避免不必要的提交。
  • 错误兜底:查看 git-auto-commit-error.log,常见问题是网络不通、权限不足或本地/远端存在冲突。

这样配置后,Mac 会在后台定时把仓库的变更自动提交并推送,跨设备同步靠 Git 即可完成,同时保留完整历史记录。

Git 部署常见分支问题

2025-12-08 11:40:01

一、代码提交到部署分支,而导致在开发环境没有问题,而测试环境出了问题

代码直接在部署分支 dev 提交了,没在功能分支提交,在 dev 环境没有问题,功能分支合并到 test 分支部署时,丢失在 dev 分支提交的代码,出现问题

示例:test 环境出现单元测试问题,dev 环境没有这个问题,单元测试提交到了 dev 分支,导致 test 分支代码丢失

解决方式

使用规则保证正确性,而不让人来保证正确性,2 种方式解决:

  • 本地仓库设置部署分支 dev 分支禁止 commit
  • 远程仓库设置部署分支不能推送,只能通过 pr 的方式合并代码到部署分支

本地仓库设置 dev 分支禁止 commit

vim .git/hooks/pre-commit
#!/bin/bash

branch="$(git rev-parse --abbrev-ref HEAD)"

if [ "$branch" = "develop" ]; then
echo "Direct commits to develop branch are not allowed!"
echo "Please create a feature branch and submit a PR."
exit 1
fi
chmod +x .git/hooks/pre-commit

二、手动部署后测试没有生效,结果发现是代码没有推送到远程分支

流程化:推送代码自动触发部署,就没有不推送代码就部署的问题

使用运动相机当摩托车行车记录仪

2025-11-17 23:34:03

一直骑摩托上下班,前几个月一次雨后上班被一位女司机给撞了,责任清晰,对方全责。前两天雨后下班,2 个行人过马路不走斑马线,雨后路滑,制动距离变长,差点撞到了。一旦遇到交通事故,有监控还好,没监控万一遇到特殊情况,难免扯皮。为了安全,决定还是整个行车记录仪。自己规范行车,但保不齐别人不遵守规则。

2 种行车记录仪

  • 运动相机式
    • 缺点:每次需要离车拆装拿走,不然怕被偷
    • 优点:还可以当「素质提升器」
  • 专用式(摩托车专用行车记录仪,前后摄像头 + 控制器)
    • 缺点:安装麻烦,需要走线安装,线要接电瓶上;防抖性可能不过关
    • 优点:不用每次拆装

运动相机

适合的场景

  1. 行车记录仪,需要防水/防抖/清晰。如果车上有充电条件(USB 口),不需要长续航,可以边录边充
  2. 素质提升器
  3. 第一次人称视角视频:如记录小孩 / 记录婚礼 / 户外 / 旅行 / 运动 / 有水的场景
  4. 自媒体博主使用(需要走路/轻便)
  5. 录音机

正常运动相机效果没有手机好,不适合场景

  • 拍照
  • 夜景
  • 不动场景拍视频等

手机当行车记录仪

优势

  1. 省钱,不用额外购买设备
  2. 拆装方便

要解决的问题

  1. 防抖。如果直接安装在摩托车车头手机支架上
  2. 防水。下雨天使用,一般都是下雨时容易交通事故
  3. 安全。不建议使用贵重手机,摩托车的机震可能导致手机摄像头光学防抖损坏。建议使用没有光学防抖的闲置手机

摩托车的机震可能导致手机摄像头光学防抖损坏,我也是最近才知道这个知识点。如果行驶过程中还录像,因为光学防抖会主动矫正摄像头,那会加速光学防抖损坏。

即使不在行驶过程中使用手机录像,也会经常使用手机导航,虽然不使用手机录像相比使用手机录像时机震影响要小很多,但是还是有一定风险。最好还是使用个减震的手机支架,我试用了下摩多狼的减震支架,但发现没有用,减震固定得太死了,找摩友要了他正在使用的「灯昕磁悬浮减震支架」,减震可以灵活移动,效果要好不少。

不过最好不使用手机导航时揣兜里,人体的减震性最好。

运动相比对比

山狗与其它运动相机没有裸机防水功能而没有考虑。主要考虑大疆与速影 C200 系列。纠结的点主要在于大疆的价格,觉得 1000 多的售价,与基本只做行车记录仪的定位有点不匹配。看到了速影 C200 系列,就买来对比了下。

速影 C200 系列

特点

  1. 支持裸机防水
  2. 有行车记录仪模式(通电开启录像,无电自动停止录像并关机)
  3. 有 2 小时续航
  4. 有记忆功能,上次设置的数据会保存
  5. 使用 A1 内存卡即可

注意点

  1. 防抖开了会裁剪画面
  2. 防抖与鱼眼矫正不能一起用
    • 应该是防抖与鱼眼矫正都是画面裁剪,都开启画面更少,所以不能一起用
  3. 带边框时可以充电,充电口盖子可以取下

价格

  • 速影 C200:京东国补后 335
  • 速影 C200 PRO:京东国补后 539

C200 vs C200 PRO

C200 优势:便宜 200

C200 PRO 优势:

  1. 可触控操作,更方面。C200 只能按键操作
  2. 实测更清晰,晚上车库测试,能看清楚车牌

实测 2 个防抖都不太行,直接安装在摩托车镜座支架上都不太可用

C200 PRO vs Action4

C200 PRO 优势

  1. 便宜 650
  2. 更轻 (裸机 88g / 加边框 105g) ( Action4 裸机 147g / 加边框 188g)
  3. 有车载模式
  4. 有防水充电线,可以雨天充电使用
  5. 拍摄视频所占内存更小
  6. 可以直接在视频上打上时间戳
  7. 循环录制自动按指定时间视频分段,大疆的循环录制是只录制指定分钟数
  8. 可以循环录影,内存满了自动删除之前

Action4 优势

  1. 更清晰
  2. 实测防抖效果好一点(开启电子增稳定):直接安装在镜座上录像相对更清晰点
  3. 易用性更好
    • 边框可以不拆时充电,不充电时盖住防水/防尘
    • 横竖屏拍摄可以不用手动调整
    • 机器可以查看具体电量数值
    • 连接设备更方面,可以搜索连接,不用每次扫码
    • 可以手机 APP 查看视频拍摄时间,C200 系列需要视频有水印才能看出来
    • 可直接按键切换拍照/视频
    • 有快充
  4. 赠送配件可直接磁吸快拆,不用额外购买磁吸快拆;赠送配件头盔粘胶可以直接使用
  5. 颜值高点,产品质量可能会好点
  6. 下载视频到手机速度更快
  7. 可手机 APP 编辑视频、可以更换电池、双屏

两者都不能云端自动备份,不能丢失时也能看到之前录制视频。

C200 系列因为有车载模式 / 有防水充电线,更适合直接固定安装在车上,但其防抖性不太行, 可能配置个运动相机减震支架会好点。但如果不安装在车上使用,其车载模式与防水充电线优势也就没了。又多了劣势:如果不取掉充电口盖子,不太易用,每次充电要拆边框。取掉了又没有了防水的优势。

Action4 相比有了防抖优势,可以配合支架直接安装在车上使用,也可以使用挂脖与安装上头盔上使用,当不安装在车上使用时,也不需要车载模式与防水充电线。

我想平时还是挂脖使用,离车后也可以连续录制。最后天猫买了大疆,总价 1220,1170 + 50 挂脖支架,原来有 A2 内存卡。

大疆 Action4 各平台对比

天猫旗舰店

  • 优势:
    • 价格 1170,原价 1248,直播间购买 -50,用了些淘金币
    • 双十一可激活试用 30 天

京东

  • 劣势:
    • 价格 1248
    • 不能试用,拆了就不能退

拼多多

  • 优势:价格 1157
  • 劣势:虽然标记的「品牌好货」,如果运气不买,买到瑕疵机器,售后可能不省心,赠送的随心换还要找客服单独领取激活。
  • 机器:应该都是正品,可以通过大疆官方查验

PS:拼多多「品牌好货」不是拼多多自营的,拼多多的「品牌好货」是聚合的三方商家店铺,只提供了一个「品牌好货」的入口,消费者看不了具体的三方店铺信息,客服也第三方店铺的。

总结

只当行车记录仪可以上 C200,使用相对防盗的方式直接安装上车上。满足基本行车记录仪需求,可以区分事故责任,晚上可能看不清车牌号,防抖性一般。或者直接买更便宜不防水的汽车行车记录仪,自己 DIY 一下。

如果考虑还会拍点东西,建议直接上 Action4。其颜值更高,更愿意拿出去拍,易用性也很好。C200 PRO 有点不上不下,当运动相机拍可能功能不太够;安装上车上防抖跟 C200 差不多,有点划不来。贵的东西除了贵,确实优点更多。而大疆 Action4 做行车记录仪,完全够用了,完全不用什么 Action5 PRO 什么的了。

下大雨或者可视距离变少同时又下雨(如晚上下雨)的情况建议还是不要骑摩托车了,使用其它交通工具更安全。

顺便说一句,大疆还是有点格局的,可以激活试用。在中国,像京东/大疆这样的大厂,还是越多越好。

Apple TV 上使用 RetroArch 玩魂斗罗

2025-11-01 16:15:40

我 Apple TV 现在是配合极米投影仪在使用,现在基本只偶尔使用 VLC + NAS 看电影。买过一段时间 Arcade 玩游戏,玩的频率不高加上订阅制不太划算,Apple TV 就只用来看电影了。

前两天突然想到能不能 Apple TV 玩下小时候的魂斗罗之类的游戏,折腾试了一下,还真可以。

我是使用的 RetroArch 实现的,可以按这 2 个视频教程操作,讲得挺详细。

  1. BiliBili - 全能模拟器RetroArch苹果AppleTV客户端使用教程
  2. YouTube - Retro Gaming on the Apple TV 4K (Guide)

RetroArch 的核心 Core 是模拟原来经典游戏主机的模拟主机系统,它提供一系列 Core,可以模拟原来各种经典游戏的主机,是一个 Core 集合,但它不提供具体的游戏,需要你自己去找。

在 使用 RetroArch 遇到的几个问题

1、游戏资源问题

这几个网站的资源实测可用:

  1. https://www.emu-land.net/en/consoles/dendy/roms/top : 这个网站好像晚上不能下载,要白天才行
  2. https://github.com/dream1986/nesrom
  3. https://forum.ubuntu.org.cn/viewtopic.php?t=202700 破解版

2、 IP 打不开的问题

因为 tvOS 本身没有 Files APP,RetroArch 是利用 tvOS 的 80 端口,即 Apple TV 对应 IP 地址 ( http://192.168.31.111/ ) 上传资源 。当打开 RetroArch 时,就会弹出这个提示。同一个局域网的其它设备或者说连同一个 WIFI 的设置,可以直接通过这个地址上传游戏资源。

但需要注意:要使用 Safari 浏览器打开这个地址,我使用 Chrome 就打不开,折腾半天。

3. 超级马里奥跳不高的问题

在玩「超级马里奥」时发现「跳跃键」跳不高,换了个游戏资源也不行,最后发现是输入映射时不小心将跳跃键键映射到了 Turbo 这个键上,按 Y 键取消映射了就好了。

ROM 文件 nes 与核心 FCEUmm / Nestopia 之间的关系

FC游戏机,是任天堂(Nintendo)生产、发行和销售的8位第三世代家用游戏机。日本版官方名称为家庭电脑(日版名:ファミリーコンピュータ,Family Computer,Famicom),俗称“红白机”,1983年7月15日在日本推出;欧美版名称为任天堂娱乐系统(英文版名:Nintendo Entertainment System,NES),俗称“灰机”,1985年10月18日在美国推出。

所以:

  • 核心 Core 是模拟主机系统,ROM 文件是游戏镜像
  • Famicom / NES 都是使用 .nes ROM 文件
  • FCEUmmNestopia 都可以运行 .nes ROM 文件,都支持 Famicom 和 NES
  • 核心 FCEUmm「仿真精准、音画最接近原机」,核心 Nestopia「性能轻快、兼容性好、支持作弊/快进」,我但没感觉出区别
FC NES

游戏图片

  • 影之传说

从羽毛球启发的「后端工程师等级说明」

2025-10-24 21:45:11

现在经常在打羽毛球,羽毛球等级森严,级别差太多根本没法打,只要差上半级,差的这边肯定打不过,差上两级,双方就没有体验感。有一位名叫「波澜不惊」的网友写了个很好的「业余羽毛球等级说明」,对级别的描述很精确,对每个等级具体需要掌握什么技术与这个等级的特点写得很清楚。

我作为软件后端工程师,虽然我们也有初级/中级/高级工程师的划分,但每个级别具体需要掌握什么,界限往往很模糊。我就在想能不能像羽毛球等级一样,也做一个「后端工程师等级说明」?这样既能认清自己的水平,也能更有针对性地进步。

2025 业余羽毛球等级说明

两个等级之间的映射

对于业余羽毛球初学者来说,正常的学习顺序是技术 -> 脚步 -> 球路 -> 体能,对应后端工程师,我将其它映射为技术 -> 业务 -> 架构 -> 兴趣。

羽毛球技术:握拍 / 发球 / 正手高远球 / 反手高远球 / 杀球 / 吊球,映射为后端工程师技术:编程语言 / 框架 / 数据库 / 缓存 / 中间件 / 容器化。其它一些技术如「勾搓扑挑」等映射为对工具的掌握,如「IDE、Linux Command、Git、Maven」等

后端工程师等级说明

0.5 级:刚接触编程

对应羽毛球室外打球阶段,核心特征是会刚接触编程。对 IDE、Git、Shell 等工具几乎陌生,只能照着教材输出“Hello World”,还分不清接口、数据库、部署之间的关系,只求代码能跑起来。

1.0 级:会点编程语言

对应羽毛球会握拍阶段,核心特征是会点编程语言。开始使用 IDE,能写变量、条件、循环、集合等基础特性,偶尔能写出小算法,可以照需求描述实现简单脚本或 demo,对数据库、缓存等还不太了解。

1.5 级:会使用框架

对应羽毛球会发球阶段,核心特征是会使用一种基础框架(如 Spring Boot)。开始理解接口开发的 POST GET 的区别,了解 Maven 命令,还不太会写数据库 SQL,还不能进行简单的业务开发。

2.0 级:初级工程师(大学毕业生水平)

对应羽毛球会打高远球阶段,核心特征是会能在指导下完成简单需求开发。会使用 MySQL 数据库,会写一些简单的 SQL,会使用 Git 。了解 MVC 开发,理解 ORM 等概念。能在指导下完成简单需求开发与 bug 修改,对表结构、用户登录原理与 Session 机制有初步认识。这个阶段更多是编码实现,也开始建立自己「实验室」通过 demo 代码实现各个技术点。

  • 「大学毕业生水平」:我觉得是一般计算机专业刚毕业的学生就差不多这个等级

2.5 级:初级工程师+

对应羽毛球小对抗、会挑球 / 偶尔会吊球阶段,核心特征是能在指导下完成小模块开发。技术上熟练使用主力语言、框架、MySQL 关系数据库,会使用基础的 Linux 命令,理解 Git 原理。可以写简单 CURD 增删改查代码,但 Bug 较多。

3.0 级:中级工程师(高水平大学毕业生)

对应羽毛球小对抗、会杀球 / 吊球阶段,核心特征是能在指导下完成中等模块开发,能独立完成小模块开发与设计。技术上会使用常用中间件,会用缓存 Redis,理解 Maven 原理,理解 Spring 框架的核心原理,熟悉 Docker 基本用法。业务上熟悉基本的 API 设计,可独立设计 API;熟悉数据库设计,可以独立设计数据库表;有一定业务抽象能力,可以将简单业务抽象为数据库表结构与 API,会写单元测试;理解用户登录原理。开始形成以完成一个让别人 / 用户来用的比较完整的软件功能为主的「工作室」。

  • 「高水平大学毕业生」:在学校学得好的,大学刚毕业就直接在这个等级

3.5 级:中级工程师+

对应羽毛球中对抗、会反手高远球阶段,核心特征是能在指导下完成中大模块开发,能独立完成中小模块开发与设计。技术上熟练使用 Redis,熟练使用常用中间件,如 Kafka。具备初步的业务设计模式意识,不只是按需求实现,开始理解业务需求背后真实的意图,可以指出需求中问题,帮助需求闭环。知道需求的优先级与重要性,合理分配精力与时间。开始对安全编程有一定想法与实现,代码不只是考虑功能实现。 开发的功能维护性在中等水平。可以快速定位独立解决中等难度的技术问题。开始建立起来对自己技术的自信。

4.0 级:高级工程师

对应羽毛球中对抗、普通大学校队水平、掌握各种杀球/吊球的阶段,核心特征是能独立完成中等模块功能的设计与开发。技术上掌握部分中间件原理,掌握 Docker 容器化原理,阅读过其源码。掌握数据库、Redis 关键机制。业务上可以快速的熟悉与理解新业务,并完成从需求分析、方案设计、编码上线工作。写的代码质量好,bug 少。开始在团队内形成个人影响力。开始建立自己的「工厂」,相比「工作室」,「工厂」有一整套的规范和标准。

4.5 级: 高级工程师 +

对应羽毛球大对抗、普通大学校队主力水平、会跳杀的阶段,核心特征是能独立完成大模块功能的设计与开发,独立解决复杂技术问题。技术上掌握中间件核心原理,从源码上理解。写的代码 Bug 非常少。各种业务系统的实现方式都已掌握,编码熟练使用各种设计模式,业务实现简洁但稳定,实现不仅考虑功能还兼顾安全,能承担核心技术攻关。开始发现现有架构的不足。这个等级需要掌握计算机基础知识,不然到不了这个级别。在团队内形成稳定的个人影响力。

PS:羽毛球技术的核心是通透的发力,后端工程师技术的核心我认为是计算机基础。发力可以分为:手指发力、手腕发力、内旋发力、鞭打发力、腰腹发力、全身发力。计算机基础可以分为: 计算机组成原理、Linux 操作系统,编译原理、网络原理、数据结构与算法等。业务球友不掌握发力,可以到 4.0 级,但绝对到不到 4.5 级。同样,我认为后端工程师不掌握计算机基础可以到高级工程师,但绝对到不了「高级工程师 +」这个等级。

5.0 级:技术专家

对应羽毛球大对抗、普通教练水平阶段,核心特征是可以根据需要修改、扩展、优化架构。高级工程师主要是在已有的架构框架下完成设计,而技术专家会根据需要修改、扩展、优化架构。各种技术运用自如,熟练运用各种技术完成业务开发。并且有一两项突出的技术,比如对 Redis 的研究非常深,给它贡献过核心代码。可以快速定位独立解决很复杂的问题。独立开发与团队配合都很好,几乎是没有 bug 的。系统安全做得好。在团队内形成极强的个人影响力

6.0 级:初级架构师

对应羽毛球比赛级、地区普通组冠军水平阶段,核心特征是独立完成一个系统的架构设计。可以是从 0 到 1 设计一个新系统,也可以是将架构从 1.0 重构到 2.0。初级架构师负责的系统复杂度相对来说不高,例如后台管理系统、某个业务下的子系统、100 万 PV 量级的网站等。6.0 级别要么初级架构师,要么就是技术 leader,可以带一个小团队,开始有团队影响力。

总结

做这么一个等级表不容易,涉及不少东西,写了很久,但水平有限,可能不太准确。本来让 AI 写,不太满意,全部手敲。后面可能不定时更新这个等级表。

后端工程师依次提升的 4 维度是技术、业务、架构、兴趣,而针对全栈工程师(独立开发),4 个维度又不太一样,我认为是技术、产品、需求、推广。每个职业都有自己的 4 维度划分。

还有一点小感受,学习计算机技术与学习羽毛球技术一样,关键是要有成就感,要有瘾,也就是正反馈,所以这就是需要有正确的方式与路线来学习,每个人情况不一样,需要找到最适合自己的方式与路线。

Link