千家信息网

有哪些技巧提升代码能力

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容主要讲解"有哪些技巧提升代码能力",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"有哪些技巧提升代码能力"吧!语言基础很多人看到这里估计要吐槽了,这不
千家信息网最后更新 2024年11月24日有哪些技巧提升代码能力

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

语言基础

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

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

举个简单的例子好了,之前认识的一个实习生,有一次写了这么一段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. 需要充分理解系统,对每一个环节仔细推敲,需要积累一些操作系统、分布式的知识点和技能点。

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

代码 系统 能力 语言 问题 基础 存储 数据 学习 时候 知识 编码 语言基础 内容 同学 数据库 抽样 技巧 不同 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 两会网络安全保障预案 我的世界国际版领地服务器 互联网科技进步 知乎 关于网络安全法的答辩 沈阳的网络安全专业 公安网络安全主题活动 从事网络安全执法勤务工作 我的世界电脑服务器延迟高怎么办 直播服务器和硬盘怎么连接 计算机网络技术人员素质要求 朝阳区信息网络技术推广经验丰富 消防站网络安全大排查 数据库巡检脚本 个人想买个云服务器 软件开发外包值不值得 普陀区信息网络技术诚信为本 如何让两个数据库镜像 海南游爱网络技术有限公司官网 智能机器人网络技术专业 软件开发商 英文翻译 战队名称软件开发 mysql 服务器权限 软件开发团队大约几人 数据库求偶数的平均值 国家网络安全保护相关要求 公司定制软件开发选择 儿童客户端数据库密码忘记 广交会网络安全院士名单 华科网络安全学院宿舍在哪个校区 我的世界末影服务器
0