惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
LINUX DO - 最新话题
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
月光博客
月光博客
博客园 - 叶小钗
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
量子位
美团技术团队
Vercel News
Vercel News
Y
Y Combinator Blog
IT之家
IT之家
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
腾讯CDC
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
罗磊的独立博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
博客园 - 司徒正美
N
Netflix TechBlog - Medium
S
Schneier on Security
博客园 - 聂微东
U
Unit 42
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
雷峰网
雷峰网
Latest news
Latest news

中文博客 on 范叶亮 | Leo Van

多智能体系统 (Multi-Agent System) 确定性和掌控欲 - 你的 AI 不是你的 AI LLM Token 消耗节省计划 (How to Save Token for LLM) 智能体的角色定位和身份演化 (Agent Role Orientation and Identity Evolution) 本地部署 OpenClaw,QwenPaw 和 Hermes Agent (Local Deployment of OpenClaw, QwenPaw and Hermes Agent) 本地部署智能体 - OpenClaw,QwenPaw,Hermes Agent ... 部署 Matrix 服务器 Synapse (Deployment of Matrix Server Synapse) 部署 frp 内网穿透服务 (Deployment of frp NAT Traversal Service) 本地部署大模型服务 (Local Deployment of LLM Services) AI 时代的生产力和生产关系 (Forces and Relations of Production in AI Era) 业余无线电入门 - CQ, CQ, CQ, this is BD1CZP. Calling CQ and standing by. 大语言模型微调 (Fine-tuning Large Language Models) 提升图片分辨率和质量 - Invoke AI 101 教程 使用画布创建和组合生成新的图片 - Invoke AI 101 教程 探索 AI 模型和概念适配器 - Invoke AI 101 教程 理解图像到图像和降噪过程 - Invoke AI 101 教程 使用控制层和指示控制图片的生成 - Invoke AI 101 教程 使用 Invoke 创作你的第一张图片 - Invoke AI 101 教程 在 OpenWrt 和群晖中自动申请和部署证书 凡人歌 - 凡人,但不要烦心 Shell 调用方式 fork,exec 和 source (Run Shell with fork, exec and source) 重定向和管道 (Redirect and Pipe) 模型压缩和推理加速 (Model Compression and Inference Acceleration) 我们需要多少种编程语言 (How Many Programming Languages do We Need) 数据可视化小贴士 - 面向动态文档生成,秉承规范、统一和实用的理念 从 rm -rf * 说起 - 喜新、怀旧、再出发 当我谈摄影时,我谈些什么 - 色彩篇 Part 1 CSS 布局和定位 (CSS Layout and Position) 当我谈修图时,我谈些什么 - 色彩篇 Part 1 在 Windows 下利用 WSL2 和 Ubuntu 配置 GPU 机器学习环境 文学编程和可重复性研究 (Literate Programming and Reproducible Research) 在 OpenWrt 中安装 Jellyfin 搭建家庭影音中心 自私和贪婪 (Selfish and Greedy) 评分和排名算法 (Rating & Ranking Algorithms) 小记这一波裁员浪潮 基于内容的图像检索 (Content-based Image Retrieval, CBIR) 你所应该知道的 A/B 测试 (A/B Test You Should Know) 一个人的摩旅 (Travel with My Motorcycle Alone) 设计语言初探 (A Glimpse of Design Language) Spark 集群搭建 (Spark Cluster Setup) Hive 安装和配置 (Hive Setup) Hadoop 集群搭建 (Hadoop Cluster Setup) 虚拟环境准备 (Virtual Environment Preparation) 大数据 SQL 性能调优 (Big Data SQL Performance Tuning) SQL 样式指南 (SQL Style Guide) 进程,线程和协程 (Process, Thread and Coroutine) - 实现篇 进程,线程和协程 (Process, Thread and Coroutine) - 理论篇 胶囊网络 (Capsule Network) 投票公平合理吗? 图存储与计算 (Network Storage and Computing) - 复杂网络系列 网络算法 (Network Algorithms) - 复杂网络系列 真实世界网络结构 (Structure of Real-World Network) - 复杂网络系列 网络表示,测度和度量 (Network Representation, Measures and Metrics) - 复杂网络系列 文本相似度 (Text Similarity) 而立之前 (Life before 30) 最近邻搜索 (Nearest Neighbor Search) 无模型策略预测和控制 - 时序差分学习 (Model-Free Policy Prediction and Control - Temporal Difference Learning) - 强化学习系列 无模型策略预测和控制 - 蒙特卡洛方法 (Model-Free Policy Prediction and Control - Monte-Carlo Learning) - 强化学习系列 利用动态规划求解马尔可夫决策过程 (Planning by Dynamic Programming) - 强化学习系列 贝叶斯优化 (Bayesian Optimization) 马尔可夫决策过程 (Markov Decision Process) - 强化学习系列 多臂赌博机 (Multi-armed Bandit) - 强化学习系列 强化学习简介 (Introduction of Reinforcement Learning) - 强化学习系列 在群晖 NAS 上编译安装 tmux 隐马尔可夫,条件随机场和序列标注 (Hidden Markov Model, Conditional Random Fields and Sequence Labeling) 图嵌入和图神经网络 (Graph Embedding and Graph Neural Network) 预训练自然语言模型 (Pre-trained Models for NLP) toB 产品用户权限 (User Privileges of toB Products) 京东数科 HIPO 学习之旅 (JDD HIPO Learning Journey) 杭州和东京之旅 (Tour of Hangzhou and Tokyo) 国际智慧温室种植挑战赛 (International Autonomous Greenhouse Challenge) 记忆中的儿时 (My Childhood in Memory) 启发式算法 (Heuristic Algorithms) 关不掉的浏览器标签页 (Browser Tabs You do not Close) 贝塞尔曲线 (Bézier Curve) 如何阅读一本书 (How to Read a Book) 相似性和距离度量 (Similarity and Distance Measurement) 集成学习算法 (Ensemble Learning) 计算复杂性与动态规划 (Computational Complexity and Dynamic Programming) 利用 Flask 和 Google App Engine 部署模型服务 序列到序列和注意力机制 (Seq2Seq and Attention Machanism) 词向量 (Word Embeddings) 循环神经网络 (Recurrent Neural Network, RNN) 泰国之行 (Tour of Thailand) 媒介之战 (War of Medias) 卷积神经网络 (Convolutional Neural Network, CNN) 买书,囤书,看书 (Buy Books, Hoard Books and Read Books) Play Safe, Smart Choice & Yuppie 基于 PyQt5/PySide2 和 QML 的跨平台 GUI 程序开发 流形学习 (Manifold Learning) 深度学习优化算法 (Optimization Methods for Deep Learning) 深度学习优化算法 (Optimization Methods for Deeplearning) 生成对抗网络简介 (GAN Introduction) Ising 模型,Hopfield 网络和受限的玻尔兹曼机 (Ising, Hopfield and RBM) 马尔科夫链蒙特卡洛方法和吉布斯采样 (MCMC and Gibbs Sampling) 特征值分解,奇异值分解和主成分分析 (EVD, SVD and PCA) 墨尔本之行 (Trip to Melbourne)
重构 - 之于代码、之于工作、之于生活
范叶亮 · 2025-10-19 · via 中文博客 on 范叶亮 | Leo Van

