【.com原创文章】《朋友,你还会修电脑吗?》这是小史在朋友圈里听到最多的一句话。每当听到这句话的时候,他也是很无奈。程序员一定要会修电脑吗?但是没办法,在朋友眼里,编程是一个非常高深的工作。也许你动动手指,就会发生一些事情,生活很精彩。好吧,我看过太多电影了。作为一个不会修电脑却努力学习如何修电脑的程序员,除了要有修电脑的本领外,还需要具备大多数程序员所共有的特点。例如:回家,无聊。也可能有独特的特点,喜欢和妻子一起逛街。..小石·Java开发认真简单介绍一下本期的主角小石童鞋,从事Java后台开发三年多,目前服务于一家创业公司,担任常驻开发人员。期间经历了kafka、大数据等领域的开发。作为程序员,每个人都应该每天为26个字母而奋斗,对编程应该有自己独到的见解。趁着这个机会,小石抛砖引玉,跟大家聊了聊关于代码的一些事情。1.SayNOtocopy/paste小石看过一篇文章《程序员的进步从每一天少写一点代码开始》,其中提到借助Google和互联网可以让你写出一行一行的代码。这句话让肖石想起了大学实习和求职面试时考官对他说过的一句话:“写代码没什么难的,不就是复制粘贴嘛。”听到这句话,他不由想起了同学对他说的话:“我整天在公司干的就是复制粘贴。”当时,小石不经意间产生了一个疑问,程序员的工作就这么简单、枯燥吗?带着这个疑问,他踏入了程序开发的大军。小石上班第一天,领导反复强调了一句话:“写代码不要复制粘贴”。对于刚参加工作的他来说,不太明白这句话的意思。那时候,他一心求的是工作效率,工作快点完成,让领导知道他的能力。这会导致命名不当、结构不佳的功能代码,以及后来浪费更多时间的返工。现在回想起来,他当时的行为是多么的幼稚。如果他只是复制粘贴,而没有试图去理解其背后的运行机制,那充其量也就意味着工作完成了。2、码农的追求——高质量代码“你的代码就像一堆飞天”。这句话相信大家在日常工作中或多或少都听过。曾经在网上看到一个帖子是这样说的:“我相信很多人认为自己的代码是最好的,而别人的代码因为看不懂所以很烂”。程序员毕竟有一颗工程师的心,所以到了一个新的站点,首先要做的就是推倒旧的,重新来过。是的,他们永远不会满足于简单的增量劳动。或许这种微妙的心理定位可以解释为什么程序员在进入新的项目组后宁愿扔掉旧代码重写也不愿修补。他们认为旧代码一团糟。好的代码就像一个好的笑话,不用解释也很容易理解;糟糕的代码就像古汉语,即使满是注释,也未必容易看懂;好的代码就像一本技术娴熟的作家写的书,通俗易懂,条理清晰;糟糕的代码就像刚学会写作的??人写的书。这是令人困惑和弄巧成拙的。那么,如何写出好的代码呢?小石曾经看过一篇文章,觉得解释的很好。它说:可读性——你写的代码不仅要让你自己看懂,还要让和你一起工作的开发人员在最短的时间内看懂。限时了解。(这一点尤其要注意)可维护性——让修改你的代码变得容易。简单——不要让你的代码看起来不必要的复杂。效率——让你的代码尽可能快地运行。清晰——类的命令和方法的命名要清楚地表达具体动作的含义。3.代码优化是必要的代码优化是一个非常重要的话题。有些人可能认为它没有用。一些小地方可以修改什么?对代码的运行效率会有什么影响?小石对这个问题深有体会。比如他写了一个函数,之前用到了redis排序。本着有轮子不造轮子的原则,我毅然使用了redis提供的排序方式。写完之后还挺开心的,对redis的了解也多了一些。然而,事与愿违。当代码放到生产环境跑起来的时候,他彻底惊呆了。在海量数据的洗礼下,他根本跑不动了。当晚,小石一行一行地敲日志分析慢的原因,最终定位到了redis排序(具体代码细节就不细说了),然后写了一个算法来代替redis排序。关于代码优化,小石做了很多笔记,比如:1、尽量指定类的final修饰符。无法派生带有final修饰符的类。2.尽可能重复使用对象。尤其是在String对象的使用上,出现字符串拼接的时候应该改用StringBuffer。3.尽量使用局部变量。调用方法时传递的参数和调用时创建的临时变量都存储在栈(Stack)中,速度更快。其他变量,如静态变量、实例变量等,都是在堆(Heap)中创建的,比较慢。此外,根据具体的编译器/JVM,局部变量可能会被进一步优化。4、在Java+ORACLE的应用系统开发中,Java嵌入的SQL语句尽量用大写字母书写,以减轻ORACLE解析器的分析负担。5、尽量减少变量的重复计算。例如:for(inti=0;i
