首页 程序人生 对码农而言什么样的代码才能叫做好代码?

对码农而言什么样的代码才能叫做好代码?

好的代码,就像是好的笑话——无需解释就能让别人明白。如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。

好的代码,就像是一辆配备了优秀音响和杯架的汽车,这辆车在行驶到最高速度的时候,你听不到噪音,也不用担心水会洒出来。在它出现故障的时候,任何一名修理工都可以使用最常见的工具,在最短的时间里轻松将其修好。

而坏的代码,就像是一辆向你承诺最高速度可以达到200MPH,但是音响只能播放老式的磁带,而且杯架还不稳的车。你在调整反光镜角度的时候,汽车都会突然出现故障,而且一般的修理工还修不了这辆车,必须要找专家,让专家在生产线上使用专业的工具来修理。

好代码像是一本写作技巧高超的人所写的书

1.容易理解

2.分章明确,每一章都有清晰的主旨

而坏的代码像是刚刚学会写字的人所写的书

1.各个章节之间纷乱复杂,每一章都没有明确的主旨

2.连篇累牍的重复一句话,而且毫无缘由

3.作者在一开始设定了一些规则,但是在后面的内容中却自己不断的违反这些规则

4.突然间书里出现了一个吸血鬼,而且还能在白天出来吸血。

要想写出好的代码,你一定要牢记以下内容

可读性——不只是你,还有你身边与你合作的其他开发者

可维护性——让你的代码在修改的时候很简单

简洁性——不要让你的代码看上去毫无必要的复杂

效率性——尽可能的让你的代码获得最快的运行速度

明确性——如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。在为方法和属性命名的时候,做到尽可能的合理。把长的代码进行拆分。不要复制/粘贴代码块。

如果你的同事不能轻松的看懂你写的代码,那么你的代码就不够好。

代码质量测试

1.找一个从来没读过你的代码的开发者,让他看你的代码,并且让他试着说出每一个模块的作用。

2.如果你经常需要向他进行解释,那么说明你的代码不够好。解释的次数越多,代码的质量就越低。

3.如果你只是静静的坐在一边,他无需问你任何问题,那说明你的代码质量很高。

当你在写代码的时候,一些信号可以证明你写的代码质量不错:

  • 代码写的很聪明,但是又不会过分的聪明
  • 无论在速度上,还是可读性上,你都使用了最佳的算法
  • 类、变量和函数都得到了正确的命名,让人看一眼就能理解
  • 休息了一个周末之后,你继续写代码,发现自己可以立刻继续之前的工作
  • 那些需要重复使用的东西总是可用
  • 你所使用的方法都很短,最理想的情况下要少于50行,最多不超过100行而且能够完美的执行单个任务
  • 在调用方法的时候,你有着足够的信息,无需在代码堆中苦苦寻找
  • 能够很轻松的在此前的代码中进行功能添加和修改
  • try/catch块的体量尽可能的小
  • 毫不费力的就可以写出单元测试

好代码都是模块化的

假设你的项目中有三个不同的层——内层、中层和外层。你的内容不应该从中层和外层那里导入任何东西。中层不应该从外层导入任何东西 ,这样做的好处是,你可以对代码的内层进行独立测试。

“好的代码本身就是最好的说明文档。” — Steve McConnell

站心网

好的代码,就像是好的笑话——无需解释就能让别人明白。如果你的代码能够做到不解自明,在大多数时候,你根..

为您推荐

代码照进现实:对公司管理策略的技术性解构

上学的时候觉得计算机专业的一些理论晦涩难懂,跟现实世界的关联太少,每当遇到一些精妙的设计时都会发出一种感叹:究竟是什么脑袋才能想出这么有意思的东西。一晃工作十年,阅历渐丰,隐约发现其实社会中的一些现象..

编写优秀 CSS 代码的 8 个策略

编写基本的CSS和HTML是我们作为Web开发人员学习的首要事情之一。然而,我遇到的很多应用程序显然没有人花时间真正考虑前端开发的长久性和可维护性。我认为这主要是因为许多开发人员对组织CSS / HTML和JavaScript的策..

天天写业务代码,如何成为技术大牛?

不管是开发、测试、运维,每个技术人员心理多多少少都有一个成为技术大牛的梦,毕竟"梦想总是要有的,万一实现了呢"!正是对技术梦的追求,促使我们不断地努力和提升自己。然而"梦想是美好的,现实却是残酷的",很多..

记我经历的一次公司破产经历,一行代码害死一家公司

前言这是一篇亲身经历的真实记录,事情发生在2010年。狗血剧情一再上演,使我的程序员生涯变得跌宕起伏,也从中学到了很多。在写这篇文章之前,我还专门去查了这家公司的资料。有如下事实:1.官网已经打不开了。2.天..

如何处理前任程序员留下的代码

作为软件工程师不可避免会遇到的一个场景是:我们在改变或添加一个功能到不是我们创建的、我们不熟悉的、与我们负责的系统部分无关的代码中时,会遇到麻烦。虽然这可能会是一个繁琐而艰巨的任务,但是由于使用其他开..

