写点什么

程序员如何快速开发高质量的代码?

作者:利志分享
  • 2022 年 4 月 23 日
  • 本文字数:1884 字

    阅读完需:约 6 分钟

程序员如何快速开发高质量的代码?

这篇文章不是广告软件,是笔者的经验总结,希望文章对大家有帮助。


程序员在企业中做开发,提高开发效率,并且开发高质量的代码是程序员的核心竞争力,到底程序员如何提高开发效率,并且提高高质量的代码呢?很多程序员同学会说,文档落实,逻辑思维清晰,技术基础好,这三样如果做得好,效率和高质量肯定都不会有什么问题。当然这种说法固然是没错的,但是我想说的是,文档落实具体怎么落实?逻辑思路清晰怎么能做到思路清晰?技术基础好是怎么一个好法呢?如果没有准确有效的方法,这种说法就很广泛,没有实际的说服力。我今天主要是针对于上面说的三种方法,阐述一下具体实践的方法。

如何做到文档落实?

我们程序员很多做需求都是根据产品的设计来做功能,但是也有不少公司做需求都是靠沟通来需求,尤其是刚开始创业的公司,老板的想法是一个一个变,可能早上刚确认的方案,下午又是一个想法。这个时候如果作为程序员,你需要让产品或者老板把做的东西形成文档,并且重点把每个产品的细节都写清楚,避免重复修改,重复开发,重复调整。​

如何逻辑思维清晰?

其实这个有两个层面的问题。第一个是需要程序员的实现逻辑是否清晰,程序员的思路是否和产品的思路一致。程序员的实现逻辑是否清晰这个其实也得让程序员把业务的功能转换成程序之后的思路整理出来,然后和另外的有经验的程序员对一下思路是否正确,如果两个都觉得没问题,这样程序实现的思路也就不会有太大问题了。另外一个是程序员需要把程序实现的思路和产品对好,让产品理解程序员的意思,程序员理解产品的意思,两者达到共通点,这样程序员的思路和产品思路应该也就问题不大了。


如何做到技术基础好?其实我这个文档重点是下面的这个,因为这个程序员最重要的实施,上面的两点比较看重经验,沟通能力,理解能力。技术基础则侧重自身的修养。


常用类库函数使用规则铭记于心。


常用类库函数使用规则时什么意思呢?我具体举个例子。


下面我们来看下 redis 的常用数据结构的使用。下面是操作 key 的一些代码


    rdb := redis.NewClient(&redis.Options{        Addr:     "127.0.0.1:6379",        Password: "test", // no password set        DB:       19,  // use default DB    })

t,err := rdb.Set("key", "value", 0).Result() if err != nil { panic(err) } fmt.Println(t, err)
t1,err := rdb.SetNX("key0", "value", 0).Result() if err != nil { panic(err) } fmt.Println(t1, err)
t2,err := rdb.HSet("key1", "value","xxx99999").Result() if err != nil { panic(err) } fmt.Println(t2, err)
复制代码


rdb.Set 的使用无论你设置什么,如果按照上面的代码写法,在不出现服务异常的情况,t 都会返回 OK,err 会返回 nil,rdb.SetNX 的使用,正常情况下第一次会 t1 会返回 true,如果 key 一直存在,则 t1 会返回 false。rdb.HSet 的使用,正常情况下第一次 t2 会返回 false,即使你更改 value 里面的值,t2 也是返回 false。


类似这种常用类库函数使用规则,如果我们对每个返回值和使用情况都牢记于心,则我们平常的开发,在思路清晰的情况下,写业务写功能提高 n 倍,因为我发现很多开发者,使用一个函数要查一下,使用另外一个函数要查一下,这样无疑效率会降低,为什么我们不能提前把这类的使用整理出来,在 redis 的使用中其实也就常用的 5 种结构,整理出来,了解每个函数的使用特征,开发效率能提升很多倍。当然我上面的是介绍 redis 的使用,像 mysql 其实也是一样的,增删查改的四种特征,还有事务的使用,如果都能整理出来,自己牢记,开发效率能大大的提升。

深入原理

对于工具的使用原理可能刚开始工作的同学都不太关注,但是到工作一段时间发现自己需要提升,则发现这个很重要。其实我想说,原理的理解对开发使用也至关重要,尤其是高质量的代码。


举个例子,go 的 select,我们之前有个同学其实本身对 select 的原理不太明白,把两个本来需要并发的逻辑用 select 去实现,造成效率大大降低。其实 select 需要是单线程操作的,主要是来监听 channel 的情况,并不是并发的业务时候用的。之前还有同学遇到 slice 扩容的问题,使用的时候遇到一些坑,当时全局变量没有拿到函数里面的值,引起了一些问题。关于原理的东西,以及一个东西的使用的坑需要深入理解,了解其原理,这样我们写代码会又快又好。


关于提高技术基础,其实我提到的主要是两个要点:常用函数的使用和深入工具的使用原理,能做到这两个点,是能大大提高快速开发高质量的代码。另外我建议做技术,有问题一定要去查问题的根源,查问题,解决问题,总结问题。做到这些,技术一般都不会太差。

发布于: 刚刚阅读数: 5
用户头像

利志分享

关注

专注架构,go,kafka,clickhouse,k8s 2019.03.05 加入

微信公众号:利志分享 或 talk_lizhi;个人小站:zengzhihai.com,分享技术,职场,人生感悟等。

评论

发布
暂无评论
程序员如何快速开发高质量的代码?_利志分享_InfoQ写作社区