程序员翻车时,脑子里都在想什么?

2024-02-02 14:30
文章标签 程序员 翻车 脑子里

本文主要是介绍程序员翻车时,脑子里都在想什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发工作充满了挑战性。人无完人,对于程序员来说,写出有 bug 的代码是在所难免的。

有些人很淡定,也有一些人会感到生气、沮丧、不安或气馁。

在修复 bug 的过程中我们都经历了什么?来和大雄一起找找共鸣,看看大家是不是都经历过这种挣扎:

PS:本文内容一般,不知你们是否能get到那个点,但是无所谓,最起码配图还不错,图可以偷,记得评论+转发哦~

程序员翻车时,脑子里都在想什么?

1、该把它删掉还是该重写

看着旧代码,总有一种想要重写它们的冲动。

丑陋的逻辑语句和啰嗦的语法极大降低了代码可读性!

但是,如果代码跑得好好的,为什么要去修改它们呢?

我们经常会陷入这样的两难境地,而且我相信这也困扰着很多其他程序员。

2、先到 GitHub 上找个框架

我想大多数人都知道 GitHub,这个网站每天都会有很多开源项目发布出来。

程序员翻车时,脑子里都在想什么?

开发者们加入这个网站,给已有的项目拉取分支,在 wiki 上讨论,或者创建自己的代码库。

网站提供了很多很好的插件和模板,可以被用在各种各样的项目中。

3、为什么这个脚本要用这么多库?

如果要使用热门的编程语言,比如 Java 和 Objective-C,那么项目依赖库的数量会变得非常大。

在采用一个需要大量依赖项的框架时这一点就变得非常明显。

一些 JavaScript 插件也需要大量的额外文件。有时候这些杂乱的东西会让人厌烦,但至少它们是可以用的!

4、网上一定能找到解决方案

在碰到难题时,我的第一反应是上网。

很多程序员会在论坛上问问题,这些问题最终会得到解答。

谷歌非常善于挑选与你的问题相关的关键字,并为你提供这些有用论坛帖子。

但可惜的是,有时候对于某个具体的特定的问题并没有太多的信息。

5、这个功能有没有对应的插件?

为什么要重复发明轮子呢?

要扩展用户界面、程序或网站,插件是一种很好的方式。

另外,插件还能提供定制化功能。

