网易首页 > 网易号 > 正文 申请入驻

十年编程经验总结,三点技巧帮你提升代码能力!

0
分享至

作者:梁唐 来源: TechFlow

大家好,今天和大家聊一个老生常谈的的话题,作为程序员,我们怎么提升我们的代码能力?

在回答这个问题之前,我们需要先给代码能力下一个定义,搞清楚究竟什么是代码能力。只有找对了路才方便发力,很多同学对这个问题其实是不够清楚的。往往会觉得代码能力就是算法能力,就是去刷LeetCode或者是算法题。还有些同学觉得代码能力就是要多刷项目,项目做得多了,代码能力自然就上来了。

其实这两种看法我个人感觉都是有一点误区的,下面简单聊聊我自己的看法,希望能够帮助到大家。

语言基础

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

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

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

从这三点总结来看,好像没什么大不了的,每个人都能很轻易做到的样子。但实际情况告诉我们,往往越是简单的道理,越是难以做到,希望大家不要轻视了它们。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
薪资专家:预计凯莱布-马丁下份合同年薪可达全额中产特例水平

薪资专家:预计凯莱布-马丁下份合同年薪可达全额中产特例水平

直播吧
2024-04-26 05:36:11
今年法网总奖金近5350万欧元,男女单打冠军各获得240万欧元

今年法网总奖金近5350万欧元,男女单打冠军各获得240万欧元

直播吧
2024-04-26 10:46:12
北京一股民267买的st左江已经跌到了7元,他问一股评能不能回本?

北京一股民267买的st左江已经跌到了7元,他问一股评能不能回本?

资本百科
2024-04-26 09:47:29
男子报警称妻子与异性爬山迷路,评论区亮了

男子报警称妻子与异性爬山迷路,评论区亮了

金陵隐士
2024-04-25 16:49:19
王毅同布林肯举行会谈

王毅同布林肯举行会谈

BRTV新闻
2024-04-26 09:34:34
卢卡申科:美国错误的施压将俄罗斯和中国联合起来

卢卡申科:美国错误的施压将俄罗斯和中国联合起来

俄罗斯卫星通讯社
2024-04-25 15:33:41
1.4亿欧!拜仁新帅提出条件,两大中场巨星将至,高层支持

1.4亿欧!拜仁新帅提出条件,两大中场巨星将至,高层支持

祥谈体育
2024-04-26 11:11:13
明日快船V独行侠G3 莱昂纳德因右膝炎症出战成疑

明日快船V独行侠G3 莱昂纳德因右膝炎症出战成疑

直播吧
2024-04-26 06:40:11
访华第一站,中方给布林肯上了一课,不到12小时,美方发起制裁

访华第一站,中方给布林肯上了一课,不到12小时,美方发起制裁

说天说地说实事
2024-04-25 17:47:30
贡品||童颜水蛇腰大长腿!10年前她在互联网杀疯了

贡品||童颜水蛇腰大长腿!10年前她在互联网杀疯了

懂球娘娘
2024-03-19 11:45:50
CBA最新消息!萨林杰正式离队,周鹏确定续约,许梦君合同到期

CBA最新消息!萨林杰正式离队,周鹏确定续约,许梦君合同到期

体坛瞎白话
2024-04-25 16:14:07
布莱顿0-4曼城,赛后评分出炉,曼城队47号球员得分排名第一

布莱顿0-4曼城,赛后评分出炉,曼城队47号球员得分排名第一

侧身凌空斩
2024-04-26 05:08:44
印度最真实的样子有多离谱?网友:再让我去印度出差,我就辞职

印度最真实的样子有多离谱?网友:再让我去印度出差,我就辞职

大宗看萌宠
2024-04-25 14:02:23
耻辱出局!詹姆斯铁血两分!戈登狂轰29+15+3,浓眉对飙约基奇!

耻辱出局!詹姆斯铁血两分!戈登狂轰29+15+3,浓眉对飙约基奇!

Tracy的篮球博物馆
2024-04-26 12:51:40
住家女保姆突然问男雇主:先生,你多久没有拥抱过女人了?

住家女保姆突然问男雇主:先生,你多久没有拥抱过女人了?

石辰搞笑日常
2024-04-26 01:55:22
两门相对,必有一败?门对门到底该怎么办

两门相对,必有一败?门对门到底该怎么办

为什么有冬天夏天
2024-03-19 21:09:52
24岁小伙约45岁大妈开房,偷拍整个过程,大妈:一辈子都会有阴影

24岁小伙约45岁大妈开房,偷拍整个过程,大妈:一辈子都会有阴影

青史录
2023-09-19 19:03:40
女人下面的毛发“茂盛”,就会越“渴望”?有多少人不知道答案?

女人下面的毛发“茂盛”,就会越“渴望”?有多少人不知道答案?

奇妙的本草
2024-04-25 20:00:03
“给我的时间太短了!”前京东副总裁、渐冻人蔡磊病情加重

“给我的时间太短了!”前京东副总裁、渐冻人蔡磊病情加重

齐鲁壹点
2024-04-24 07:54:43
美远程导弹系统秘密运抵乌克兰,可覆盖克里米亚等地军事目标

美远程导弹系统秘密运抵乌克兰,可覆盖克里米亚等地军事目标

澎湃新闻
2024-04-25 12:38:27
2024-04-26 13:18:44
Nodejs开发
Nodejs开发
分享只有程序员懂的干货
648文章数 824关注度
往期回顾 全部

科技要闻

中国车企“五常”激战北京车展

头条要闻

男子帮被打女子报警被砍成重伤 打人者最高被判3年半

头条要闻

男子帮被打女子报警被砍成重伤 打人者最高被判3年半

体育要闻

库里当选最佳关键球员 10项数据联盟第一

娱乐要闻

金靖回应不官宣恋情结婚的原因

财经要闻

24年后再产纯净水 农夫山泉为何要打自己脸

汽车要闻

2024北京车展 比亚迪的自驱力让对手紧追猛赶

态度原创

家居
健康
手机
教育
时尚

家居要闻

光影之间 空间暖意打造生活律动

这2种水果可降低高血压死亡风险

手机要闻

OPPO Reno12标准版部分参数曝光 轻薄设计+等深微曲屏

教育要闻

教育观察:就业这么好,就是招不满的大学专业!

女人再美不如会穿!参考这些搭配解析更有魅力,美到老很简单

无障碍浏览 进入关怀版