摘要: 一、什么是目标? 目标是团队或项目希望实现的最终结果,它应具备以下特点: 清晰性:目标应明确、具体,能够被所有参与者理解。 价值导向:目标应为用户或客户提供明确的价值。 可衡量性:目标应有明确的验收条件,能够衡量是否达成。 二、如何定义目标? 方法1:电梯三分钟演讲法 提炼核心价值:通过三分钟演讲, 阅读全文
posted @ 2025-01-17 19:41 荣-- 阅读(161) 评论(0) 推荐(0)
摘要: 一、编码前的重构思考 在编码前,通过以下步骤审视接口和设计,确保代码的可维护性和可测试性: 站在单元测试的角度审视接口: 思考是否需要将所有public和protected函数都暴露出来。 考虑是否违反正交性原则,避免函数过于复杂或依赖过多。 避免将不同场景的代码混在一起,确保代码的可测试性。 放置 阅读全文
posted @ 2025-01-17 19:34 荣-- 阅读(93) 评论(0) 推荐(0)
摘要: 我的重构经历:编写代码生成器 概述 背景 多年前,我开发了一个基于C#的Windows程序——代码生成器,并在此后十多年间持续优化。该程序能够根据数据库表结构生成代码,并将结果显示在文本框中。最初是从同事那里接手的一个简单项目,经过不断扩展和重构,最终实现了通过数据库自动生成具备完整增删改查功能的网 阅读全文
posted @ 2025-01-17 19:11 荣-- 阅读(282) 评论(1) 推荐(0)
摘要: 当开发人员接到新任务后 1. 向上追溯(纵向拉齐) 1.1 首先提出的问题 这个任务针对的需求点是什么? 用户/客户是谁?他们有什么特点? 该需求为用户/客户提供了什么价值? 这个需求的满意条件是什么? 1.2 其次想到的是 这个需求属于哪个发布版本? 为什么这个版本需要开发这个需求? 这个版本的满 阅读全文
posted @ 2025-01-17 19:08 荣-- 阅读(551) 评论(6) 推荐(4)
摘要: 在软件开发过程中,单元测试代码不仅是测试工具,更是开发的重要辅助手段,如同IDE一样,帮助我们更高效地开发。本文将探讨单元测试的重要性、最佳实践以及常见误区。 1. 单元测试的最佳时机 单元测试的最佳编写时机是在第一个接口函数完成后立即开始。如果等到代码量庞大后再着手,往往会因为工作量过大而失去动力 阅读全文
posted @ 2017-08-24 12:43 荣-- 阅读(473) 评论(0) 推荐(1)
摘要: 一、为什么写这篇 工程师写代码,绝大多数时候是在写公司的代码 —— 别人定的需求、别人选的框架、别人画的边界。 但每个工程师心里,总有那么一两件事,是想留给自己业余时间去做的。 我自己 2020 年底就动手了这么一件事。叫 hi_rtp。 它是一个从零自己写的流媒体服务,输入是实时 RTP 视频流, 阅读全文
posted @ 2026-06-24 18:37 荣-- 阅读(6) 评论(0) 推荐(0)
摘要: 一、为什么写这篇 工程师圈子里有一条几乎无人公开反对的"工程常识": 不要重复造轮子。 理由听起来无懈可击 —— 别人写好的、经过生产验证的、有社区支持的、有测试覆盖的工具,你为什么要再写一遍?这是浪费时间,是 NIH 综合征(Not Invented Here),是工程不成熟的表现。 我想给这条常 阅读全文
posted @ 2026-06-24 18:02 荣-- 阅读(1) 评论(0) 推荐(0)
摘要: 一、为什么翻出这份 xmind 最近在做一次"反向自我盘点",想看清楚自己身上有哪些一直在做但从来没意识到的方法论。翻硬盘的时候,翻到一份 6 年前的文件: 文件名:那套平台.xmind 文件原始创建日期:2020-04-03 那一天,是我接手一个新岗位的第一天 接手的是公司收购回来的一套实时音视频 阅读全文
posted @ 2026-06-24 17:30 荣-- 阅读(2) 评论(0) 推荐(0)
摘要: 一、为什么写这篇 最近翻硬盘,看到一份 6 年前自己写的文档。看着看着,我意识到一件事: 那时候我已经在做"对自己提问"这件事了 —— 只是当时没把它命名为"自我意识"。 更早 —— 二十年前,我就反复抄写过一句话:"胜人者有力,自胜者强"。 我以为这只是少年人的座右铭。但今天回看,这句话支撑了我整 阅读全文
posted @ 2026-06-24 16:58 荣-- 阅读(4) 评论(0) 推荐(0)
摘要: 一、为什么写这篇 "一键部署"是一个被讲烂了的题目。搜出来的文章基本是两类:一类教 Ansible / Helm / Terraform 的语法,一类讲"我用 shell 写了一键部署省了半天时间"。 我也做过一次一键部署。但这次复盘想说的不是省了多少时间 —— 省时间只是结果,不是真正的价值。 真 阅读全文
posted @ 2026-06-24 11:21 荣-- 阅读(163) 评论(0) 推荐(2)
摘要: 一、为什么再写一篇 我去年写过一篇《回顾我的软件开发经历:开发 DAB》(cnblogs.com/Rong-/p/18695984),按时间顺序把 DAB 项目从协议学习到 C++ 重构、到七亮点两遗憾的全流程串了一遍。那是流水账,价值在"事实归档"。 后来回头复盘那段经历,发现真正决定项目走向的不 阅读全文
posted @ 2026-06-23 21:30 荣-- 阅读(7) 评论(0) 推荐(0)
摘要: 一、写在最前:这是一篇"事后才看清"的复盘 这件事发生在某嵌入式 Linux 智能电视平台,我负责某全球视频应用在该平台上的对接。前后做过两件看起来独立的事: 上游:在该应用的crash径上,接入平台的异常采集回调,把crash现场打包脱敏后上报 下游:写一套 Python 工具,把回传上来的cra 阅读全文
posted @ 2026-06-23 18:57 荣-- 阅读(7) 评论(0) 推荐(0)
摘要: 一、新人入职最容易掉的两个坑 工作前 1-3 年的工程师,选活时经常掉两种坑。 坑一:抢"看起来核心"的活。新功能、性能优化、架构改动 —— 大家都想做,因为听起来"重要"。结果你抢到一块功能,做完发现是"按需求文档实现一段代码",对系统的全貌依然没看见。一年下来,简历上多了几条功能,但要你画一张架 阅读全文
posted @ 2026-06-23 18:51 荣-- 阅读(13) 评论(0) 推荐(0)
摘要: 一、为什么写这篇 写算法博客的人很多,讲清楚一个去重指纹、一个匹配规则、一个分类模型;写工程博客的人也不少,讲架构、讲微服务、讲监控。 但很少有人讲"中间那一段" —— 你已经把算法写出来了,它能在 Jupyter Notebook 里跑通,在你自己的机器上拿一份数据能出结果。然后呢?然后这个东西怎 阅读全文
posted @ 2026-06-23 15:27 荣-- 阅读(3) 评论(0) 推荐(0)
摘要: 一、问题是什么 入职某电视厂商智能电视操作系统团队的第二个月,被分到一个新人任务:把某流媒体平台设备认证框架(NRDP 6.0)所需的约 20 个第三方开源库,全部交叉编译到嵌入式 Linux 平台上去。 这件事在团队里此前没人系统做过。原因很简单——它不属于业务功能,属于"基础设施"。每个人遇到都 阅读全文
posted @ 2026-06-23 15:15 荣-- 阅读(9) 评论(0) 推荐(0)