关于写代码的一些心得总结2014-12-28 23:49:39

   来深圳工作已经差不多半年了,博客里记录的都是一些工作中遇到的问题解决办法。只是为了怕以后出了同样的问题还能够通过博客找到解决办法,不得不说这真的是在浪费自己的时间,首先其实即使不需要这些零碎的笔记我也应该知道去怎么解决以前遇到过的问题,其次即使我忘记了只需要Google一下就差不多能找到相同的答案,最后我发现我基本上从来不看自己已经写过的博客,我之前所做的博客不过是一种自欺欺人的应付。截止现在为止我觉得也许咱程序猿最重要的是如何把程序写得优美、简洁、高效。我如今在一家创业型的公司工作,自己虽然有一些C++的底子但是现在从事的是iOS。不得不说我的同事都是非常值得我学习的人,我在公司的开发组中是最年轻的,也是最嫩的吧。其他的同事在他们身上我看到了很多成熟的经验以及我所欠缺的尽可能完善的思维体系。

  写代码这种东西真的看起来好像不怎么样,UI是最无聊的东西,不得不查看各种文档。有时候如果需要达到某种功能之后必须要想想算法,我想每位新人应该都是兴致勃勃觉得“哈哈终于有点挑战性的东西出来了”,然后实现之后就觉得嗯不错,我好牛逼之类。经过翻过测试结果没有问题就这么放着了,觉得还不错。而实际上即使不涉及任何复杂的算法,也许仅仅是一个if判断语句都值得我们去稍微思考一下然后再做出决定。甚至就是这样一个简单的修改运行出来的结果却是完全不一样的。

  公司新做了一个项目,交给了我这个新人。从头到尾都是我开始一点点做起来的,大概做了三四个月的样子。虽然是个看起来很简单的东西。写完之后经过我自己写代码时的测试我认为应该没有什么问题了,然后交给测试结果依然是充满了个各种问题。而问题的根本是我在写代码的时候脑袋根本没有考虑过这种情况会发生,那么我自然不会对这种情况进行任何的处理。Boss阮是一个非常可敬的老板,告诉我这没什么毕竟你还很年轻,但是随着你的阅历加深你应该要学会如何健全你的“程序路径”。我的同事钟爷是一个“程序路径”想的非常健全的前辈,以前在中兴工作,而且还从事过安卓定制系统的开发,他总能看到我看不见的问题。我写的那个项目里涉及到登录的问题,我处理了所有的登录校验,然而在一个程序的内部功能中需要不断循环通过登录名以及密码获取反馈信息。但是我并没有考虑到如果在第一次正常登录之后用户在网页中修改了密码那么我获取的反馈就会出现问题。甚至跟我同样没有多少经验的测试也没用看出来,但是钟爷帮我做代码review的时候一眼就看出来了这个问题可能发生。

  这时候我在想,到底是阅历给钟爷带来了这种能力还是说即使像我这样的新手如果肯锻炼自己严谨自己那么我也能够达到同样的能力。我不敢把一切推脱于我的年轻稚嫩,我知道有更厉害的比我都年轻的在校学生甚至都比我考虑的健全。写代码的时候我们好像有一个设计图,但实际上有很多我们看不见的小路口我们没有注意到的话就会出现问题,在编程上我们不该拿着一个副地图靠着这副地图走,我们应该像一个勇者到处征战吧,如果你不肯脚踏实地滴认真考虑好每一个可能那么我们就会出现各种bug。或许我们永远不能保证每一处都能考虑到,就像我们都不完美,但是一旦我们拥有这种意识那么就能越来越接近完美。

  “程序路径”的坎是一个磨练我们直觉,考验我们成熟的慢慢长征之路。

  细节决定了很多事情,以前我写代码的时候,其实是很随意的,起码我并没有在意if判断语句里面的先后顺序能够带来多大的影响。而我的同事们显然都很注意这一点,经常跟我提及,我开始并不在意。他们说如果需要做出判断那么就把最简单的判断放在if的左边复杂的语句放在最后,这样代码运行的时候就能够提高效率。而我心高气傲觉得现在都是什么时代了不就是一个if而已,cpu判断起来还不是杠杠滴,直到有一次。我写的一个判断重载了我写的按钮类我需要接受做出一个判断:是不是指定的按钮而且处于编辑状态,同时按钮的上级窗口的消息是一个系统的回调,用来实现滑动删除。我惊讶的发现,我重载了按钮的函数之后,由于判断的时间过长,导致系统的滑动删除手势判断出现问题,两者冲突。这个时候我突然想起同事给我说的,于是将是否处于编辑状态的判断放在前面果不其然就没有影响到系统的消息,因为前者是bool类型的判断非常简单,而后者是按钮校验是一个复杂的对象判断。

  我有些小吃惊,仅仅是一个if就能带来这样的差别,或许像我以前那种“随意”的代码可能会浪费不少效率吧。谁不想写出一个像facebookpaper一样高效优美的应用,也许就是我们的“随意”把一个优秀的应用扼杀在了摇篮。回顾以往,生活中太多的随意造就了太多的平凡。

  至我们不平凡的梦想 希望我们都能成长起来 能够用心来实现梦想   

原文地址:https://www.cnblogs.com/XCoderLiu/p/4190903.html