专栏首页机器学习与系统《编程格调》--30条代码风格帮你更好撸代码

《编程格调》--30条代码风格帮你更好撸代码

前言

Kernighan在书籍的绪论中鲜明地提出了自己的观点:编写代码不是炫技,要确保代码的意图不会误解,过分聪明的程序会增加与原意发生偏离的风险。

这一观点奠定了全书的基调,即编写程序不是耍小聪明,而是让自己的程序简洁明了、可读性高。作者还警示,过分聪明的代码调试难度是写程序的两倍,如果你写程序的时候尽可能聪明,那么将来你将如何调试它?

表达

1.简单并直接地表达你要说的意思2.不要自己造所有的工具,使用标准库函数3.让机器干脏活:计算机是处理反复操作的工具,我们要对重复样式/代码引起警觉并寻找疏漏,程序员要学会让计算机处理重复,用函数调用代替重复的表达式4.选择不易混淆的变量名5.使用语言好的特性,避免使用不好的特性6.保守使用临时变量,太多混乱的临时变量会让程序的读者懵逼,并且可能会对一个开了优化的编译器造成阻碍

控制结构

1.用if-else强调两个操作只有一个被执行2.确保你的程序是自顶向下阅读的3.判断要尽可能挨着与之相关的操作4.不要止步于第一遍的代码草稿,尝试优化它

程序结构

1.将程序模块化,每个模块专注于做好一件事2.不要修补烂代码,重写它3.分块编写和测试大型程序

输入和输出

1.校验输入的合法性与合理性,保证输入不会违背程序的限制2.利用文件结束符或结束标志来终止输入3.让输入的数据易于校验4.使用含义明确的输入,指定默认值,将以上二者都输出

常见错误

1.确保所有变量在使用之前被初始化2.10.0乘以0.1不等于1.0,浮点数不是绝对精确的,和0.0相等判断要谨慎3.不要比较浮点数是否相等

效率

1.把程序改得简洁2.保持简单性,程序反而会更快

文档

1.计算机程序最好的文档是代码清晰的结构。如果代码格式很好,有合适的帮助记忆的标示符和标号,还有适量有启发性的注释,也是会很有帮助的。2.流程图和程序概述是次之的,计算机程序唯一可靠的文档是代码本身。原因很简单,当一段程序有多种写法时,其间的不同之处总是存在的。如果代码存在错误,优雅的流程图和详尽的注释都是没有用处的。程序员确切懂得程序的唯一途径是阅读代码。3.这并不是说程序员不要写文档。恰恰相反,在任何规模的项目中,对于每个程序应该做什么,程序怎样使用,程序与系统其他部分如何交互,以及程序基于何种原则。要维护好以上这些,具有可读性的文档是十分关键的。这些构成了阅读代码有用的向导。4.没有用处的是狭义的文档描述,即对程序所做事情逐行记流水账。任何文档,如果没有贡献新的信息,而仅仅是重复代码的事情,都是多余的。5.不要用注释复述代码做的事情,每个注释都要有实际意义。6.不要注释糟糕的代码,重写它7.程序的格式要有助于读者的理解8.不要过度注释

