`

思考,调试 你选择哪个?

阅读更多

看到标题,也许你已经知道我的主题是什么了,不错,我的主题就是写代码。从踏上编程这条路开始,二年或是三年我们就一直与关键字与自定义数据为伍,我们的大多数时间用来编码,用来完成任务,结束项目。 这是一个美妙的过程,在这个过程中挑战极限,充分享受代码带来的痛苦和乐趣。我对编码的的定义就是在痛苦中寻找乐趣。可话说回来,在这个寻找的过程中我们又进入了另一种痛苦。这就像我们在沙漠中寻找绿洲一样,寻找的过程本身就是一种痛苦。 我对编码更明确的定义就是在痛苦中通过痛苦的寻找过程得到乐趣。 如此想来,那寻找的一丝乐趣也没有意思了。 我对编码更准确的定义就是在痛苦中通过痛苦的寻找过程得到还不如痛苦的乐趣,精华是没事找抽。所以编码就是没事找抽。 程序员就是没事找抽的角儿。

为什么会有这么变态的结论?我想这就是我这篇文章要与大家讨论的问题。在此我想问大家,假设我们这一天的任务就是要写代码,那么你会用多长的时间来调试?这个问题很重要。又用了多长时间来思考如何编码?这个问题也很重要。

这里有一个数据,我没有考证来源,只供参考。大多数程序员,无论他的水平如何,其平均每天只有10-12行的代码最终会进入最终的软件产品中。有的程序员为了得到这10-12行代码花费90%的时间来调试程序。有的程序员为了这10-12行代码花费90%的时间来思考,调查,研究最佳的设计。从表面上看,这两种程序员是在相同的时间内得到同样多的代码。但是他们完成代码的心情和质量却是不一样的。前者随意地改动代码并尝试让代码工作起来,一直处在痛苦边缘。所以有把时间多分配给思考,而不是调试。

好,思考是好事,但是思考什么才是最有效的?

我不要浆糊和烂泥,要的都是精华!

一方面要问这样写对不对,有没有更好的方法?另一方面在编程过程中要做到复用。使用已有的东西是一件简单的事情,所以在请尽量使用已经存在了的解决方案来解决问题,把握对通用的模式的识别和重用。好,我们通过重用思考把代码给写出来了,那么结束了吗?还没有!能过下一步思考我们可能要重构/重写自己的代码。我觉得还是重用思考。但不是重用已有代码,而是我们的代码是否有重用性。

我认为这样会让我在编码过程中尽量避开调试,节省时间,更重要的是减少痛苦。

分享到:
评论

相关推荐

    智能家居安装与调试400问.pptx

    通过阅读本书,读者将能更深入地了解智能家居的安装与调试技术,同时也能获得对智能家居行业的深度思考和未来展望。希望这本书能为读者在智能家居领域的学习和实践中提供宝贵的帮助。 智能家居安装与调试是智能家居...

    _程序调试思想与实践

    调试不仅是一项技术,更是一种思考问题、解决问题的艺术。本篇主要围绕“程序调试思想与实践”这一主题,深入探讨调试的核心理念和实际操作技巧。 首先,我们要理解调试的基本概念。调试是指在软件开发过程中,对...

    自动化设备调试规范.pdf

    - 调试过程中要细心观察,积极思考,必要时寻求帮助,找到问题核心,选择合适的调试基准。 - 遇到传感器故障,可以临时短路对应的PLC输入点,让设备继续运行,但最终仍需修复传感器。 综上所述,自动化设备的调试...

    中职《单片机控制装置安装与调试》课堂教学的思考.pdf

    在中职《单片机控制装置安装与调试》这门课程的教学实践中,我们发现传统的教学方法和评价体系无法完全满足学生的实际需求,尤其是针对基础较差的学生群体。为了适应职业教育的特殊要求,并有效提升学生的学习兴趣和...

    S3C44B0 调试笔记——BIOS部分

    1. **硬件配置**:首先,介绍作者选择的S3C44B0开发板的基本配置。开发板包含以下关键组件: - CPU:S3C44B0 - 内存:SDRAM - 存储:FLASH(初始配置为AM29LV160,后更换为SST39VF160) - JTAG接口:用于调试 -...

    自动化设备调试规范.doc

    9. 细心与思考:安装、调试和联机时,需要细心、耐心,多观察,多思考,必要时多提问以找到问题所在。 10. 调试基准:选择合适的调试基准,减少重复工作。一旦基准变动,可能需要大量重调。 在自动化设备调试过程中...

    串口助手,串口调试工具

    串口助手是一款强大的通信协议调试...对于熟悉COM口、TCP/UDP协议的用户来说,它是提高工作效率、简化调试过程的理想选择。通过不断更新和优化,如sscom5.13.1这样的新版本,软件的稳定性和功能性得到了进一步提升。

    Matlab技术调试技巧.docx

    其次,我们可以采用"三思而后行"的原则,细致地分析代码,思考可能的问题和解决方案,以避免不必要的调试过程。最后,我们应该不断学习和积累调试经验,了解常见的问题和解决方法,以便更好地应对未来的挑战。 结论...

    (完整版)88E111调试心得.doc

    因此,作者强调了在调试过程中,必须遵循正确的步骤,遵循datasheet的指导,并且不应该轻信别人的原理图,而是从根本出发,独立思考和解决问题。 本文总结了作者在调试88E1111芯片时的经验和教训,涵盖了芯片...

    程序调试黑宝书

    - **版权与传播**:尽管有版权保护,但作者选择免费分享这篇文档,希望更多人能够从中学习并提高自己的调试技能。同时提醒读者保持独立思考,并注意文档中提供的示例代码可能是伪代码,用于辅助说明概念而非实际可...

    软件调试技术

    总结,软件调试技术是每个开发者的必备技能,通过理解错误的本质、选择合适的工具和运用有效的调试策略,可以极大地提高软件质量,提升开发效率。不断学习和实践,将使你在面对复杂问题时更加游刃有余。

    _电工电子产品制作与调试_工作过程系统化课程设计

    《电工电子产品制作与调试》工作过程系统化课程设计的核心理念在于将理论知识与实践技能紧密结合,旨在培养学生在电工电子领域的实际操作能力和问题解决能力。这一课程设计不仅关注于专业知识的传授,更着重于通过...

    wrk的调试与编译~~~~~~~~~~~

    - 重启虚拟机并选择调试模式,使用WinDbg进行调试。 8. **观察调试结果**: - 在WinDbg中,可以通过输入`dt !nt_EPROCESS`命令来查看在`_EPORCESS`结构体中新增的成员变量`LUOTUO`。 #### 实验结果 成功完成了`...

    VC调试技巧

    2. **尝试直接跳转到源代码**:在这个位置上,鼠标右键点击并选择“Go To Source”,系统将尝试返回到对应的源代码位置。 3. **处理无法直接跳转的情况**:如果当前位置无法直接跳回源代码,可以尝试继续使用`F10`...

    Keil51及TMSD软件调试开发环境的使用

    接着,熟悉Keil51的界面和操作流程,如新建工程、选择单片机类型、创建源文件、输入汇编代码,并进行编译和链接。在调试阶段,可以设置断点,观察特殊功能寄存器状态、端口或其他接口信息,通过“Peripheral”查看...

    单片机系统等的硬件调试方法.doc

    单片机系统等的硬件调试方法是开发过程中至关重要的一步,它涉及到电路设计、元件选择、焊接技巧以及问题排查等多个方面。以下是对标题和描述中所述知识点的详细说明: 1. **焊接顺序**:在焊接单片机系统时,正确...

    操作系统实验报告-附思考题.doc

    实验报告的思考与练习部分,学生应思考在不同情境下如何选择"逐过程"或"逐语句"调试,以及理解EOS SDK文件夹的作用和组织结构。这些活动旨在加深学生对操作系统工作原理的理解,提升他们的编程和调试技能。

    操作系统实验报告-Linux下C语言使用、编译与调试实验

    #### 思考题解析 - **实验作业**:这部分可能涉及理论分析、编程实践等方面的问题,例如: - 如何处理编译时遇到的各种错误? - 如何优化程序性能? - 如何更高效地使用`vim`编辑器? #### 实验总结与体会 - *...

    像计算机科学家一样思考(C++版)

    ### 像计算机科学家一样思考(C++版) #### 一、编程之路 **核心知识点:** - **计算机科学家的思维方式:** 计算机科学家能够综合运用数学、工程和其他自然科学领域的技能,例如使用形式化的语言来表达计算思维,...

Global site tag (gtag.js) - Google Analytics