软件研发知识三分法

local-life-agent 本地生活智能体架构设计文档 决策选择理由单体 or 微服务单体业务规模小、模块内聚,部署简单;后续可按 Service 边界拆分提示词放代码 or 放库规则在代码、模板在库高频调整的规则随版本管理;低频沉淀的知识可运营、可查询配额扣减方式数据库条件 UPDATE无需分布式锁即保证并发原子性平台改写时机同步 3 次调用一次请求全量返回,体验简单;如成本敏感可改异步/按需向量库ChromaDB(可选)轻量、本地部署友好;后续可平滑切换 Milvus 等。 阅读详情

什么是“三分法”?

从应用范围的角度,我把软件研发所需要的知识分成大类,或者我把它叫做“三分法”。

第一类知识是现代软件研发方法,包括面向对象分析、设计、编程,设计模式,重构,以及轻量级的敏捷的、迭代的现代开发过程。这些知识居于现代软件研发最基础最核心的位置。具有最大的应用范围。

第二类知识是平台知识,包括编程语言(如C++, C#, JAVA等),操作系统,以及一些通用的开发平台(如MFC, .Net, etc)。

第二类知识我统称为领域知识。比如TTS,视频编解码,网络传输协议等等一定领域的专门知识。

 

“三分法”有何意义?

作为专业的软件研发人员,面对领域众多的软件产品,面对日新月异的研发技术,一定或多或少地经历过如何安排自己的学习,如何提高自己的学习效率的痛苦。诚然,作为现代人,终身学习基本是一个人在生活上得以安身立命的基础。不过在工作、学习、生活中,如何更有效的安排学习内容,从而最大化自己的学习投入的回报,始终是让我们生活更容易的关键。

“三分法”的意义一:In long term,三分法使我更有效的安排学习,使我的学习投入产出比最大。

从我自身的研发经历中,我把软件研发知识根据其应用范围分为三大类。在任何时候,我始终尽量安排学习和关注最具应用性的知识。当然这基本也和人们常说的做最重要最紧急的事情是相通的。比如,在平时和工作不忙时,我尽量把大量时间分配到第一类和第二类知识的学习,这不光是我深深感受到了基础知识的力量,比如面向对象技术使我软件的分析、设计能力成倍提高,这也是源于我的工作的特点。我基本算是主要解决软件研发工程上的问题,如果了解需求,如何设计软件架构,如何设计类结构,如何控制软件研发的风险。这些是我的主要工作。相信也是绝大多数软件研发从业人员的主要工作。由于学术背景和行业特点,我研发的软件领域跨度极大,再加上有时候不得不换换工作,使第三类知识的深入细致的研究对我很难是个长期的追求。我不鄙视第三类知识,反倒觉得精专的领域知识是许多软件项目成败的关键。不过落实到个人,或者我所看到的绝大多数程序员的生活,第三类知识大都只能做到follow,很难有环境让你清心寡欲的在某个领域深入研究和创新。如此说来,对于90%的程序员,就应该把主要精力放在第一类和第二类知识的研究、学习和实践。让我们最漂亮的解决工程上的问题。其实从一个专门领域研究的突破到成熟的软件产品面世,我们程序员们需要做很多很重要的工作。不要因为自己没有专门领域研究的机会和能力,就觉得没什么好做的了。其实对于大型项目,往往工程化问题更关键。所以我乐于学习第一类知识,认真的研究第二类知识。

“三分法”的意义二: In short term,三分法让我面对眼前问题或者选择目标方向时,更有的放矢。

作为专业的软件研发人员,发现问题解决问题就是我们的日常工作。面对问题,我习惯从本源来考虑它,分析其产生的原因。看我需要哪类知识的提高才能解决问题。比如分析发现需要大量领域知识突破的,我们就要找专门的人来协助,或者采用外协的方法,尽量控制研发风险。另外在工作方向选择时,根据自身的技术积累和兴趣爱好,以及公司大环境,选择自己最能复用已有知识的方向,也是让自己工作更轻松,贡献最大的方法。

励磁电感 Lm 选对了,LLC 才真“高效”:半桥 LLC 效率优化 你有没有遇到过这种 LLC:参数一套下来,ZVS 也有了,波形看着也“挺谐振”,但一上功率——,效率就是死活上不去。我说句直白的:LLC 的“高效”,很大一部分其实是在背后控场。Lm 选小了,励磁电流蹭蹭涨,谐振电流 RMS 变大,导通损耗、开关损耗、整流损耗一起上天;Lm 选太大,又可能把 ZVS 的门槛抬高,轻载掉 ZVS,EMI 也开始作妖。 阅读详情

相关推荐

Arch Linux双系统安装避坑指南:从Windows分区到桌面环境全流程

本文提供了一份详尽的Arch Linux与Windows双系统安装避坑指南。内容涵盖从安装前的UEFI环境确认、BitLocker处理、分区规划,到Live环境进入、基础系统安装、GRUB引导配置,再到显卡驱动安装、KDE/GNOME桌面环境部署及中文化设置的全流程。重点解决了双系统安装中的核心痛点,帮助用户在不破坏现有Windows系统的前提下,顺利完成Arch Linux的安装。

nice1的博客 535

[数学知识]三分法

原出处:http://blog.youkuaiyun.com/u012469987/article/details/50897291 三分法 当二分的函数值不是递增/减,而是先增后减或者先减后增时二分就挂了。此时需要三分法,这里直接盗用hihocoder Problem 1142的图(hihocoder需要注册登陆,没登陆进不去) 如图这种情况先减后增有极小,若lm比rm低(即lm对应的函数

UISG103的博客 1488

蜻蜓fm爬虫python

本文介绍了一个用于下载蜻蜓FM音频书籍的Python脚本实现。该脚本主要功能包括:1)通过账号密码登录获取认证信息;2)从目标书籍主页提取版本信息;3)获取书籍节目总数和分页信息;4)生成节目下载链接(使用HMAC-MD5加密算法生成请求签名);5)下载音频文件并保存。脚本采用多种反爬措施:设置User-Agent模拟浏览器行为、使用动态时间戳、HMAC-MD5签名验证等,有效规避简单的反爬机制。整个流程包括登录认证、获取书籍信息、生成下载链接和保存音频文件四个步骤,实现自动化批量下载功能。

