- 1
- 0
- 约6.97千字
- 约 8页
- 2021-01-24 发布于北京
- 举报
2018/8/27 极客时间 | 程序员进阶攻略
讲堂 程序员进阶攻略 文章详情
11 | 三阶段进化:调试,编写与运行代码
2018-08-27 胡峰
11 | 三阶段进化:调试,编写与运行代码
朗读人:刘飞 13′54′′ | 6.37M
刚开始学编程写代码,总会碰到一些困惑。比如,曾经就有刚入行的同学问我:“写程序是想到
哪写到哪,边写边改边验证好,还是先整体梳理出思路,有步骤、有计划地分析后,再写更
好?”
老实说,我刚入行时走的是前一条路,因为没有什么人或方法论来指导我,都是自己瞎摸索。一
路走来十多年后,再回溯编程之路的经历,总结编程的进化过程,大概会经历下面三个阶段。
阶段一:调试代码 Debugging
编程,是把用自然语言描述的现实问题,转变为用程序语言来描述并解决问题的过程;翻译,也
是把一种语言的文字转变为另一种语言的文字,所以我想编程和翻译应该是有相通之处的。
好些年前,我曾偶然读到一篇关于性能的英文文章,读完不禁拍案叫绝,就忍不住想翻译过来。
那是我第一次尝试翻译长篇英文,老实说翻得很痛苦,断断续续花了好几周的业余时间。那时的
我,之于翻译,就是一个刚入门的初学者。
/column/article/14057 1/8
2018/8/27 极客时间 | 程序员进阶攻略
初次翻译,免不了遇到不少不熟悉的单词或词组,一路磕磕碰碰地查词典或 Google。一些似乎
能理解含义的句子,却感觉无法很好地用中文来表达,如果直白地译出来感觉又不像正常的中文
句子表达方式。
如是种种的磕碰之处,难道不像你刚学编程时候的情形吗?刚开始写代码,对语法掌握得不熟,
对各种库和 API 不知道,不了解,也不熟悉。一路写代码,翻翻书,查查 Google,搜搜 API
文档,好不容易写完一段代码,却又不知道能否执行,执行能否正确等等。
小心翼翼地点击 Debug 按钮开始了单步调试之旅,一步步验证所有的变量或执行结果是否符合
。如果出错了,是在哪一步开始或哪个变量出错的?一段不到一屏的代码,足足单步走了半
小时,反复改了好几次,终于顺利执行完毕,按 输出了执行结果。
如果不是自己写全新的代码,而是一来就接手了别人的代码,没有文档,前辈稍微给你介绍两
句,你就很快又开始了 Debug 的单步调试之旅,一步步搞清代码运行的所有步骤和内部逻辑。
根据你接手代码的规模,这个阶段可能持续数天到数周不等。
这就是我感觉可以划为编程第一阶段的 “调试代码 Debugging” 时期。这个时期或长或短,
也许你曾经为各种编程工具或 IDE 提供的高级 Debug 功能激动不已,但如果你不逐渐降低使用
Debug 功能的频率,那么你可能很难走入第二阶段。
阶段二:编写代码 Coding
翻译讲究 “信、达、雅”,编码亦如此。
那么何谓 “信、达、雅” ?它是由我国清末新兴启蒙思想家严复提出的,他在《天演论》中的
“译例言” 讲到:
译事三难:信、达、雅。求其信已大难矣,顾信矣,不达,虽译犹不译也,则达尚
焉。
信,指不违背原文,不偏离原文,不篡改,不增不减,要求准确可信地表达原文描述的事实。
这条应用在编程上就是:程序员需要深刻地理解用户的原始需求。虽然需求很多时候来自于需求
(产品)文档,但需求(产品)文档上写的并不一定真正体现了用户的原始需求。关于用户需求
的“提炼”,早已有流传甚广的“福特之问”。
福特:您需要一个什么样的更好的交通工具?
用户:我要一匹更快的马。
用户说需要一匹更快的马,你就跑去 “养” 只更壮、更快的马;后来用户需求又变了,说要让
马能在天上飞,你可能就傻眼了,只能拒绝用户说:“这需求不合理,技术上实现不了。”可
/column/article/14057 2/8
2018/8/27 极客时间 | 程序员进阶攻略
见,用户所说的也不可 “信” 矣
您可能关注的文档
最近下载
- 2015款_威朗使用说明书.pdf VIP
- DB21_T 2943-2018农村生活污水处理技术指南.docx VIP
- 2025年浙江省单独考试招生文化考试语文试卷及答案.docx VIP
- 《公共数据 数据分类分级规范》(DB54T 0423-2024).pdf VIP
- 环卫工人工资专用账户管理协议示范文本模板.docx VIP
- 2023年浙江省单独考试文化招生语文试卷 含答案.docx VIP
- 外研版(2024新版)七年级上册英语全册教案(单元整体教学设计).pdf VIP
- gb2828抽样计划表培训课件.ppt VIP
- 浅谈民间童谣在幼儿园课程中的整合策略.doc VIP
- 违法发放贷款罪专题讲座参考课件.pdf VIP
原创力文档

文档评论(0)