程序员的烦恼
程序猿们都知道,当自己全神贯注地进行开发的时候,最怕的就是有人突然打断你的思路。当你刚刚想好了一个不错的idea, 或者刚刚理清楚一段代码,突然有人找你说:“那个,你看一下这里…..”,然后,刚刚来的灵感或者思路就烟消云散了。此刻心中的那种感觉,就好像在打LOL的时候,眼看就要团灭对方了,突然你的台式电脑的电源被人拔掉了一样。
然而,在公司上班的时候,你是团队的一部分,不和其他人交流是不切实际的,更何况很多情况下需要和BA以及QA确定好需求和测试的中的细节问题,从而保证你所要开发的方向是正确的。我曾经很苦恼这样的情况,不过,通过请教同事和自己观察和实践,总结了一套适合自己的方式:
1.使用任务列表以及优先级
当任务多的时候,并不是立刻投入到某一件具体的事情当中,而是首先要明确自己要做的工作中哪些是重要的,哪些不是那么重要的,哪些是今天必须完成的,哪些可以放在后面做,根据相关性和重要性做出排序,写在本子上或者电脑的便签上,列好优先级。
这样在工作的时候,就会很清晰明了。尽管我也很相信自己的脑子可以记住这些,然而真正忙碌起来的时候,特别是过一会就有人找你有事或者给你布置新的任务的时候,往往会忘记当前最应该做的事情是什么,而停下手头的事情去做交代的事情,回过来已经不知道该从哪里开始了。
把任务和优先级写在纸上是对自己的提醒,提醒自己当前应该做什么才是最重要的,这样就会让时间优先用在最重要的事情上,从而保证任务按照优先级的顺序完成。
2.记录当前的进度和别人交代给你的事情
记录进度是一个相当于“自动保存”的功能。一个好的程序或者系统会帮你自动保存你正在编辑的内容以防止由于电脑的突然断电或者其他情况而导致的内容丢失,工作的时候也可以如此。当你不得不中断当前的工作而做其他的事情的时候,记录下你当前的状态是必要的,尽管有人能够做到在思维转换之后还能够清晰的回忆起之前的工作进度,但是把它记录下来能够减少你回忆的时间和精力,从而能够快速地回到之前的工作状态中去。
如果是有人临时给你交代的任务不是特别紧急,可以先和他沟通好这些事情的完成时间,然后将这些事情写下来,并标好什么时间要完成,等你解决完手头的事情,然后将记录的任务再根据优先级插入到你的任务列表中去。这样就会减少新的任务对你当前所做事情的干扰。
3.保持画流程图的好习惯和良好的开发习惯
很多开发人员,尤其是刚刚从学校出来不久的,在编程的时候往往都是直接开始砌代码。这样做会导致的问题是,功能做出来了,但是发现不符合需求,或者一测试错误很多,又不好找到错误在哪里,尤其是过了一段时间修bug的时候,自己已经忘了当时自己是怎么想的了。其实,解决这个问题的一个比较好的办法就是先画流程图。
土木工程师在建设大楼的时候首先会设计图纸,图纸经过审核之后才会开始下一步的建设。作为一个软件工程师,也要对自己要开发的功能有逻辑上的图纸,以方便和需求进行对比审核,查找自己的逻辑是否有问题,然后才开始下一步。这样即使将来有bug,也会十分容易回顾和查找。当你编程被打断的时候,也不至于忘记之前的逻辑是什么。
也许有人会问,难道我写一个简单的登录也需要画流程图吗?
首先,无论功能简单与否,画流程图应该是开发程序的一个习惯,确认需求,做详细设计(流程图等),编码,测试,这是软件工程的基本步骤,作为一个软件工程师,需要养成良好和严谨的习惯。这些习惯可以减少开发过程中的错误。
其次,画流程图能够检验自己的逻辑是否有漏洞,即使是一个简单的登录,也可以有很多的情况,将各种情况以流程图的形式画在纸上或者软件中,能够很好地帮你记录你已经想到的情况,从而可以专心的去想其他没有想到的情况。
最后,当以后项目的需求改变了,或者是程序出现了bug,都能够将当初的设计图纸拿出来,分析如何修改或者错误可能出现在哪里。
4.坚持写工作日志
就像写日记来总结自己的每天生活一样,每天工作结束,都将自己今天完成了什么,遇到了什么问题,解决的方案记录下来,经过一段时间,这就是自己的一本“武功秘籍”,随时可以查阅以前遇到的问题,同时,看着自己每天一步一个脚印的走下来的痕迹,一种自豪感也会油然而生,会更有动力去做好现在的工作。
以上就是我针对在公司编程时,应对容易被打断的方法,希望能够针对在苦恼中的你有用。
原文来自:http://www.jacobqiao.club/?p=11