2022-08-10 11:08

程序员的三条自我修养

听见冬天离开

职场

(554)

(0)

收藏

blog

在中国,写程序,不仅仅是一种兴趣,更多的时候,还是一种普通职业和谋生工具。

大公司有厉害的程序员,优秀的架构师,但大量的小公司也有很多普通的程序员。在我这些年的工作经历中,也越来越深刻的感受到普通程序员的影响和力量。对于高阶程序员,所谓八仙过海各有神通,各有各的成就,各有各的修养,但程序员在达成较高的水平之前,有一些“自我修养”,是最基础的,是普世的。

所以今天的话题面向的程序员,就是所有的正在写代码或者曾经写过代码的程序员,也包括广义上的程序员,例如项目经理、架构师等等。

做任何事都是有明确目的,那么先谈一谈,程序员提高自我修养是为了什么?

程序写的好有人崇拜,有妹子喜欢?还是到博客、论坛、社区发表文章进行分享获得成就?我想这是少数人的追求,也是更高的追求,在这之前小编认为,在中国,程序员提高自我修养的目的,是为了下面这些原因:

1、更好的融入工作,减少困难,增加成就

2、稳步的提升能力,提高收入,达成财务自由

3、站在更高的层面看待自己的学习和工作,树立更加适合的人生观价值观,家庭幸福,生活愉快

其实说的更通俗一点,就是用更加合理的方式和方法,赚取到更多的收入!

那么程序员具体要做到哪些修养行为呢?

1、遵从所在团队的代码规范

一个高效、成熟的团队,必定有一个属于自己的代码规范,这个规范是团队的宝贵的财富,它是整个团队从各种坑中爬起来后积累的经验教训。什么是规范,它是人们从无数经验中总结出来的规则,标准。而代码规范,指导团队成员如何以最短的时间写成最高效,可读性强的代码。试想,如果成员不遵从规范,你用驼峰命名,他用下划线,这对程序的可读,将造成多大的影响。

我想,应该没有一个人愿意去阅读一段,各种变量命名形式都能见得到,private,public方法随意排序,甚至常量类都散落在各个角落的代码吧。代码,一个作用是让机器阅读,另一个重要的作用是让人阅读。

2、遵从行业内通用的规范

在团队的代码规范未涉及到的,那请按照行业内的规范来编写代码。规范的一个好处是,可以明显减少学习和交流成本。在java中,当我们看到全大写的变量名时,我们就知道这是常量,而不需要去看注释,不需要去看代码逻辑。为什么这么迅速,因为行业里大家都习惯把常量用大写命名。但假如你用其他命名方式命名常量,比如team_nums命名常量,不仅不能让人迅速知道这是个常量,而且可能让人误会这是个变量,增加了团队成员学习和沟通成本,甚至可能误导他们。就见过一位仁兄,明明用的是工厂模式,偏偏按模版模式的命名方式来命名,问他,他说他知道这是工厂模式,但他觉得,更应该叫模版模式。。。我的天,,你这么任性,以后还能做朋友么?

举个例子,我们需要根据支付类型,来生产多个支付产品,于是,我们写了个工厂类,命名为FactoryPay。当其他人看到一个类叫FactoryPay,他们会猜测,这应该是个工厂类,负责生产各种支付产品的工厂,然后按照这个猜测去阅读代码,就能比较快速的理解整个类的作用。但是,假如我取名PowerPay,别人还不知道是啥,看了半天,才明白,这是个工厂的作用。这就明显增加了他人的学习成本和维护代码的成本。

不管你是新手还是老鸟,务必了解施行行业规范,切勿为了标新立异而违反规范。

3、变量、方法命名要能表达变量作用

在程序员这个圈子很久了,就发现,程序员这货,都喜欢这套,“这个接口干嘛用的,有文档么”,“自己看代码去”。很多时候都是一脸黑。

尽管程序员阅读别人代码技术都是一流,不管你是有没有注释,不管你是怎么循环嵌套,也不管你是怎么命名,他们都能耐心的,把代码分析个所以然来。但,对于程序员这个视时间宝贵如生命,分分钟都能创造几百万价值的群体来说,您行行好,给我们省点时间吧,把变量是干啥用的,说清楚呗,没准节省的这几分钟,多赚个几万,还能请大家出去嗨呢。

每每看到部门的某大神,用一个神一般的变量名“flag”,我就有吐血的冲动,他还这个flag一直雪藏,不用,只是传递到第n个方法才使用,顿时心力交瘁,我的天,这个flag都是是干嘛用的啊,后来才明白,是isPay的意思,用来标识用户是否支付成功了。当时一口老血吐屏幕上,心里狂吐槽,老兄,你命名个isPay会死么,我的脑细胞这么不值钱么。到后来看到,去魔法数字,用intNUM_7=7,而不是MAX_MEMBERS来表示最大成员、用xyz来命名变量名,各种只有作者,或者作者后来都忘了的独特命名方式,都见怪不怪了。更有甚者,一个变量命名为passed,作用居然是“未通过”的意思,当时就石化了,作者还真是用心良苦,这都要考我细心不细心。

一个好的变量名,能帮助阅读者了解变量的作用,也辅助了对整段代码的理解。

以上这三条程序员基本的修养,作为一名新时代的码农,是一定要具备的。


0条评论

点击登录参与评论