当一个程序员写不出代码了,该怎么办?

你已经对着电脑n个小时了。不知道该写什么代码,或者一种摔键盘的冲动正在你的胸中酝酿。咖啡一杯接着一杯。不敢再喝了,因为搞不好要有副作用了,心跳加速,身体不由自主地颤抖,出冷汗,但还是无法产出任何代码。..

ASP.NET MVC最常用的设计模式代码示例

ASP.NET MVC 是一个基于分层架构的框架,其核心架构本身已经实现了 MVC 模式(Model-View-Controller)。除了 MVC 模式,开发者在使用 ASP.NET MVC 开发应用时,通常会结合其他设计模式以提高代码的可维护性、可扩展..

10款.NET开发中推荐的代码分析和质量工具

以下是10款.NET开发中常用的代码分析和质量工具列表,以及它们的主要功能和使用场景:1. SonarQube简介:一个流行的开源静态代码分析平台,用于检测代码中的漏洞、错误、技术债务等问题。主要功能:支持代码质量监测..

.NET C# EntityFramework(EF)连接SQLite代码示例

在.NET C#中使用Entity Framework(EF)连接SQLite数据库是一种常见的做法,可以有效地管理和操作数据。以下是一个简单的示例代码,展示了如何使用EF Core连接到SQLite数据库并执行基本的CRUD操作。首先,确保你已经..

设计模式之高质量代码

0,什么是高质量代码我觉得回答这个问题,应该从两个方面考虑。从业务角度考虑。首先,在公司开发一款软件,应该是业务在驱动。所以,从这个角度来说,代码第一个应该满足的是业务需求,如果连最基本的业务需求都满..

C#发送邮件代码简洁示例(附源码下载)

C#发送邮件,主要使用的是System.Net.Mail命名空间下的方法实现,方法很简单,短短十几行代码即可完成发送,具体代码如下。 try { MailMessage myMail = new MailMessage(); myMail.From = new MailAddress..

AutoMapper.AutoMapperMappingException”类型的异常在 AutoMapper.dll 中发生,但未在用户代码中进行处理

今天修改别人的代码抛出了这样的异常: AutoMapper.AutoMapperMappingException”类型的异常在 AutoMapper.dll 中发生,但未在用户代码中进行处理。进行了调试,往下走的时候直接报错了,百度之~中文网站上没..

c#无损压缩图片代码,可设置压缩质量

之前写过一篇文章《使用htmlagilitypack+xpath抓取网页内容示例》,提到使用htmlagilitypack抓取网页信息。想做一个网络爬虫,但是想把网页上的图片也下载到本地,于是写了下载图片的功能。但是第三方网站上的图片大..

使用.NET SDK Betalgo调用OpenAI ChatGPT API 代码示例

首先准备工作是需要有OpenAI的帐号然后获取ApiKey。目前国内IP无法注册和登陆OpenAI。翻墙后注册需要手机验证,可以通过手机验证码平台注册,注册过程非常快,花费大概1元左右。注册方法请看:最新OpenAI ChatGPT注..

自研、好用、够快、稳定、代码可读性强的ORM

一、前言Fast Framework 基于NET6.0 封装的轻量级 ORM 框架 支持多种数据库 SqlServer Oracle MySql PostgreSql Sqlite优点: 体积小、可动态切换不同实现类库、原生支持微软特性、流畅API、使用简单、性能高、模型..

C# .net 代码混淆/加壳工具

C# .NET 代码混淆和加壳是用于保护你的代码,使其难以被反编译或逆向工程。以下是一些常用的 C# .NET 代码混淆和加壳工具:ConfuserEx:ConfuserEx 是一个强大的开源代码混淆工具,支持对 .NET 程序集进行混淆和保护..

免费Subversion(Svn)源代码托管服务

SVNSpot Subversion源代码托管服务 免费创建2个公共(开源)或私有项目 合作者人数无限制/支持目录权限 支持项目导出、导入,提交注释、编辑注释 http://code.svnspot.com/..

做一个编写可调试代码的程序员

所有的程序最好能够以某种形式的日志记录下来,这样能方便我们即时知道现在在做什么。而且一旦出现异常,其重要性就愈加明显了。我们之所以要把程序员分成三六九等,很大一个原因就是,一个伟大的程序员会去写日志..

程序员应该少写代码多思考

软件开发的一个最基本的事实是写代码,但是最大的误区之一就是把写代码当做工作。当我作为一个程序员第一次参加工作的时候,就犯了这样的错误。老实说,写代码真的是一件特有意思的事,它的强大功能,它的多种作用..

使用c#写一段点击鼠标人物移动的代码

以下是一个简单的示例,演示如何使用C#编写点击鼠标移动人物的基本代码。这只是一个基础示例,实际游戏中可能需要更复杂的逻辑和输入处理。using System;using System.Windows.Forms;namespace MouseClickMovement{p..

发表回复

返回顶部