程序员的降龙十八掌,一部电脑、一个键盘,笑傲江湖

程序员写代码需要精益求精,具备工匠精神(反复思考,打磨)。汲取百家之长,各种精华,融会贯通,才能独创黯然销魂掌。

写代码可不是伸手就来的,每个开发人员都有自己的理解。就像武学界的武功一样,讲究招招式式,每门功夫都需要一个名字,想要编写出优质的代码,首先要学会以下十八招式:

第一招:养成一个好习惯

一个良好习惯的养成对你们以后的工作非常重要,当然它需要你从一开始就去培养,并且持之以恒,坚持不懈。而我们下面讲的很多内容,或者说绝大部分内容都可以算做这个好习惯中的一部分。

第二招:规范你的代码

没有规矩,不成方圆。代码遵循统一的格式规范,首先便于自己日后维护,其次便于移交他人。自己读起来清晰明朗,他人看起来整洁规范,这对一个项目团队,一个公司来说尤为重要。检查的方式也很简单,如果整个项目的代码最后看起来是同一个人的风格,那么证明你遵循了规范

第三招:合理注释你的代码

很多人写代码不喜欢注释,或者觉得项目时间紧,忙于实现了交差,或者觉得没有必要,反正可以看懂。另外一部分人喜欢程序写完后再来注释,有点补交作业的概念。

只有少部分人会在代码开始之前,进行思路整理,写出代码逻辑各步骤,各分支的注释,然后在注释下面填充实现代码。

显然,第三种才是最正确的做法,正所谓:兵马未动,粮草先行。当然也是最难的,但是你只要习惯了,它也就soso了。一份合格的代码的注释率一般在30%以上

第四招:不写重复代码

重复代码绝对是垃圾代码的第一特征,并且是最大的特征。Copy的时候会很爽,但往往有乐极生悲的时候,一旦出错,意味着加倍的工作量和持续的不可控。

不写重复代码的最高目标是不写两行一摸一样的代码当然这仅存在理论的可能,我们仅需要做到不写两份功能一致或相似的代码即可

第五招:不写过多参数方法

当你的方法参数超过5个时,你就要考虑你这个方法设计的是否合理了。真的需要这么多参数吗?是否可以精简?如果实在必须,那么你也是到了必须改变的时候,封装对象来进行传递吧,这样不仅减少了参数个数,也为以后提供了无穷扩展的可能。同时使用者也不必去硬记参数的顺序。

第六招:不做脱裤子放屁的事

脱裤子放屁是一件无意义的事,我想不会有人去做这样的事吧。编码的时候,也是如此,没有意义的代码就不需要写了。

开发时,常常会通过copy来实现一些功能,但是copy过来后,会引入很多使用不到的东西,这些代码搁置在那边完全就是无意义的,可以删除

另外有些人经常会不经意的犯一些这样的错误:写if else if else 判断语句的时候,条件判断会出现重复,分支里面的代码可能永远不会执行等,这些其实都是我们在码之前没有理清思路导致的,也就是我们前面所说代码注释的重要性了。

过多的考虑将来的可能性:有的时候我们考虑代码的可扩展性时,会进入一个误区,也就是过犹不及的概念。带入了非常多当前并没有出现的可能性,这些内容可能永远不会用到,完全没必要在当前就写进去

第七招:限制好你的阀门

开闸放水,关门放狗,讲究的是一个入和出,写代码也一样。

小的来说,入参的考虑需要够讲究,够精细;出参的位置需要限制到方法的尾部。很多人喜欢在方法的中间用return来终止方法的运行。比如做一些check的时候,不满足就return,这不是一个好的做法,虽然执行上面并没有什么问题,但保证统一出口更重要。比如你需要记录执行日志,或者在方法出口时需要做一些额外的事情时,那么统一出口会很方便,否则你需要在每个return处去处理。

大的来说,我们开放给外部使用的接口,是否被限制在了一个层面上。这个时候用代理模式、门面模式会是一个比较好的做法。过多的特性开放给外部时,有时候反而会让人不易掌握。用代理做一层封装,再统一门面后,会使得代码出入口更可控。

第八招:正确摆放你的代码

有的人说:啊哈,我学了core Java,我会了所有的基础,我可以去代码的世界自由遨游了。这话不能说它错,但如果你仅仅考虑就实现功能去做事的话,那就跟垒砖是一样的了。怪不得我们程序员常常会等于泥水匠。其实你除了要实现功能外,你还要考虑的事情非常多,正确摆放你的代码位置就很重要。检查你的方法,看里面的实现逻辑是否应该放在这个名称的方法中;检查你的类,看里面的方法是否应该放在当前类中;检查你的工程,看里面的类是否应该放在这个工程里面。一层层检查,你该发现你的代码有多少问题了吧。这有时候就是人的过程性思维导致的,从大的方面来讲是我们抽象的不够。

