热门标签 | HotTags
当前位置:  开发笔记 > 开放平台 > 正文

如何使您的代码干净而美丽

这是快速前进并达到最后期限的唯一方式。罗伯特马丁(RobertMartin)在说时把它完美地钉了起来。“唯一有效的代码质量度量是What-The-F**

这是快速前进并达到最后期限的唯一方式。

罗伯特·马丁(Robert Martin)在说时把它完美地钉了起来。

“唯一有效的代码质量度量是What-The-F ** ks / Minute。”

让我进一步解释一下。

每当我进行代码审查时,我的头脑都会产生三种不同的情绪。

·What-the-F ** k( 令人厌恶 )— 不需要此代码。

·What-the-F ** k( 敬佩 )- 这个家伙很聪明

·What-the-F ** k( 激怒 )- 无法理解这种胡言乱语

那么,每当我们看到任何代码时,影响我们的第一件事是什么?

这是干净漂亮的代码。
编写干净漂亮的代码是GREAT软件工匠的标志。

学习这项伟大的工艺涉及两个部分: 知识和工作 。 知识会教给您在职业上需要变得更好的模式,原理,实践和启发式方法。 但是,通过不断的练习和努力,需要将这些知识打入您的手指,眼睛和肠道。

简而言之,学习编写干净的代码是一项艰巨的工作。 您必须为之汗水。 您必须练习,发现,失败和掌握,并一次又一次地重复这些步骤,直到正确为止。 没有比这更简单的方法或技巧了。

这里是您掌握精巧代码的技巧。

“名字里有什么”

肯德里克·拉马尔(Kendrick Lamar)在说时把它钉牢了。

“如果我要讲一个真实的故事,我将从我的名字开始

名称在软件中无处不在。 我们命名函数,类,参数,包以及其他名称。 我们命名源文件,目录以及其中的所有内容。 我们不断地命名,命名和命名,因此它成为我们干净代码引擎中最重要的障碍物。

您的名字应该显示意图。 选择好名字需要时间,但要节省很多钱。 因此,请小心使用您的名字,并在找到更好的名字时进行更改。 读取您的代码的每个人都会非常感谢您。

永远记住,任何变量,函数或类的名称都应回答三个大问题。 它为何存在,其作用和用途。

这不仅需要良好的描述能力,而且需要跨越国界的共同文化背景,没有人能比您自己更好地教您这一点。

“功能只能做一件事。”

路易斯·沙利文曾经很漂亮地说过。

“形式遵循功能。”

每个系统都是由特定领域的语言构建的,该语言是程序员设计的以恰当地描述它。 函数是该语言的动词,类是名词。 函数通常是任何编程语言中组织的第一线,编写好代码是编写好代码的本质。

编写干净函数只有两个黄金法则:

·它们应该很小

·他们应该只做一件事,并且应该做好

因此,这意味着您的函数不应足够大以容纳嵌套结构。 因此,函数的缩进级别不应大于一或两个。 这种技术使阅读,理解和消化更加容易。 除此之外,我们还需要确保函数中的语句处于相同的抽象级别。

在函数中混合使用抽象级别总是很混乱,并在适当的时间内导致代码难以管理。 熟练的程序员将函数视为要讲的故事,而不是要编写的代码。

他们使用所选编程语言的功能来构建更丰富,更具表现力和更简洁的编码块,从而可以充当理想的讲故事的人。

“注释不能弥补错误的代码”

当她观察时,维纳斯·威廉姆斯(Venus Williams)砸中了指甲。

“每个人都发表自己的评论。 这就是谣言的开始。”

评论就像一把双刃刀。 没有什么比放置适当的评论更有用。 另一方面,没有什么比浪费空间的琐碎,无用的注释更混乱了。 没有比散布虚假信息和谎言的评论更具破坏性了。

简而言之,评论充其量是必不可少的。 为什么? 并非总是如此,但在大多数情况下。 注释越老,维护它们就越困难,并且大多数程序员都因不按照代码进行维护而臭名昭著。

代码不断发展。 代码块在这里和这里移动; 评论不,这成为问题!

始终记住,带有很少注释的清晰表达代码远胜于带有大量注释的混乱且复杂的代码。 不要浪费时间解释您创建的混乱,而要花费时间来清理混乱。

“格式化代码始终是优先事项”

罗伯特·C·马丁说得对。

“代码格式与沟通有关,而沟通是专业开发人员的首要任务。”

上面的陈述也许不能被低估,这是真正的GREAT开发人员的最重要特征之一。

格式化的代码是您的脑海。 我们希望人们对我们的秩序,对细节的关注和思想的清晰印象深刻。 但是,在查看代码时,如果他们看到混乱的,混乱的代码块没有清晰的开头或结尾,那无疑会破坏我们的声誉,毫无疑问!