野猫炫的博客 912

吸引眼球的新视角:软件开发的前瞻与挑战

吸引眼球的新视角:软件开发的前瞻与挑战。

JiYan_purple的博客 563

MT4-EA自动化交易研究笔记(2022-04-22)

自从接触到mt4的EA自动化交易,更让我这个10多年的老程序员看到了曙光,目前来看也确实出了一点成果,只是是否能稳定盈利有待时间的考验,所以开此专栏,一来做做记录与分析,更好的优化我的EA,二来也希望能与更多的高手交流,以完善我的交易系统

t35254056的博客 2291

数字IC后端实战:Innovus与ICC2中如何巧妙规避Filler1缺失引发的DRC问题?

本文针对数字IC后端设计中工艺厂不提供最小填充单元Filler1的常见挑战,深入剖析了由此引发的DRC问题根源。详细对比了在Cadence Innovus和Synopsys ICC2两大主流PR工具中,如何通过设置单元间距约束来系统性规避物理缝隙,确保电源网络完整性与制造可靠性,为工程师提供了一套稳健的实战解决方案。

weixin_29303701的博客 306

如何对待日新月异的软件技术

软件行业的技术更新换代比较快,从事软件相关工作的人要时刻关注新技术的诞生和发展,以求紧跟技术潮流。那么究竟我们应该怎样对待这种现状呢?本文给出了一些见解。        对于日新月异的新技术,你是什么态度?        遇到新技术我会去了解,但不会把很大的精力放在这些技术(如:NoSQL,Node.js,等)。这些技术尚不成熟,只需要跟得住就可以了。技术十年以上可能是一个门槛。有人说

u012102997的专栏 1145

手把手教你学Simulink——基于经典PID控制的电机系统场景实例:BLDC电机PID电流控制策略仿真

*无刷直流电机(Brushless DC Motor, BLDC)**因其高效率、长寿命和低维护成本,在众多领域如家用电器、工业自动化、电动汽车等得到了广泛应用。为了实现对BLDC电机的有效控制,通常采用基于霍尔传感器或反电动势检测的换相技术,并结合电流闭环控制以提高系统的动态响应和稳定性。本教程将带你使用构建一个基于PID控制的BLDC电机电流控制策略仿真模型BLDC电机建模PID控制器设计与应用系统仿真与调试控制效果分析本文介绍了如何使用构建一个。

MHD0815的博客 197

Android 中的BroadCastReceiver

Android 中的BroadCastReceiver                                                 作者:阿福       BroadCastReceiver 简介 (末尾有源码) BroadCastReceiver 源码位于: framework/base/core/java/a...

iteye_16050的博客 203

2026华为OD机试(JAVA&Go)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Java实现。

MISAYAONE的博客 34万+

[QMT量化交易小白入门]-四十四、年化收益48%的策略要兼容回测和实盘,将实盘改为定时任务的方式

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1373

android 自定义锁屏凌驾于系统锁屏之上