如果找不到相应的插件,为什么不自己开发一个?(因为菜啊

程序员翻车时,脑子里都在想什么?

程序员翻车时,脑子里都在想什么?

6、网站没问题,就怕遇到 IE

在 IE 中渲染网页给我们带来了很多考验和磨难,这个就不用多说了。

从 IE 5.5 到 IE 9/IE 10,人们一直在为获得更好的浏览器支持而做着艰苦卓绝的斗争。

Web 开发人员可能很担心网页调试,因为在 IE6 中打开一个网页可能就是一场噩梦。

值得庆幸的是,那些日子正慢慢成为过去。(只要别拿IE,我们都是朋友)

7、这条逻辑语句的逻辑性不是很强

if/else 循环、for 循环、while 循环、do 循环,这些都是逻辑语句,除了这些之外还有很多。

在阅读示例代码时,会反复回想代码里的逻辑应该怎样写更好。

大量的非运算符和比较符号会让人晕头转向。

所以,会经常回头去修改之前写好的逻辑。

8、半小时写的函数,花两个小时调试

一股脑儿写了一个函数,然后函数输出了一个致命的错误。

为了找到问题所在,就不得不把其他代码删掉,只留下出问题的那几行代码。

程序员翻车时,脑子里都在想什么?

(找bug犹如此图)

当最终找到问题并把它修复,会感到筋疲力尽,但同时也松了一口气。

9、在看了几篇文章之后,我才意识到之前的做法是错的

大家通常喜欢用自己的方式做事,但如果事情没有按照原计划进行,可能就会有麻烦。

有好多次,开始一个项目遇到了麻烦,然后开始在网上搜博客寻找解决方案。

最后发现原来方法是错误的,重新开始也许会更容易些!

所以,在一开始先做一些调研,从长远来看肯定会节省时间。

10 、少了右括号,麻烦一大堆

调试代码就是跳来跳去,向前两步,后退一步,再向前两步,如此往复。

花上几个小时盯着代码看,查找函数名或变量作用域中的错误,最后却发现少了右括号,那种感觉很怪异。

所有的时间都浪费在了一个很小的语法错误上,感觉自己蠢得冒气。

11、休息一下

有时候需要站起来,离开显示器一会儿。

在敲了几个小时的键盘之后,休息一会儿肯定有助于思考。

程序员翻车时,脑子里都在想什么?

大多数的健康指南建议每 30 到 60 分钟休息一次,但这完全取决于自己的需要。

如果总是在半途中断,也可能感觉很烦。(番茄钟我就完全用不了......)

12、手头的项目先停下,稍后再继续

除了离开电脑,这是另一种休息方式。

或许还有其它工作可以做,那就去做吧。

这是一种更好的分配时间和资源的方式,特别是如果已经花了 5 个小时还解决不了一个问题的时候。

13、有没有能够激发我编程能力的古典音乐?

有一种观点认为,在植物生长的初期,播放古典音乐有助于植物的生长。

个人很喜欢古典音乐复杂的音符和音乐理论。

爵士乐、钢琴、大乐队,古典音乐在人类文化中都占有一席之地。

那么,在编程时听音乐真的能让你在调试代码时变得更聪明吗?

程序员翻车时,脑子里都在想什么?

可能不会,但希望它也不会让你变得更笨。

14、或许现在是检验鲍尔默巅峰理论的好时机

我想很多人都知道鲍尔默巅峰理论:该理论认为,程序员在摄入一定数量的酒精后,其编码能力将达到巅峰。

这是由史蒂夫·鲍尔默的古怪行为引起的,感觉可能只是一个酒鬼的胡言乱语。

不过这有点讽刺,因为鲍尔默在微软并不是一名程序员。注意上班时间不要试哈~

15、谁动了我的代码?

这听起来就像是一种妄想症,但有时不得不怀疑,是不是睡觉的时候,谁写了这些代码。

过去几周或几个月忙的项目非常枯燥。

有时候会不记得自己往代码库里添加过东西——甚至是上周刚刚查看过的项目!

程序员翻车时,脑子里都在想什么?

16、我不知道这是什么意思

最糟糕的情况是,你一边阅读源代码,一边不知道该做点什么。

可能是你自己的项目,也可能是其他人的项目,但问题是一样的。

现在,必须决定是花更多的时间查找替代方案,还是花时间分析脚本。

17、我要在谷歌上搜一下这个错误消息

不得不说谷歌真是好朋友。

不管你使用的是什么编程语言,比如 Objective-C、C++、Java、Python 等,都会有同样的体会。

错误消息试图为我们提供帮助,但除非已经记住了各种错误代码的含义,否则它们看起来更像是经过翻译的计算机语言。

但只要谷歌一下就有很多内容可以帮助我们确定这些错误消息到底是什么意思。

18今天应该到此为止,但我真的很想解决这个问题!

我们都知道,当想要放弃一件事情,会有一种挫败感,同时又觉得放弃并不是正确的选择。

你希望继续前进,并尝试新的解决方案。

但如果你发现你又因此浪费了一个小时呢?我经常遇到这种情况,这让人感到很难受。

程序员翻车时,脑子里都在想什么?

19、天哪,我为什么没写注释?

在写前端 HTML/CSS/JS 代码时,并不总是需要写注释。

但对于复杂一些的脚本和程序,就需要某种类型的注释,以便你在几个月后甚至几年后回过头来查看。

有时候你会忘记给函数及其参数、输出格式和其他基本数据添加注释。

当出现错误时,你需要调试整个脚本才能找到解决方案时,这无疑会给你添乱。

这个时候你就会想,如果当初加一些有用的注释就好了。

20、刚才它还能运行……

开发程序最令人感到沮丧的,可能是什么都没做——既没有更新,也没有修改代码——程序却突然不能正常运行了。

这种事真的经常发生。

也许是因为其他程序正在运行旧的版本?谁知道呢

有时候,更新一小段代码就会导致整个程序崩溃,然后只能恢复到最近的可运行版本,并从那里接着往下开发。

程序员翻车时,脑子里都在想什么?

21、就因为忘记加个分号,整个程序都崩溃了

我用过的每一种编程语言几乎都需要行终止符,当然并不是所有的都需要,但 C/C++ 族编程语言通常是这样的。

如果忘记添加结束分号,只是一个无心的错误,但解析器不理解这一点,它会无情地抛出一个致命错误。

然后,你必须再花 20 分钟来查看代码,最后你发现缺少了一个分号。也许这就是调试的“乐趣”。(感觉我在被代码调试.....)

22、我想知道如果请人来修复我犯下的错误要花多少钱?

聘请其他开发者来修复问题,这种想法很诱人,但显然财务上不允许。

另外,如果你不亲自动手,怎么能从这些错误中吸取到教训呢?

程序员翻车时,脑子里都在想什么?

在经历了多次失败之后,当你最终对一个编程概念有了透彻的理解,你才会感觉良好,能招人还是招

程序员翻车时,脑子里都在想什么?

23、快速浏览一下 Hacker News 肯定能提高工作效率

很多程序员喜欢在 Hacker News 上了解与软件及初创公司相关的社会新闻。

这个网站上有很多关于自由职业、时间管理、软件开发、新公司启动和融资的信息。

虽然浏览这个网站会给你带来高效的感觉,但它也在消耗你的时间。

每隔几个小时休息一下,趁这个时候去看看新闻或许会更好。

24、这个 API 怎么能没有文档!

如果你使用的插件或框架没有文档,那么最令人感到沮丧的是你必须自己深入查看它们的源代码。

个人偏爱那些开发人员会花时间专门设计文档的项目。(文档非常重要!!)

文档解释了所有可用的参数和选项,甚至可能还会提供一些示例代码片段。但遗憾的是,并不是所有的项目都会这样。

最简单的方法就是远离那些没有详细文档的项目,这样你就不会那么痛苦了。

程序员翻车时,脑子里都在想什么?

25、我多么希望给数据库做过备份……

在开发和调试代码时,我并不总是会想到给数据库做备份。

但是,数据备份提供了一个保障,在做出某些变更之前可以及时回退。

记住,请在本地保留网站项目文件和数据库的副本,以备不时之需!

这可能是一项烦人的任务,但绝对没有重建被损坏的 SQL 数据库那么烦人。

26、要解决这个问题,最快的方案是什么?

在经过了几个小时毫无头绪的工作之后,很明显,你可能需要尝试一种新的方法。

在设计接口之前,程序员希望先让功能正常运行起来。

确定最快速、最准确的解决方案,并保证 100% 的时间都可以正常运行,然后继续做那些锦上添花的东西。

27、我打赌,更新新版本就可以解决这个问题

负责管理编程语言依赖项和插件的团队不需要经常发布新版本。

有时候,更新 PHP/Ruby/Python/SQL 版本就可以解决将文件从本地传输到服务器时的调试问题。

本地更新很少有助于修复源代码中的 bug,除非你的版本已经过时。值得一试!

28、我应该学习 Git……但我想从下周开始

版本控制系统 Git 在程序员中非常流行,它的学习曲线比其他竞争对手要容易些,被用于管理很多在线代码仓库,比如 Github 和 Bitbucket。

开发人员之所以想要延后学习,是因为对于初学者来说,它的入门曲线非常陡峭。

但是,一旦理解了它的基本命令,Git 就变得非常简单了。

29、扔掉这个,我要从头开始

有时候,在花了几个小时尝试某个解决方案之后,你会将工作文件移动到存档目录(或删除它们),然后从头开始。

之前几个小时的辛苦工作几乎没得到有什么回报,所以做出这个决定是很艰难的。

但当我陷入困境时,重新开始往往正是完成一个项目所需要做的事情。

程序员翻车时,脑子里都在想什么?

这篇关于程序员翻车时,脑子里都在想什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/670991

相关文章

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

程序员都在使用的画图工具

大家好,我是袁庭新。 程序员都在使用的画图工具,你一定没用过这款画图工具吧!我教程中的架构图都是用它来画的。 比如我编写的RDB工作原理图就是用draw.io绘制的,如下图所示: 再例如Redis集群故障恢复原理图我也是通过draw.io工具绘制的,如下图所示: 是不是觉得draw.io绘制的图形特别简洁、美观。它的官网是: https://www.drawio.com dra

GitHub:代码是程序员沟通最直接的手段

如果不是 Andreessen horowitz 的投资,估计 GitHub 很难被福布斯、CNN、纽约时报等传统媒体注意到。普通大众之前不了解这个工具,是因为它距离记者的世界太远了——GitHub 是一个程序员所使用的托管项目的服务。 但在一些程序员眼里,它不仅是托管项目的地方,还是“开源”项目的大本营,而且是提高程序员“技术水平”和“技术品味”的地方,更是一个程序员社交的地方。

黑马程序员---银行业务调度系统

模拟实现银行业务调度系统逻辑 需求分析: 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 异步随机生成各种类型的客户,生成各类型用户的概率比例为:         VIP客户 :普通客户 :快速客户 =  1:6:3。 客户办理业务所

黑马程序员---空中网面试题

空中网4k/5k月薪挑选大四实习生的线程题     两年前,我们一个大四的学员去应聘空中网的实习生职位,空中网只给他出了三道线程题,拿回家做两天后再去给经理讲解,如果前两题做好了给4k月薪,第三道题也做出来的话就给5k的月薪。这样的实习薪水和招聘要求,不需要有工作经验的限制,纯粹是技术功底的比拼和考核,而不像许多其他公司非要招两年工作经验的人,逼得那些刚毕业和未毕业的大学生不得不去撒谎,不得不去做

黑马程序员---线程并发库

软件包 java.util.concurrent 在并发编程中很常用的实用工具类。 请参见:            描述 接口摘要BlockingDeque<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待双端队列变为非空;存储元素时等待双端队列中的空间变得可用。BlockingQueue<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为非空,以及

黑马程序员---多线程

TraditionalTread 传统线程技术回顾 创建线程的两种方式: thread3中,同时创建了Thread的子类和Runnable,那么会优先执行Thread的子类,因为Runnable的代码被当做参数传到了Thread类里,Thread子类的run方法又覆盖了父类的方法,所以会执行Thread子类的代码。 package cn.itcast.heima;public class T

黑马程序员---代理

分析代理类的作用与原理及AOP的概念 代理的概念与作用  1.已经写好一个类,现在要为这个类增加一些功能,例如,异常处理、日志、计算方法的运行时间、事务管理、等等,你准备如何做? 现在我们写一个代理类: 保持了原来那个类的功能,又增加了你现在需要的功能。 主函数调用的时候,直接调用代理类就行了。 这就是代理类的功能。   2.编写一个与目标类具有相同接口的代理类,代理

黑马程序员---类加载器

------- android培训、java培训、期待与您交流! ----------   简要介绍什么是类加载器和类加载器的作用 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader   类加载器也是Java类,因为其他是java类的类加载器本身也要被