paint-brush
如此寻得二维码中的腐臭味大大部分 [第 XX 大大部分]:我们大家已提高 100 个! 途经@mcsee
1,425 讀數
1,425 讀數

如何找到代码中的臭味部分 [第 XX 部分]:我们已达到 100 个!

根据 Maximiliano Contieri1m2022/06/11
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

通过示例了解代码气味!

Company Mentioned

Mention Thumbnail
featured image - 如何找到代码中的臭味部分 [第 XX 部分]:我们已达到 100 个!
Maximiliano Contieri HackerNoon profile picture
20 个短情节视频,各个短情节视频有 5 种编号臭味,各个短情节视频就是 100 种编号臭味,对吧?

以前的代码气味

就让们持续...

代码气味 96 - 我的对象

你不拥有对象。

TL;DR:不要使用my作为名称前缀。

问题

  • 缺乏背景
  • 双射错误

解决方案

  1. 删除我的前缀。
  2. 更改为建议名称的角色。

语境

一系旧步凑安全使用“我的”这样词充当一位懒散的取名字。这个是发虚的,并致使横竖文异常。

示例代码

错误的

MainWindow myWindow = Application.Current.MainWindow as MainWindow;

正确的

MainWindow salesWindow = Application.Current.MainWindow as MainWindow; /* Since window is instanciated, we are currently working with a specialized window playing a special role */

检测

  • [x]自动
咱们会讲讲咱们的 linter 和静态数据查看器搜索网页这家前缀并风险提示咱们。

标签

  • 命名

结论

避免使用我的.对象根据使用上下文而变化。

更多信息

学分

拍照由在上拍好
想一下我重设源代碼的历程,显示我花在仔细阅读写作现今源代碼上的精力间隔比我写新源代碼的精力间隔要多得多。于是,比如估计叫我的源代碼便宜一些,我因该让它易仔细阅读写作。

肯特贝克

软件工程名言


Code Smell 97 - 没有同理心的错误信息

我们应该特别注意用户(和我们自己)的错误描述。

TL;DR:使用的无功用的描叙并提倡较正政策。

问题

  • 最小意外原则

解决方案

  1. 使用声明性错误消息
  2. 显示明确的退出操作

语境

流程员不大是 UX 教授。各位的也低估了各位的也可以走到银行柜台两遍的实际上。

示例代码

错误的

alert("Cancel the appointment?", "Yes", "No"); // No consequences // Options not clear

正确的

alert("Cancel the appointment? \n" + "You will lose all the history", "Cancel Appointment", "Keep Editing"); // Consequences are clear // Choice options have context

检测

  • [x]手册
.我想要阅读赏析代码怎么用复查中的很多失常短信息。

标签

  • 例外
  • 用户体验

结论

在致使十分或体现 qq消息时,我们的须得顾虑之后观众。

学分

图片由上的拍
也许系统员从来不顶嘴误都是个大家应该都知道的实际上,但在在系统的重中之重点检修报错来取悦微信用户一样都是个好特别注意。

罗伯特·D·施耐德



Code Smell 98 - 拼写错误

拼写和可读性对人类来说非常重要,而对机器来说并不重要。

TL;DR:兼顾好你的英文名。

问题

  • 可读性
  • 更难在代码中搜索术语。

解决方案

  1. 拼写检查您的代码。
  2. 使用带有拼写检查的 IDE

语境

你们大家中的许许多2人不易说英语口语做你们大家的第一个程序语言。人们是需要特殊特别留意人们的文字和明称。

这篇文章的标题中有一个错字作为上下文的证明,也是一个点击诱饵😀

示例代码

错误的

comboFeededBySupplyer = supplyer.providers();

正确的

comboFedBySupplier = supplier.providers();

检测

标签

  • 可读性
  • 命名
  • 代码样式

结论

密切联系关注你的名称。几个月时间后,您机会会被选为浏览代码是什么的人。

关系

代码气味 48 - 没有标准的代码

更多信息

名字到底是什么——第一部分探索

究竟是什么名字——第二部分康复

学分

在上的相片


任其中是一个文笔好的大子程序流程里都有其中是一个文笔好的小子程序流程。

