[软件工程] 编程问题解决技巧
目录
- 1 快速避坑、解决通用问题的技巧 : 看文档
- 2 代码调试方法 : 小黄鸭调试法
- 3 最小系统法(抽取核心代码,单独测验) : 问题分解、分步排查/分步求解 (分治思想)
- 4 Search at : Github
- 5 善用搜索引擎,从不同角度描述/提示问题( Google / Bing / ChatGPT) : Prompt / Keywords
- 6 代码调试技巧 : 佛系方法/鸵鸟算法
- X 参考文献
1 快速避坑、解决通用问题的技巧 : 看文档
Github、开源组件的文档
2 代码调试方法 : 小黄鸭调试法
小黄鸭调试法
(Rubber Duck Debugging
,又称橡皮鸭调试法
,黄鸭除虫法
)是软件工程
中使用的调试代码方法
之一。
这里所指的小黄鸭,主要是为了提供一个对于对话、辅助完成对当前问题的思路梳理的工具人,它可以是:可以与你说话的同事、Team Leader、乃至小黄鸭等真玩偶。

此概念是参照于一个来自《程序员修炼之道
》书中的一个故事。

传说中程序编程大师随身携带一只小黄鸭
,在调试代码
的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码。
许多程序员都有过向别人(甚至可能向完全不会编程的人)提问及解释编程问题,就在解释的过程中击中了问题的解决方案。一边阐述代码的意图一边观察它实际上的意图并做调试,这两者之间的任何不协调会变得很明显,并且更容易发现自己的错误。如果没有玩具小鸭子也可以考虑向其它东西倾诉,比如桌上的花花草草,键盘鼠标。
类似的,有一种现象叫做cone of answers
,这是一个常见的现象。
你的朋友跑来问你一个问题,但是当他自己把问题说完,或者说到一半的时候就想出了答案走了,留下一脸茫然的你。是的,这个时候你就起到了那只小黄鸭的作用。
相似的概念还有不少,例如自白调试
、纸板程序员
或程序员的假人
、想出脑外
等等。总的来说,在你试图表述自己的想法的过程中,自然地在促使自己去整理思路,重新考虑问题。
3 最小系统法(抽取核心代码,单独测验) : 问题分解、分步排查/分步求解 (分治思想)
推荐工具网站
3.1 前端语言
3.1.1 CodeSandBox

3.1.2 Codepen
3.1.3 SnippetsLab [just for MacOS]

Snippetslab
不是一款传统意义上的代码编辑器
,它的设计从头到尾都透着一股浓浓的为碎片化
而生的味道。
它所面向的不是连续的编辑一个完整程序的情景,而是将一个程序组件
一个个拆分出来编写的情景。
在这种情景下,你可以非常碎片化的编写程序,并且可以快速的将代码调用到各个其他的程序上。而Snippetslab
做的就是将这些代码收集在一起
,让你可以快速搜索并调用,将一个个小的程序片段快速的组合。
SnippetsLab
的终极目的就是将你容易遗忘在电脑角落中的各种代码片段收集在一起,构建成你个人的巨大的代码片段库。随着你编写与收集的代码片段越来越多,你的私人片段代码库也就积累的越来越多,你的可用代码也就越来越多,结合它的快速搜索和资料库结构,将能够极大的帮助你的程序构建(虽说网上的代码库肯定更大,但用自己整理的代码不是更方便容易吗)。
同时,SnippetsLab
支持 MacOS
、iCloud
,这意味着你可以在多台设备上快速同步。
3.2 全能型(前端 + 后端)
3.2.1 MassCode (私有化部署) 【推荐】
3.2.2 Replit (SaaS云服务) 【推荐】
Replit(原来是https://repl.it)是一个基于浏览器的云端协同开发平台,可用于构建开发环境、实时协作、托管网络应用等。
Replit提供可创建动态或者静态网站的容器,并会自动生成免费https域名(格式为:项目名.用户名.http://repl.co)。
这代表着任何人都可以试用Replit的云服务器创建自己的网站,或者是其他的服务,而且这一切,都是免费的。
支持的编程语言:
Python
Java
C++ / C
HTML / CSS / JS
Ruby
...


3.X 代码片段资源网站
- Snipplr 【推荐】
snipplr 可以说是世界上最大的代码资源库。在过去的几年中,它发布了大量的代码片段,包括我们网站上的很多文章都引用了snipplr的大量代码。
一个综合性质的代码库。拥有25中不同编程语言的代码集合,包含了几千的代码片段。
一个综合的代码库,包含了php,C#,visual Basic,javascript等。
-
Code Beach :Mac开发者的代码库,包含了C,Ruby,C++,Python等代码片段
-
PHP Snips :如果你做PHP开发,那么这个网站绝对是你需要的代码库。拥有几百号的免费使用的代码。超值!
-
WPRecipes:一个专门收集wordpress代码的网站。大约拥有300个独立的代码片段可供用户选择。
-
Code Codex :使用wiki方式构建的代码资源网站,拥有丰富的C,C++和Java的代码资源。
-
CodeKeep :上万的代码片段,绝对能够找到你需要的代码。包含,C,C++,ASP,VB ,actionscript等
-
GBin1 jQuery/javascript:这里收集了很多大家可能会常用的jQuery/javascript代码片段,如果你也有自己不错的代码片段,你也可以投递
4 Search at : Github
4.1 搜 Issue
Case : Serverless https://github.com/UnitedIncome/serverless-python-requirements/issues/106
4.2 开 Issue
Case : Google Cloud SDK https://github.com/googleapis/google-cloud-node/issues/2542
4.3 搜 Github 全平台源码
Case : Alexa Skills Kit (ASK) SDKs https://github.com/search?q=escapeXmlCharacters&type=Code
5 善用搜索引擎,从不同角度描述/提示问题( Google / Bing / ChatGPT) : Prompt / Keywords
善用 Google (用不同的角度描述问题,搜不同角度的关键字)
Case : AWS S3 Event
6 代码调试技巧 : 佛系方法/鸵鸟算法
- 鸵鸟算法 : 鸵鸟算法,一种计算机操作系统算法,用于当死锁真正发生且影响系统正常运行时,
手动干预—重新启动
。
电脑重启一下、人也缓一下
Case : 带薪拉粑粑,带薪喝咖啡,带薪不干活 ....
X 参考文献
- 编程问题解决技巧 | 如何让程序员不加班 | 小黄鸭调试法 | Github Issue | 用得好加班少 - Bilibili 【推荐】
- 鸵鸟算法 : 鸵鸟算法,一种计算机操作系统算法,用于当死锁真正发生且影响系统正常运行时,
手动干预—重新启动
。 - 小黄鸭调试法 - 百度百科
- The Pragmatic programmer:From journeyman to master(程序员修炼之道 : 从学徒到大师) - 百度学术 【推荐】
小黄鸭调试法 : [04:00 - 05:00]

本文链接: https://www.cnblogs.com/johnnyzen/p/17258237.html
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