聊聊工作中,如何提升自己的编程能力?

6,987 阅读6分钟

本文正在参加「金石计划 . 瓜分6万现金大奖」

在工作中,我们大部分的时间都是在阅读代码,阅读别人的代码也是我们工作中的一部分,真正花在写代码上的时间其实并不多。

我们应该都有这样的体会,那就是刚入职一家新公司,需要维护公司的一些项目代码,这个时候相信有的小伙伴们就很痛苦了,因为每个人写代码的风格和编码水平都是不一样的,好的代码更容易理解和易读。

工作中,能很快熟悉别人的代码,可以提升我们工作的效率,那么怎样才能提高代码质量以及可读性呢?

代码评审

为什么要进行代码评审?

1、提高质量

2、及早发现潜在缺陷与 BUG,降低事故成本。

3、促进团队内部知识共享,提高团队整体水平

4、评审过程对于评审人员来说,也是一种思路重构的过程。帮助更多的人理解系统。

不知道你们的公司有没有代码评审环节,我现在的公司是没有这个环节,其实我觉得代码评审还是非常有必要的,自己的代码被别人评审的时候,我们要保持一颗虚心的态度,认真倾听他人对自己代码的一些建议,虚心请教,这样我们会更容易突破自己的瓶颈,编码的质量会更上一个台阶。

每天抽出一个小时,团队里每个人都对其他人的代码进行评审也是非常好的,不仅可以找到各自身上写代码的缺陷和毛病,还可以学习别人写代码的优点。毕竟评审过程对于评审人员来说,也是一种思路重构的过程。

持续学习能力

终身学习对程序员也非常重要,这个行业新技术日新月异,曾经C++还风靡全球,今天就换Java横扫千军,Python、node.js、Go这些新兴的语言也层出不穷。这意味着程序员要不断学习新东西,很难一招鲜吃遍天。

面对如此多的技术,我认为最重要的还是要牢固计算机体系基础知识,这个是编程的内功心法,如果不扎实一定很难走远。计算机体系基础知识包括算法和数据结构、操作系统、计算机网络、编译原理、计算机组成原理、数据库等等。

我之前写过一篇关于计算机基础知识的文章,计算机基础知识对程序员来说有多重要?感兴趣的小伙伴可以看看,希望对你们有点帮助。

良好的编程习惯

其实在工作中,看别人的代码大概就知道他的编码水平。养成良好的编程习惯,对你无论是工作还是技术发展本身都有极大的帮助,这能提高你代码的可读性,可扩展性和整体质量,也能提高你同事的工作效率。

代码注释

代码在任何地方都没有注释。没有函数的功能注释,没有类的使用概述,没有对算法的解释等等。

即使是写的最好的代码也不如注释更容易被理解。在写注释的时候,要记住你的目的是为解释代码块为什么存在,而不是解释代码块在做什么。注释能帮助你更好的理解自己和他人的代码,减少工作量,所以不要忽视他们。

避免深度嵌套

深度嵌套的代码并不总是很糟糕,但可能会产生问题,因为它很难理解,如果你发现自己正在编写一个双重,三重甚至四重for循环,那么代码将可能试图在超出自身的范围外查找数据。那么你应该提供一种方法,使之可以通过包含该数据的对象或模块函数调用来请求数据。

拒绝长函数

顾名思义,长函数是指函数太长了。虽然没有一个特定的数字表示多少行代码对于一个函数来说“太长”,但当你看到这个函数时,你就会知道它是不是太长。一个长函数意味着包含了太多的功能实现。一般情况下长函数应该被分解成许多子函数,其中每个子函数被设计为处理单个任务或问题。理想情况下,原始的长函数将变成一个子函数调用列表,从而使代码更清晰,更易于阅读。

重视自测

交付代码之前反复自测,这样能节省团队时间,也能减少线上bug。

文档编写

Java程序员不仅要掌握一定的技术能力,还需要具有一定的文档编写能力。良好的文档能力能帮助我们更好地进行开发。一般来说,软件项目的发展需要经过需求调研,概要设计,详细设计等一系列的步骤,这些都是编码前的准备工作,特别是大项目会把大部分时间都花在文档整理上。

重构你的代码

重构能改善软件设计。

重构使软件更易理解。

重构有助于找到Bug。

重构有助于提高编程速度。

强烈推荐参阅 代码整洁之道 这本书,通过结合这本书的理论和技巧,在写代码的过程中不断重构,优化,你的代码质量就会逐步提高。

学会思考

工作中,总是有很多新的需求,遇到新的需求,不要急于上手写代码。

编码之前需要思考以下几点:

  1. 明确需求,我要做什么?
  2. 分析思路,我要怎么做?
  3. 确定步骤,每一个思路部分用到哪些语句、方法和对象。
  4. 代码实现。

多接触开源项目

GitHub是全球最大的开源社区,里面充斥着形形色色的大佬,如果你身边没有高级工程师来带你提升,那这个社区绝对是最佳的选择,阅读别人的代码,学习代码风格。

后记

其实,作为一名程序员,我们都希望能写出高质量的代码,我自己也在朝这个方向努力。

既然选择了做IT,就要明白,程序员从来不适合语言上的巨人,行动上的小人。只有真正地付出实践,从问题中复盘经验,才能使自己的编程水平不断提高。