第九招:多为你的使用者考虑

做任何事情如果没有服务的对象,也就失去了它本身的意义,同样的编码也是如此。或者你是做框架做产品的,那么你面对的就是普通开发人员,或者你是做项目的,那么你面对的就是我们通常意义上的客户。不管你面对的是什么对象,一个好的出发点非常重要:多为你的使用者考虑,也就说我们常说的,客户至上

第十招:加强你的理解能力

十几年的语文学习,不知道对你如今的工作有多大影响。在我看来,最大的作用就是培养了我们的理解能力。理解能力对于开发人员来说非常重要

快速理解客户意思,能够保障你良好沟通进行,正确理解需求,能够保障你方向的正确性,同样的,优秀的理解能力能够使你轻易读懂他人代码

第十一招:设计模式

设计模式的出现,是为了解决一些通用问题的套路,它能使你的代码更加优美、高效。23种设计模式,更多的是一种概念思想。我们学的时候可以从简单易用,且常用的一些出发。比如工厂、单例,逐渐的我们可以尝试代理、适配器、合成、门面,最后我们可以运用一些较复杂的观察者等。为了可以更好的理解,当你学完全部的之后,你可以去学习下反设计模式,它会让你选取设计模式应用场景的时候更加的契合,合理。

第十二招:拆卸你的代码

评价一份代码的优劣,其中一个非常重要的指标就是:是否易于拆卸。简单来说,就是它的耦合性。这里的耦合分为内耦合和外耦合。我们一般注意到的是外耦合,即我们的代码与外部代码之间。其实内耦合在某些时候更加的重要:我们的代码内部之间的关系。比如你做了一个持久化服务工具,里面涵盖了3块内容:增删改查、脚本操作、数据定义。整个持久化服务不依赖于外部的任何内容,或者依赖的层面会切割到一条线上,那么代表你这份代码的外耦合控制的非常好。如果有个同事想用到一个数据定义的功能,但是它想在里面加入非常多的个性化,也就是说他仅仅想要1/3的内容,这个时候你的代码如果能够很好的拆卸出来,而不破坏其他部分的平衡,你的内耦合才算达标。

第十三招:检查工具帮你忙

码完代码后,用上一些简单的静态检查工具,比如checkstyle、fingbug等,可以很方便的检查出你代码中格式、以及一些隐藏的漏洞。另外可以做下单元测试,让你的代码更健壮

第十四招:温故而知新

每隔一段时间,多回过头去看看你之前写的代码,可以一周,一个月。简而言之,我们要对它充满感情,代码其实也是有生命力的。一份好的代码或许会存活很长时间,一年、两年、十年。但是一份糟粕估计很快就会被推翻重构。每次回顾你应该都可以找出你代码中的一些问题,这样逐渐的你们2人都在不断成长。

第十五招:学会站在巨人肩膀

有时候很多功能,度娘和google神器都可以帮你轻易的解决,所以完全没有必要自己绞尽脑汁,重起炉灶。因为已经有巨人助你攀登的更高了,为什么不享用呢。

第十六招:开始砍你的代码吧

当我们还在呼哧呼哧为了实现一些新功能编写大量代码的时候,很多大牛的做法却与你截然相反,他们在不停的砍削原有代码,有的时候他们可以依靠精简代码来实现新需求。砍代码的另一个叫法是重构

第十七招:一份详尽优美的指南

不仅要实干,还需要能够将你做的内容展示出来。作为一个编码的程序员,更多可能就要靠写了,这个写一般就是一份指南,说白了就是一份文档。大到整个系统的操作手册,小到功能模块的api。就像市场营销一样,你需要把你做的东西推荐出去,让大家意识到这个东西的价值,好处,才会有人来买单。

第十八招:无招胜有招

看过武状元苏乞儿的都知道,最后周星驰跌倒在地,观看降龙十八掌秘籍,风吹卷动,最终前面十七招融合就成了第十八掌:神龙摆尾。我们的编码也是如此,当你能够将所有东西都融会贯通后,你也就不需要去拘泥那么多的套路了,因为你本身已经习惯成自然,你的一举一动都已经是非常好的招式了

 

posted @ 2023-05-11 17:01  super超人  阅读(42)  评论(0编辑  收藏  举报