如果您认为“ 让它正常工作 ”是专业开发人员的头等大事,那么您再也无法摆脱现实。 您今天创建的功能很有可能在下一个版本中进行更改,但是您对代码的可读性将永远不会改变。

在原始代码已完全转换为无法识别之后,编码风格和可读性继续影响代码的可维护性。

永远记住,您会因自己的风格和纪律而被人们铭记,而在未来的代码中却很少。 因此,您需要注意代码格式正确,并受所有团队成员理解的简单规则支配。

首先编写“ try-catch-finally”语句

乔治·坎圭尔姆(Georges Canguilhem)正确地说了话。

“犯错是人类的行为,坚持错误是极有害的。”

错误处理是所有程序员都要做的事情。 输入可能异常,设备可能发生故障。 作为开发人员,我们希望确保代码能够完成预期的工作。 但是,问题不是处理错误,而是以清晰易读的方式处理错误。

许多代码是由错误处理主导的。 事情变得如此分散,以至于完全消除了主代码的目的和逻辑。 如果发生这种情况,那是错误的,完全是错误的。 代码应该干净,健壮,并能处理宽限期和样式错误。 那是一位伟大的软件工匠的印记。

做到这一点的方法之一是通过适当的封装并捕获try-catch块中的所有错误。 这些块以某种方式定义了代码的范围。 当您在try-catch-finally语句的try部分中执行代码时,您表示执行可以在任何时间点中止,然后在catch处恢复。

因此,在编写代码时,从try-catch-finally语句开始是一个好习惯。 这可以帮助您定义代码用户可以期望的内容,而不管try中执行的代码出了什么问题。

始终记住,您抛出的每个异常都应包含足够的上下文以确定错误的来源和位置,在编写代码并且程序员离开组织后很长一段时间内,都会记住富有创造性的错误消息。

汇集全部

那么,什么可以概括这里的所有内容呢?

答案是代码检测。 该软件等同于常识。

根据罗伯特·马丁(Robert Martin)的说法,“ 编写干净的代码要求通过痛苦地获得的“干净”感来规范地使用无数小技巧。 这些小技巧统称为 代码感知 。”

我们中的某些人天生就有它,而有些人则必须通过实践,坚持不懈和毅力来痛苦地获取它。 这种代码意识不仅帮助我们区分好代码和坏代码,而且还帮助我们形成将坏代码转换成好代码的策略。

它以明显的眼光向我们显示,如果用狗屎在上面结霜,仅烘烤一个可爱的蛋糕将无济于事。

此代码感知可帮助程序员选择最佳的变体和最佳的工具,以指导他或她努力创建增值的干净漂亮的代码。

简而言之,具有代码意识的程序员就是画家,他可以将黑屏转换成精美的艺术品,并在以后的几年中被人们记住。

正如Harold Abelson正确总结的那样。

“必须编写程序供人们阅读,并且只能偶然地使机器执行。”

参考文献

“敏捷软件技巧手册”-Robert Martin。

“敏捷评估手册”-Mike Cohn

关于作者-:
Ravi Rajan是位于印度孟买的全球IT计划经理。 他还是一位狂热的博客作者,Hai句诗作家,考古爱好者和历史狂人。 LinkedIn , Medium Twitter 上与Ravi联系

From: https://hackernoon.com/how-to-make-your-code-clean-and-beautiful-5ff7aee03be6



推荐阅读
  • 持续集成持续部署持续交付今天,我将谈论开发人员的一个误解:持续集成是关于运行自动化集成管道的…什么是持续集成(CI) ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 本文介绍了如何将Spring属性占位符与Jersey的@Path和@ApplicationPath注解结合使用,以便在资源路径中动态解析属性值。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • 深入解析Java中的空指针异常及其预防策略
    空指针异常(NullPointerException,简称NPE)是Java编程中最常见的异常之一。尽管其成因显而易见,但开发人员往往容易忽视或未能及时采取措施。本文将详细介绍如何有效避免空指针异常,帮助开发者提升代码质量。 ... [详细]
  • Visual Studio 2019 安装指南
    作为一名拥有三年经验的程序员,由于长期专注于C语言,我意识到自己的技术栈过于单一。在转型为Android驱动开发工程师后,这种局限性更加明显。本文将介绍如何安装Visual Studio 2019,并配置C++开发环境,以帮助读者拓宽技术视野。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 结城浩(1963年7月出生),日本资深程序员和技术作家,居住在东京武藏野市。他开发了著名的YukiWiki软件,并在杂志上发表了大量程序入门文章和技术翻译作品。结城浩著有30多本关于编程和数学的书籍,其中许多被翻译成英文和韩文。 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
好人木庄子mzz
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有