汽车霍尔


代码气味 99 - 第一秒

我们看到多少次惰性参数名称?

TL;DR:据脚色而是偶然间位置上被命名你的论点

问题

  • 可读性
  • 意图透露姓名

解决方案

  1. 使用有意义的名称

语境

在填写技术时,企业基本不停放进去来搜索像样的公司名字。企业也也不相空间比较明显的食物。

示例代码

错误的

class Calculator: def subtract(self, first, second): return first - second class CalculatorTest def test_multiply(): assert equals(first, second)

正确的

class Calculator: def subtract(self, minuend, subtrahend): return minuend - subtrahend class CalculatorTest def test_multiply(): assert equals(expectedValue, realValue)

检测

  • [x]手册
我们大家能安全提示例如“一、”和“二、”之前的请勿词看作叁数品牌。

标签

  • 可读性

结论

仍旧遵循原则技巧提案产品参数。不同职业定名您的媒体合作家。

关系

Code Smell 65 - 以类型命名的变量

更多信息

究竟是什么名字——第二部分康复

学分

像片由在上摄影
决定的源码是实际的游戏设计制作。

杰克·里维斯


代码气味 100 - GoTo

GOTO 在 50 年前被认为是有害的

TL;DR:永远永远最好不要实用 GoTo。

问题

  • 可读性
  • 难以遵循的代码

解决方案

  1. 用结构化代码替换
  2. 使用例外

语境

我就开始用 Basic 程序编程。 GOTO 在那被情况严重过度使用。我有必要在术后康复格局下从头到尾开使培训设计化编程序。

示例代码

错误的

for x < 0 { if x > -1e-09 { goto small } z = z / x x = x + 1 } for x < 2 { if x < 1e-09 { goto small } z = z / x x = x + 1 } if x == 2 { return z } x = x - 2 p = (((((x*_gamP[0]+_gamP[1])*x+_gamP[2])*x+_gamP[3])*x+_gamP[4])*x+_gamP[5])*x + _gamP[6] q = ((((((x*_gamQ[0]+_gamQ[1])*x+_gamQ[2])*x+_gamQ[3])*x+_gamQ[4])*x+_gamQ[5])*x+_gamQ[6])*x + _gamQ[7] return z * p / q small: if x == 0 { return Inf(1) } return z / ((1 + Euler*x) * x) }

正确的

for x < 0 { if x > -1e-09 { return small(x, z) } z = z / x x = x + 1 } for x < 2 { if x < 1e-09 { return small(x, z) } z = z / x x = x + 1 } if x == 2 { return z } x = x - 2 p = (((((x*_gamP[0]+_gamP[1])*x+_gamP[2])*x+_gamP[3])*x+_gamP[4])*x+_gamP[5])*x + _gamP[6] q = ((((((x*_gamQ[0]+_gamQ[1])*x+_gamQ[2])*x+_gamQ[3])*x+_gamQ[4])*x+_gamQ[5])*x+_gamQ[6])*x + _gamQ[7] return z * p / q small(x, z) { if x == 0 { return Inf(1) } return z / ((1 + Euler*x) * x) } }

检测

  • [x]自动

在支持GOTO的语言中,我们的 linter 可以警告我们不要使用它。

标签

  • 可读性

结论

企业在几三年以前就意识到了 GOTO 故障 。你这个相关问题一样会存在于 GoLang、PHP、Perl 等中。

大多数程序员幸运地避免了 GOTO 语句。下一个目标是考虑有害的null 使用


礼貌

关系

代码气味 12 - 空

更多信息

学分

詹斯·雷德里克森 ( 在上拍出的像片
向时候接觸过 BASIC 的学员客座教授好的代码编程具体上是也没有可能会的:为内在的的系统软件工程师,你在精神抖擞上被残破不全,也没有粉碎的还望。

埃兹格·迪克斯特拉

软件工程名言


这这就是接下来的另一个方面,咱们己经达成了 100 个航空转折点。


下篇文章内容文章内容将定义另一方面 5 种源代码味道!
바카라사이트 바카라사이트 온라인바카라