程序员代码进化指南
写代码虽然大多数时候是个体力活,但不可否认,也需要一点品位。
品味就仿佛是一段代码的点睛之笔,有品位的代码层次分明,逻辑清晰,看起来赏心悦目,让人不由得感叹背后码农的智慧和巧思,成为码农圈里"别人家的程序员",从此名垂青史。
提升代码品味也是一个"前人栽树后人乘凉"利国利民的好事情,当你出现了bug需要调整,或是离职转接工作,一段优秀的代码摆在眼前,手起刀落刷刷刷解决问题,微微一笑,深藏功与名。
可能有些童鞋会觉得代码质量很重要,但当后来写业务写多了,你会觉得如果连代码正确都做不到,又谈何代码质量。
最后你可能幡然醒悟了,这世上很难有bugfree 的代码,当出现bug的时候,好代码比烂代码会好改很多。
小渡今天就和大家讨论下什么是好代码,毕竟一个不知道什么样的代码是好代码的人是不可能如有神助写出好代码的,写代码可以搜索复制黏贴三板斧,写好代码却是必须刻意练习的。
要提升代码的品味首先要明确什么是好代码,敲黑板!!
代码的规范性:
虽然一百个人眼中有一百个哈姆雷特,每个人编程的方法都大相径庭,但是万变不离其宗的是必须要遵循代码的规范性,如为程序写注释、代码对齐……无论是函数名、变量名,都必须按照一定的规则起名,以便日后审核查找。
很多人觉得代码嘛,只要能顺利运行起来就可以,要求那么高是浪费时间,但是所有注释掉的代码块、未使用的变量和无法到达的的代码才是真的垃圾。他们就像在对读者说,"我不关心这段代码"。
这样的恶性循环一旦开始,日复一日,死代码最终会埋葬你的代码。这正是经典的破窗效应。所以必须要遵循规范,找出并干掉死代码。虽然不需要把精力主要放在这里,但一定要时时留意。
代码的对称性:
还有一条实践经验能给所有代码的可读性带来诗一般的润色那就是对称性。
这条来自KentBeck的《实现模式》一书,书中说到:代码中的对称性是说,同样的思想在任何地方都使用同样的实现。不过说起来容易做起来难。
对称性体现了编程的创造性。它是许多其他实践的基础:命名、结构、对象、模式等。不同语言之间、不同代码之间和不同团队之间对于对称性的定义都可能不一样。
因此,你需要花上许多年去追求对称性。但是,一旦开始在代码中使用对称性,就会迅速呈现纯粹的形式,代码的形状也会迅速变好。
逻辑清晰
编程的思路当然也重要。我们日常生活中,逻辑清晰的人三言两语就直击要害,逻辑混乱的人兜兜转转还是云里雾里。代码也一样。
有些糟糕的代码是糟糕在啰嗦,一个判断能搞定的事情它可能要变着法判断两三次。这种呢,就是本身思路不简洁,写出来的代码自然也简洁不了,只能努力提高自己的逻辑能力。
另外,程序员在写代码的时候需要考虑一点就是所谓的代码模块化,代码模块化可以帮助程序员更好的用两种方法来理解软件系统。
第一,模块化能够创造出一定层次的抽象感,在没有完全理解所有细节的情况下也能想象出系统的模型。比如,程序员正在构建一个商业系统,可能会考虑到信用卡处理模块,然后观察这个模块和其余代码有什么联系,根本不用考虑信用卡处理模块的所有详细内容。
第二,模块的详细说明,这个详细说明是不会和别的模块内容混淆的,就像每个卡只有一个卡号是一样的。
思维导图就是训练和培养逻辑一个很好的方法,写代码时边理顺逻辑遍绘制导图,不断修缮,主要考虑以下问题:传入的参数是什么涉及的表有哪些表为什么这么设计表之间的关系是咋样的中间件起到什么样的作用程序结束的标志是什么
磕磕碰碰,中间可能还有不懂,实在琢磨不透,问问有经验的人。
未雨绸缪
DefensiveCoding指一些可能会出错的情况,如变量的初始化等,没人能保证代码一点不出错,大神们能做到的是要考虑到出现错误情况下的处理策略。
测试时要多运行几个线程。有些程序在一个线城下运行是正常的,但是在多个线程并行运行时就会出现问题;而有些程序在一个CPU运行几个线程是正常的,但是在多个CPU下运行时就会出现问题,因为单CPU运行线程只是狭义的并行,多CPU一起运行程序,才是真正的并行运算。应该防患于未然,做好弥补的打算。
反复和优化
简单的实现业务需求,对一个优秀的程序员来说,这些远远不够。只能实现需求,你的可替代性就强,核心竞争力就弱。因为随便找个对语言熟悉的人,都可以完成你的任务。
所以程序员必须花精力思考如何实现自己的"不可替代性",在程序员这个行业,如果你把自身的优势定位在"能加班""敢拼命"上。随着年龄的增长,你就会发现工作越来越力不从心,甚至有被新人淘汰的风险。
技术行业还是靠技术说话,如果你能清楚地认识到这一点,你会发现:时间带给你的不应只是年龄,你拥有的经验和技术积累、在工作中习得的知识这些都是难以被取代的
最后还可以多看看官方或者大厂的StyleGuide,平常多注意空格换行缩进命名风格等等,装个优秀的格式化插件也好。
只有把以上的标准都做到最后才能来到升级打怪的最后一关,提升风格。
长得好看的人是有特权的,长得好看的代码自然也有。
提升风格是一个需要漫长的积累和摸索的过程,多吸收老师、前辈的经验,养成良好的编程习惯,明确清晰的代码逻辑,都是提升代码风格的必经之路。
更多前端学习资料及课程请添加微信duyi4299领取!
在季节的列车上,如果你要离开,请不要叫醒我在季节的列车上,如果你要离开,请不要叫醒我,让装睡的我一直等到终点,认为你一直不曾离开。这句话来自汪国真。不知道为什么读到这句话的时候,就莫名的特别感触,可能是因为在这个夏季我即将
总有光芒在路上愿你身后总有力量愿你成为自己的太阳愿你永驻时光爱上彼此的模样你眼中光芒依旧闪亮诉说着那些疯狂有梦想我来陪你收藏早上醒来,打开音乐,这首歌在我的耳边响起,一阵阵温暖,一阵阵暖意,一段
成熟的人,不与伴侣争得失你怎么看?相信这是一种走心的提问,但我更愿相信这是灵魂淬炼出的一种人性折射,每一个成熟的人,莫不是一个情商高顾遐视智商又聪明睿智之士,当然不会去做那种小器易盈自矜功伐的无德之辈,与伴侣争得失
夏天正是荷花盛开的季节很多朋友准备背起画板,去荷塘边写生了。无论是写生也好,创作也罢,首先我们需要掌握荷花及荷叶生长的基本规律。然后结合笔墨自身的特点,运用绘画技巧来加以表达。本篇我们以绘画口诀的形式把
日日思君不见君,共饮长江水我住长江头,君住长江尾。日日思君不见君,共饮长江水。此水几时休,此恨几时已。只愿君心似我心,定不负相思意。题记李之仪的这首卜算子可谓是写尽了古往今来,无数的相思之苦。曹雪芹在红楼梦
朝圣黄河之黄河壶口钢牙龙吟心剑合一没有过去黄河时心中只有黄泥浑水的想象朝圣你黄河壶口步入其中倾听你轰隆隆巨响之刚烈那不绝于耳的咆哮之怒吼心随着飞奔的车轮起伏颠簸不能掩饰我狂跳的心房无意间看到路边的崖如同铜墙
一个根本不在乎你的男人,才会有这4个表现,女人再喜欢也要放手人们总是很容易在感情这种事情上做傻事,特别是女人,总是很轻易就拿得起,却很难放得下。当你爱上一个根本不在乎你的人的时候,放手才是最好的选择。一个根本不在乎你的男人,才会有这四个表现
父亲,愿生生世世都能做您的女儿父亲节说出你的爱点了点击参与这个按钮,打开这个链接界面,我已经泪流满面了。我的父亲,已经离开我七年多了。今天是父亲节,本来是不想写什么的。因为这个痛已经被完全封闭起来,不再触碰了。
怎样忍受爱人的毛病婚恋手册有句话说得好,百人百心百脾气。尽管爱人是自己挑选的,尽管经过了恋爱阶段再走入婚姻的。但是,婚姻后的生活,却不尽人意。夫妻共同生活后,才发现婚姻生活与我们所想的大相径庭。婚姻
我到底是不是奇葩?聊一聊我的奇葩人生态度说奇葩是因为我的思想与周边的人格格不入。所以,有时候就不免孤独。有一种被这个社会抛弃的感觉。我的奇葩思想之一,是不爱看国产影视剧。什么三十而已,小舍得,小欢喜
中年婚外情之火烧死了谁短篇小说大赛没事儿搞个同学会,拆散一对是一对!这不是玩笑话,这是事实。2018年的一天,我突然接到一个陌生的电话。在问过我姓名后,自报家门,他是谁谁谁。我恍然大悟,三十年没有听过,