最近要完成这样一个功能的DEMO:自己写一个锁屏界面,要做到当手机启动开机或锁屏时先调用自己的锁屏界面解锁,解锁成功后再调用系统的解锁界面进行解锁(相当于给手机加两道锁)研究了好久,网上好多都是说android KeyguardManager.KeyguardLock kk的用法、但没有一个完整代码的DEMO来说明,其实就是对KK的控制逻辑方面稍微复杂一点,一下就是我完成此功能的详细代码和解释,希...

cheng_xi的专栏 434

Natural Language Processing

作者:禅与计算机程序设计艺术 1.简介 自然语言处理(NLP)是研究如何使计算机理解和处理自然语言的理论和方法,目的是让电脑更好的理解、获取、生成、存储和沟通人类语言。20世纪80年代末,IBM的三位博士陈天奇、周博磊和王力雄在贝尔实验室创建了首个自然语言处理系统——“布莱克多·艾森豪威尔”(Bletc

AI天才研究院 724

android 自定义 锁屏

引用:http://wiseideal.iteye.com/blog/1226380 [size=large]花了半天时间研究下了自定义锁屏,发现其实实现并不是很神秘。不过有些地方还是值得注意。首先说流程,锁屏界面一般是在关闭屏幕时启用,打开屏幕时展现在我们面前,所以我们知道了锁屏的时机,恰好屏幕开关会发出相应的广播,所以我们也可以像系统一样捕获到屏幕开关的事件。广播对应的两个action...

weixin_30721899的博客 89

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

本地生活服务系统:试单和正式开业的单为什么会进同一本账

本地生活服务系统应将试营业与正式运营的订单统一记入同一账本,通过“试单标记”区分,而非分设两本账。单号连续、信息唯一,避免重复或遗漏。正式账单仅提取“非试单且已付款”的记录,确保财务核算准确。过程查询则可查所有单据,便于客服追溯。关键在写入时即标注试单状态,开业日调整取出条件,不修改历史标记,保障数据可审计、可复原。

2509_93184100的博客 101

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

从零开始的C++生活——第八讲——01

这个和之前学的二叉树的层序遍历区别在于,这个要求将二叉树每一层的数据分别插入最后返回的数组中,这就需要进行一个思考,之前常规思路实现层序遍历时是队列出一个进来他的孩子,但是这种方式必然会造成不同层元素之间的混淆,我采用的方法是再用一个队列,专门用来存储本层元素,当每次出原队列元素时都需要在新队列中记录一份,此外,还需要一个变量计算此时原数列中本层元素个数,其实就是当前的元素个数,因为是一层一层进去的。相信在写完这三道题后,你一定对栈和队列的基本使用有了了解,下一节就是栈和队列的模拟实现。

dshswra的博客 179

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

第38章:ResNet+CBAM改进模型实战生活垃圾12分类

本文基于PyTorch实现ResNet+CBAM注意力模型,针对复杂场景下垃圾分类图像的遮挡、光照变化等问题,通过在ResNet各残差层后嵌入CBAM模块,实现通道与空间双重注意力增强,提升特征聚焦能力。项目包含数据预处理、迁移学习冻结策略、余弦退火优化、批量推理等全流程代码,支持12类垃圾识别,4600+图像数据集,开箱即用,完整记录训练日志与评估指标,显著提升模型在真实环境下的分类精度与鲁棒性。

Henry的博客 348

从零开始的C++生活——第八讲——02

当你想要获取第i个元素的时候,你需要拿到两个下标,一个是中控数组的下标,你需要知道它存放在哪个数组中,另一个是当前数组的下标,ptr[x][y]即是该元素,x的计算其实是用i/N,其中N是每个数组的大小,每个数组大小必须都是N,不然你计算会混乱。y的计算则是i%N。针对vector,它解决了扩容频繁以及空间浪费的问题,你一个数组存不下了,紧接着扩下一个数组就好,不会一下扩很多,而且vector在扩容时是需要大规模的拷贝数据的,deque也解决了这个问题,至于第二个缺点我一会再说。

dshswra的博客 223

从零开始的C++生活——第七讲——02

关于迭代器,由于你要进行操作符重载,所以我选择封装一个迭代器类,从底层的角度思考,你拿到任意一个类型的迭代器一般都是要访问迭代器所指向的空间的成员,所以我们其实应该拿到迭代器所指向节点的值,因此这也是一个模板类,而且,我们要对迭代器的解引用操作符和->操作符进行重载,重载即是分别拿到对应的值以及对应值的地址,除此之外,在遍历过程中我们需要对迭代器进行比较,因此需要重载==!增加的模板参数一个传T的引用,一个传T的地址,而const类型的迭代器则是传const T&和const T*。

dshswra的博客 93

生活服务小程序开发案例:按行业接单、虚拟拨号与原服务人员复购

一次生活服务完成后,用户再次产生需求时,可能希望由熟悉情况的服务人员继续提供服务。平台需要处理的,不只是“再次下单”,还包括原服务人员是否愿意接单、拒绝后订单如何继续流转,以及服务完成后的评价和收益结算。围绕某公司的生活服务业务需求,海拔网络开展了一套微信小程序的定制开发,将服务预约、人员认证、行业接单、虚拟拨号、用户确认开始服务、评价和复购连接起来。本项目同时考虑首次预约与再次预约。普通订单进入接单大厅,由对应行业的服务人员承接;

haibawangluo的博客 199

豆包工作接入抖音生活服务经营等官方插件,AI从给建议到深入经营

商户完成相应账户授权后,无需在多个后台之间切换,通过自然语言对话即可查询数据、对比经营表现,并获得复盘报告与投放调整建议,部分场景还可由豆包工作直接创建广告、调整投放,不用再拿着建议回到后台逐项操作。此次三款插件的接入,让 AI 不再只停留在给建议,而是能跟着商家走完看数据、做复盘、调投放的完整经营流程。在门店经营环节,通过抖音生活服务经营插件授权登录后,通过读取成交、曝光等经营数据,豆包工作可以辅助商家按门店和时间周期进行同口径对比,并可生成含图表的复盘报告和行动建议。抖音生活服务经营插件页面。

大力财经 180

设计模式与生活⑬:你坐几号线,谁来运营是另一回事

一到周五,小王的心情就会好一点。倒不是工作少了,而是想到这一天忙完,后面接着双休,心里就有盼头。地铁上,他抬头看标识,发现一件平时没留意的事:5 号线、10 号线常见的是“北京地铁”,4 号线却写着“京港地铁”。再想想,北京的机场也各有各的名字:首都机场、大兴机场。可在成都坐地铁,日常看到的统一称谓就是“成都地铁”。都是出行,名称和背后的主体并不完全一样。对乘客来说,常做的事还是那几样:查线路、进站、上车、到站下车。坐几号线是一条信息,谁来运营是另一条信息,不必揉成一团。同样是在北京坐地铁,线路和运营方并不

工一木子 231

设计模式与生活⑭:一栋楼,共用一份热

今天是立冬。天气预报说夜里有暴雪,白天最高也就 4 度。早上起来,屋里比外面强不了多少。窗玻璃上蒙着一层水汽,摸一把暖气片,凉的。物业群里发了通知:今天开始试供暖,暖气片会慢慢热起来,顶层记得排气,边户留意自家热不热。隔了会儿再摸,暖气片上热下凉,温温的,不烫手。再晚一点,整间屋子总算有了点热乎气。一天里最踏实的一件事,是知道这栋楼里不只自己一户在等热。热力站烧的是一锅水,顺着管网送到每家,各家只管拧自己那个阀门。试供暖第一天,暖气片温而不烫今天聊的。

工一木子 351

2000-2020-全球500米分辨率-三生用地(生产-生活-生态)空间分布数据

该数据集为2000–2020年全球500m分辨率生产-生活-生态空间分布图,基于GlobeLand30与NASA人口密度数据融合生成,经Google Earth验证,精度达83.94%以上(卡帕系数≥0.81)。数据涵盖农业生产、工业生产、城市/农村生活及森林、草地、水域等七类生态空间,以GeoTIFF格式存储,支持ArcGIS、ENVI等工具读取,填补了全球三生空间数据库空白,助力可持续发展目标评估。

hu397313168的博客 163

消费返物业费小程序本地生活商家联盟社区商城本地同城多商户商城app源码

基于UniApp+ThinkPHP搭建的消费返物业费系统,支持社区、物业、商家、管家多方协同。业主消费可返抵物业费,提升满意度;物业增收增效,实现精细化管理。流程透明,模式可持续,构建智慧社区生态闭环。

qq_35738963的博客 50

从零开始的C++生活——第七讲——01

因为前边说过,list的迭代器是双向迭代器,不支持+-,而sort底层是快排,不论是挖坑法还是前后指针法还是霍尔,都是需要在两边区间找大找小的,少不了+-,所以list自己实现了一个。对于list的迭代器,它并不支持+-运算,因为内存空间不连续,所以你加减其实是没有意义的,但是它支持++--,虽然从语义理解这也是没有意义的,但显然是通过运算符重载使得自增自减达到我们想要的效果。然后remove其实就是删除,和erase不同的是,remove是删除值,erase则是删除对应位置。

dshswra的博客 230
上一篇: a foreword of my blog on 优快云
下一篇: 敏捷之路——从软件研发者角度看软件研发过程改进
xiaohaige
博客等级 码龄25年 1粉丝 17原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值