本文分享自微信公众号 - 机器学习与系统(aimlsystem),作者:陆道峰

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Coding 是门技术

    代码写久了,伴随肩疼头痛眼近视,于是乎也就成了名副其实的 code farmer(码农),作为如牛吃草挤奶般的码农,吃草(撸)挤奶(码)便是日常要事,接下来就聊...

    一猿小讲
  • 看了这么多代码,谈一谈代码风格!

    最近看了很多录友在leetcode-master上提交的代码,发现很多录友的代码其实并不规范,这一点平时在交流群和知识星球里也能看出来。

    代码随想录
  • 函数式编程 -> Lambda

      函数式编程,同面向对象编程、指令式编程一样,是一种软件编程范式,在多种编程语言中都有应用。百科词条中有很学术化的解释,但理解起来并不容易。不过,我们可以借助...

    用户1615728
  • 养良好C语言编程风格,编优质C语言代码,这才是C语言的开始

    个人c语言编程风格总结 总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的。首先声明,我下面提到的编程规范,是自己给自...

    企鹅号小编
  • Qt编写自定义控件19-图片背景时钟

    图片背景时钟控件,是全套控件(目前共145个)中唯一的几个贴图的控件,这个背景要是不贴图,会画到猝死,必须用美工做好的图贴图作为背景,此控件以前学C#的时候写过...

    feiyangqingyun
  • 请不要尝试简化这些代码

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。Kubernetes 简称 K8s,用「8」替...

    良月柒
  • 《手撸 Spring》PDF,全书18章260页,完稿&发版!

    是的,在写了部分关于 Spring核心源码 的面经内容后,我决定要去手撸一个Spring了。为啥这么干呢?因为所有我想写的内容,都希望它是以理科思维理解为目的方...

    小傅哥
  • 如何写出更具有Python风格的代码

    我们都喜欢 Python,因为它让编程和理解变的更为简单。但是一不小心,我们就会忽略规则,以非 Pythonic 方式编写一堆垃圾代码,从而浪费 Python ...

    somenzz
  • 小程序开发框架WePY和mpvue使用感受

    今天想和小伙伴聊聊小程序开发框架的问题。 种种原因,去年年末接触到了小程序,使用mpvue做了两个项目,也使用WePY做了一个项目,关于这两个框架的恩恩怨怨,我...

    江南一点雨
  • 厉害了,天刚一冷程序员就都换上了衬衫。。

    这才农历九月初,大秋天的,北京的天气就已经降温了。更搞笑的是,朋友圈、群里都在转发下面这张图片,相信大部分人已经看过了吧。

    纯洁的微笑
  • 厉害了,天刚一冷程序员就都换上了衬衫。。

    这才农历九月初,大秋天的,深圳的天气就已经降温了。更搞笑的是,朋友圈、群里都在转发下面这张图片,相信大部分人已经看过了吧。

    Java技术栈
  • PSR-各个框架遵循的统一编码规范现代PHPer的开发规范

    沈唁
  • python爬虫大战京东商城

    写到这里可以看到搜索首页的网址中keyword和wq都是你输入的词,如果你想要爬取更多的信息,可以将这两个词改成你想要搜索的词即可,直接将汉字写上,在请求的时候...

    爱撒谎的男孩
  • 我辛苦撸码写项目,竟不及你刷GitHub?

    行业内有个不成文的习俗,程序员都热衷于搞副业,这个可以理解,都是为了赚钱生活,只要合法,没人说什么。

    闰土大叔
  • 老鸟程序员才知道的40个小技巧

    ▲ 40条真言,希望对进阶中的程序朋友有所帮助。 1、重构是程序员的主力技能。 2、工作日志能提升脑容量。 3、先用profiler调查,才有脸谈优化。 4、注...

    企鹅号小编
  • 有的UE画不好PPT,好的测试却靠Python加薪

                     测试开发者的共同关注! 作者:jhouyang,腾讯资深后台开发工程师。 WeTest导读 想要升职加薪,强大的专业能力很...

    WeTest质量开放平台团队
  • 当前 GitHub 上排名前十的热门 Vue 项目

    Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的组件库,提供了配套设计资源,帮助你的网站快速成型。通过基础的 24 分栏,迅速简便地...

    疯狂的技术宅
  • 程序员必读的六本书

    作为一名程序员,日常的工作除了上班撸代码就是加班撸代码了。撸码其实不难,无非询问Google,StackOverflow,解决方法和demo一箩筐,可是撸的一手...

    技术小黑屋
  • 干货 | 关于数学规划求解器lp_solve 超全面超详细的教程

    Mixed Integer Linear Programming (MILP) solver lp_solve solves pure linear, (mix...

    用户1621951

扫码关注云+社区

领取腾讯云代金券