重构

之于代码、之于工作、之于生活

分类: 生活, 工作, 思考 / 字数: 2417 / 标签: 重构, 风险, 勇气, 鸿沟理论, 巴斯扩散模型


十一之前看了原子能 UP 主的一期视频,最开始只是有感于当前工作中的代码开发,后来又有感于工作和生活,想着记录下来,又担心酸腐味太重就没写。十一回来,玩儿了两天,出了趟差,愈发感觉还是应该记录下,待回头看时至少可供自嘲。

之于代码

视频中讲到了一个“鸿沟理论”,高科技产品在市场营销过程中遭遇的最大障碍就是早期市场和主流市场之间存在的鸿沟,能否顺利的跨越鸿沟进入主流市场成功赢得实用主义者的支持决定了一个产品的成败。还有个“巴斯扩散模型”和这个理论很类似,原来还基于它做过一些预测模型。

鸿沟理论

早期市场中的产品就是我们通常说的 MVP。MVP 最重要的是速度,需要快速在市场中得到验证。所以从风险和收益的角度出发,在 MVP 开发的时候大家会快速地实现产品功能,一些细节(例如代码质量)往往就没那么重要。这一点我很认同,但是这里有个前提是面向市场的产品,在我的工作中,会有不少“就是要做”的事情,一定程度上是“刚需”,做得好做的差都得用。那这个时候大家又会怎么选择呢?我观察到的情况是大部分人还是会选择快速上线,因为要“拿结果”,虽没有市场去评价你,但你的老板会去评价你。

视频中给到的结论是:任何时候都不适合重构。经过早期市场的验证,当多个玩家都在拼命渡河赢得主流市场时,如果你慢了就很容易被赢家通吃,所以此时此刻你仍需要同时间赛跑。当终于在主流市场站稳脚跟后是不是真的就可以重构了,答案是依旧不行,因为这个时候已经积累了足够的技术债,重构的成本已经远远高于 MVP 时期。此时在风险和收益之间的人们往往不会为了一个收益不明朗的价值回报去承担一个不小的成本。尤其是在当前的环境下,没有铁饭碗的人不会想着为别人做嫁衣,有铁饭碗的人不会没事儿给自己找麻烦。

