JAVA编程的智慧

编程总的来说是一门创造性的工作,如果你想做好它,那么努力和天赋缺一不可。但是这里的“智慧”却并不是特效药,它只能帮助你少走些弯路,找到正确的方向。

1、反复的推敲代码

总有人问我说怎么才能提升自己的编程水平?以我自己这么些年的例子来说,我觉得真想要提升的话,那肯定就是反复的去修改和推敲代码。

总有些人会炫耀自己写了多少万行的代码什么什么,仿佛代码的数量就决定了他的水平,但是我觉得,代码的数量只能是一个衡量你熟不熟练的一个标准,因为假如你总是匆匆忙忙的写代码而从来不去思考推敲,慢慢的你就会发现自己的代码会变得越来越平庸甚至是越来越糟糕,在这种意义上,其实他所谓的工作经验并不能和他的代码质量达成相应的正比。如果有五六年的工作经验,却从来不去提炼和反思自己的代码,那么我觉得那么他可能还不如一个只有一两年经验却喜欢反复的去推敲去反思的人。

如果有正在学java的程序员,可来我们的java技术学习扣qun哦:82466,5209里面免费送java的视频系统教程噢!小编也是一名从事了6年java开发的全栈工程师,花了近一个月整理了一份较适合18年学习的java干货,送给每一位java小伙伴,欢迎初学和进阶中的小伙伴。

我觉得看一个程序员的水平,不仅仅是看他写了多少的代码,而是看他删掉了多少的代码,他删掉的代码恰恰是他在学习成长的过程。不信你去问问那些好的程序员,他们删掉的代码一定程度上来说肯定比自己留下来的要多,这是一个学习所必须经历的过程。代码也不是一蹴而就的,也是需要灵感的,任何人都不可能一笔呵成的。就算再厉害的程序员,有时候也要经过一段的时间才能找到更加精炼简单的写法。就像有时候你提炼一段代码,感觉自己已经完全没办法去提炼了,然后放下它过两三个月再来看它,你会发现,哦,原来还是有很多可以改进和简化的地方的。

所以如果反复的提炼代码已经不再有新的进展,那么你暂时将它放下。过几个星期或者几个月在回头来看,也许就会有新的学习带来新的灵感。

2、写模块化的代码

有些人总是嚷嚷着要把代码模块化,但是他们的办法是什么呢?结果他们只是把代码分开了,放在不同的文件和目录中,还美名其曰这样看起来更舒服,寻找起来更加的简便快捷。

其实我觉得真正的模块化指的是逻辑意义上的而非指字面意思上的,一个所谓的模块他就像一个电路芯片,它有已经定义好的良好的输入和输出。函数就是一个非常好的模块化的方法,每一个函数都有明确的输入和输出,而且同一个文件里面可以包含多个函数,所以实际上你根本不需要把代码分开在多个文件或者目录里面,就同样可以完成代码的模块化。

而你如果想达到很好的模块化,那么你就需要做到一些关键:比如说避免写太过长的函数、尽量制造小的函数工具、单个函数只做单件事、避免使用全局变量和类成员来传递信息,尽可能的使用局部变量和参数。遵循这几点关键,那模块化就没必要执着于字面意思分割于不同的文件当中了。

3、写可读的代码

事实上,写太多的注释其实并不会让你的代码变的可读,反而会由于太多的注释掺杂其中使代码变的更加的难读,而且一旦代码发生改变,那么更改注释的工作也是非常大的负担,而我个人觉得真正优雅可读的代码其实并不需要太多的注释,因为程序语言更加的严谨和强大,所以如果你可以充分的利用他的表达能力,那么你其实完全可以用程序本身来表达它到底在干什么,而不是需要太多的注释。

在很少的时候,你可能会为了绕过其他的一些代码而让代码看起来非常的别扭,那么这个时候就需要注释来解决了,但是实际上最好是少出现这种情况。

所以如果你没有合理的运用程序语言的优势所在,那么你可能还是需要注释来帮助你读懂代码。所以我在这里告诉你一些要点,可以让你减少写注释的必要:

首先使用有意义的函数和变量名字。如果你的函数和变量的名字,能够实际的描述它们的逻辑,那么你就不需要写注释来解释它在干什么。因为这是多余的。其次局部变量应该尽量接近使用它的地方,这样不会让人造成误解,并且局部变量离使用的地方越近,那么越容易找到。不要重复去使用局部变量,这样虽然逻辑上没什么问题,但是如果重复使用会让代码变得不易理解和容易混淆。把复杂的表达式提取出来做成中间变量,这样步骤会变得更加的清晰和容易理解。

4、写简单的代码

程序语言都有些喜欢标新立异,提供一些这样那样的特性,然而有些特性其实并不是什么很好的东西。有些人盲目的追求代码的短小精简,或者说为了显示自己的头脑聪明,学习的快,所以喜欢用语言里的一些特殊结构去写过于难以理解的代码。然而并不是说语言它提供给你什么,你就要一定把它运用到你的代码中。实际上你只需要其中很小的一部分功能,就能写出相对优秀的代码。实际上,我自己内心当中有一套自己这么多年以后总结出来的最好的构造。所以我一般来说是不会去管语言提供了多么神奇的多么新奇的特性,我只会使用那种经过千锤百炼,我觉得很信赖的那一套。

5、写直观的代码

就是如果你有更加直观更加清晰的写法,那就使用它,即使它看起来更笨更长,但实际上它比你想象的要沉稳的多。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180914A1TFDS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券