文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

有哪些技巧提升代码能力

2024-04-02 19:55

关注

本篇内容主要讲解“有哪些技巧提升代码能力”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些技巧提升代码能力”吧!

语言基础

很多人看到这里估计要吐槽了,这不是废话么,程序员写代码语言没学会还怎么写代码?

其实还真不是废话,不同的语言有不同的特性,甚至有不同的原理,如果没有对语言基础有比较扎实的掌握,很容易犯一些低级错误。

举个简单的例子好了,之前认识的一个实习生,有一次写了这么一段Python代码,大家不妨看看有什么问题。

def funcA(param):     if param is not None:      return funcB(param)     return None   def funcB(param):     pass

不知道有多少同学能够看出问题在哪里,有一些同学可能会觉得是is not None的判断不对,应该写成not is None。其实问题不在这里,is not  None才是标准判断的写法,只是这个问题当中的障眼法。真正的问题是在函数调用的部分,他把funcB写在了funcA的后面。

funcB写在后面有什么问题?

大家试一下就会知道,这样写Python解释器是会报错的,我们必须要把funcB写在funcA的前面。因为Python不是编译型语言是解释型语言,它是由解释器逐行执行的。所以它会先执行funcA再执行funcB,当它执行funcA的时候会发现funcB这个函数没有出现过,所以会抛出错误。

当时这位同学debug了半天也没有找到问题所在,甚至还一度以为是Python版本的问题。这其实不是他代码能力不行,而是对语言基础掌握不够扎实。

类似的例子非常多,因为每一门语言往往拥有大量自己的特性,如果我们对某一门的语言只是浅尝辄止,那么写出来的代码一定是非常不规范的。比如Java如果不知道抽象类,Python不知道可变参数、装饰器的话,很多时候写出来的代码看起来就是不舒服的,因为没有做到最简,会给人一种费了很大劲实现了一个很基础的功能的感觉。

所以语言基础也是代码能力的基础,大家不要看不起这个,觉得只要会基本的语法会写就可以了。其实这是大错特错的,一些特性和语法糖可能用得少,但是关键时候用起来是可以大大简化代码量以及增加代码可读性的。

代码规范

不知道大家有没有读过那些特别不规范的代码,我读过一些,真的是感觉眼睛被针扎了一样。

代码规范其实更多的不是能力,而是工程师自己的素养。素养高的工程师会自己主动了解当前这门语言的编码规范,绝不会怎么舒服怎么来。大家可以百度一下代码规范,每一门语言基本上都有自己的代码规范,而且这个规范是非常细致的,具体到变量名、类名、方法名、文件名、常量名怎么命名都有对应的规范。

不仅如此,还对一些特殊情况也做了限制,下面是我从Google的Java编码规范当中截取的一段,大家可以看下:

有哪些技巧提升代码能力

我们写出来的代码和这份规范越贴合,那么可读性也就越强,也就体现我们编码的素养越高。

代码规范其实并不仅仅包含编码的方面,同样还包含其他很多领域。比如数据库的连接池的使用,比如kafka的设置和使用,以及多线程的使用等等,都会有自己的规范。这些内容不仅是起到一个规范作用,当中的每一个点里面都是有对应的原理的,值得我们去深挖学习。

比如很多人都知道数据库需要用数据库连接池,那么请问为什么要用连接池呢?连接池的连接数又是怎么设置呢?其中的原理是什么呢?

看起来好像是面试题,但其中包含的就是我们对数据库连接底层的理解。我们弄懂了可能不仅在编码的时候用得到,也许在以后学习其他内容的时候也能串联起来。知识不是由许多点组成的,知识是一张网,需要把很多点串联起来。在我们串联之前,我们首先需要足够多的积累。

系统能力

系统能力是代码能力当中最高的要求,也是最贴合一个架构师能力的部分。

同样,我们来举个例子。比如你承接了团队当中的一个任务,开发一个新的系统。这个系统需要承接每秒100K请求的访问。这些请求的数据我们不是全部都要,需要做一定的抽样,并且还需要查询一些存储系统进行特征填充。最后把完整的数据存储下来。

现在这个任务交给了你,请问,这当中的性能瓶颈是什么?你该怎么设计这个系统当中的细节?

估计很多同学会把眼光放在100K这个数字上,觉得这个请求量非常大,可能系统能不能抗住是最大的风险点。但其实100K并不是重点,因为这些请求不需要返回,只是单纯的接收,100K并不是非常大。但是当中有许多隐藏的问题,比如说我们抽样怎么抽,是在线抽,还是先把所有请求存储起来一段时间之后再进行抽样?如果是存储起来再抽样,会不会内存扛不住?再比如我们会对存储系统发起的查询请求是什么量级?会不会影响存储系统?

实际上后来实践的过程果然发生了存储系统扛不住,导致抖动很厉害的情况。那这个问题发生了之后,我们又该怎么解决?

对这些问题的敏感、理解以及解决,需要的就是系统能力。也就是我们理解系统的能力,这当中涉及很多,需要我们有一定的操作系统的知识、分布式的知识,还需要对上下游的系统都有一定的了解。比如知道存储系统的性能不是很好,大批量的请求可能扛不住。这当中有一些是经验,更多的还是我们的基础能力。

提升之道

其实这三点看完,相信大家对于怎么提升应该都或多或少地有了一些自己的想法。

说穿了也没有什么大不了的,无非是三点,我们来做个简单的总结。

  1. 需要夯实语言基础,对于学习的语言不能浅尝辄止,需要有比较深刻的理解。当然这一点也不是说说而已,肯定需要针对性的做很多练习,也需要阅读其他大牛的代码进行学习。

  2. 需要遵守代码规范,不仅仅是变量的命名、一些特殊case的处理,还需要理解一些场景下的系统使用规范

  3. 需要充分理解系统,对每一个环节仔细推敲,需要积累一些操作系统、分布式的知识点和技能点。

到此,相信大家对“有哪些技巧提升代码能力”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