我给到的观点是:任何时候都适合重构,而且我认为这并不偏激。重构不一定代表需要大刀阔斧,有些时候你的改动甚至可以其他人都无感,只要对你的后续开发和维护有益,你认同这一点,就有动力去做。如果你没打算在团队长待,或者你就想当个甩手掌柜,亦或是你并非正编,那权当我没说(这三种情况我认为存在且普遍)。当真的需要启动治理需要推翻重来时,我们就需要现实些,此时可能需要更量化的风险披露,更好的上价值,更好的汇报,拉更多的人下水,事情才更容易如你所愿。

重构是有意义的,好一句废话,但我还是会时不时的想一想,不想连去做的勇气都不再会有。做多少,何时做,如何做,这里面的“度”每个人的想法就千差万别了,别因为此太过影响自己的绩效,那就尝试做一些,如果你超会上价值,也全当我多虑了。还有一点我认为需要多践行工程师文化,多一些思考,多一些规范,多 Review 一下自己的代码,这些不会太影响和时间赛跑的。我不图未来接手我代码的人夸我写的漂亮,只求不会骂我的代码是屎山。

之于工作

之前的博客中有聊到自己的第二次职业焦虑,一年过去了,焦虑缓解了,但新的问题或者说想法变多了。谈及自己我都会说我是一个风险厌恶的人,这点到现在也没有太变(所以说改变一个人的一些想法真的挺难的),但我对风险有了新的认知。一次出差飞机上三个小时听了关于塔勒布的一个播客,还没来得及更深入的去了解,但让我记住了一个词“勇气”。对于工作而言,重构往小了说可以是内部职责的一次调整,往大了说可以是寻求一个新的外部机会,我能找出促使我要去这么做的千万个理由,但确没有太多去这么做的“勇气”。

我会更在意失去的,好比上面说的,风险是确定的(失去的),但收益是不明朗的(确定不会是一个更深的坑)。相比一年前,我最大的改变在于动起来了,确实缓解焦虑最好的方式就是行动起来。我们需要更加深入地剖析要不要做出变动,但不应持续地陷入剖析而不自拔。动起来,担心失去就先“小”动起来,不用让人看见(让人看见可能对你也没好处),自我发起的改变也不应是一蹴而就的,多些准备会让你少些担忧。

这段时间刷到短视频上的一句话:听说过上班累死的,没听说过不上班饿死的。我希望可以更加阳光的理解这句话,拼搏奋斗仍应是我们要去追求的,只是说哪怕做错了什么,你又能失去多少呢,相信只要能远离黄赌毒,就不至于把自己玩儿死。

之于生活

最近一年的感觉自己有些腐朽味,四年前的我还能一个人去摩旅,今年的我连近郊都没怎么去,貌似生活也进入了急需重构的阶段。但还不如工作,都还谈不上有没有动力去改变,连想要的生活的样子似乎都有些模糊了。最近看到豆瓣上也可以听播客了,之前都是在苹果自带的 APP 上听(简洁又没广告),但豆瓣推给我的一个播单甚得我意,有点豆瓣书籍和影视年度榜单的味道。随即发了个朋友圈分享了下,一个朋友回复到“这岂不是会天天蹿到你出去玩”,我回复到“出去玩就不听了,出不去才只能听听人家的过过瘾”。这一刻,我有在想是没了出去的勇气,还是连出去的想法都没了?

昨晚在短视频上刷到一个在澳大利亚的华人,记录了一些和当地人的生活日常,去过一次澳大利亚,那种地广人稀的氛围自己还是比较喜欢的。无论是播客还是短视频,难道真的是娱乐至死,或许可以从减少些刷短视频开始,立马走出去不现实,但把这两年没怎么读的书补一补还是可以试一试的。

前几天和部门里面年轻的同事聊到大学的专业(怎么就聊到这想不起来了,上了年纪确实记性不好),还能记得管理学老师的一句话:读万卷书不如行万里路,行万里路不如交万名友,交万名友不如名师之路。名师指路可遇不可求,庆幸求学期和工作期间能遇到几位带我的好师傅,行万里路真的可以体验更多(人生百态皆在其中),不过经济性不如读书。真的有好久没有好好的读几本书了,之前可以挑灯夜读,很想搞清楚为什么现在不行了,想了想也没太想明白,也许没那么重要搞清楚,有这时间去读更好些。那天我还说他们这些年轻人正值好时候(回头想想这话有点儿爹味儿),自己已经有些老了,感觉在重构生活的路上,借口多了太多,虽然每个人的情况各不相同,所以到底在害怕失去什么呢?这个答案就留在我完成重构那天再补上吧,希望有这一天,希望这一天不要太晚。