问题标签 [readability]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
212 浏览

c# - 对于具有许多参数的长字符串,String.Format 最易读的用法是什么?

例如:

这不会使代码变得非常可读,并且随着越来越多的参数被添加,它看起来更丑陋,并且更难以找到哪个参数进入哪个槽。

我知道这是一个菜鸟问题,我想我只是在询问如何格式化文本以使其更具可读性,但如果有更好的方法来做到这一点,我也想知道。

0 投票
21 回答
3787 浏览

c# - 哪个代码更易读?

假设我有两种方法bool Foo()bool Bar(). 以下哪个更具可读性?

或者

一方面,我认为短路&&是一个有用的功能,第二个代码示例要短得多。另一方面,我不确定人们通常是否习惯于在&&条件语句之外看到,所以我想知道这是否会引入一些认知失调,使第一个样本成为更好的选择。

你怎么看?是否有其他因素影响该决定?就像,如果&&表达式比屏幕上可以容纳的一行长,我应该更喜欢前者吗?


回答后澄清:

我应该在答案提出的最初问题中包含一些内容。

  • Bar()执行起来可能比 更昂贵Foo(),但是这两种方法都不应该有副作用。
  • 这两个方法的命名都更恰当,不像这个例子。 Foo()归结为类似的东西CurrentUserAllowedToDoX(),更像Bar()是,XCanBeDone()
0 投票
13 回答
77434 浏览

naming-conventions - 布尔方法命名可读性

简单的问题,从可读性的角度来看,您更喜欢哪个方法名称作为布尔方法:

或者:

或者:

0 投票
2 回答
288 浏览

actionscript-3 - Actionscript 'Object' 标记为真实的数据结构以提高可读性

所以在 actionscript 3 中,Object 类的实例可以用作关联数组:

假设我有一些课程,其中一个成员是一个只读的“对象”,其中包含我的人员集合。

我认为如果我返回这个“对象”,代码可读性会受到重大影响,因为程序员怎么知道如何处理它?有人知道它是一个集合的唯一方法是他们阅读代码或评论......

表明一个对象是一个集合而不是一个简单对象的最佳方式是什么?

选项:

  • 创建一个动态类,简单地从 Object 扩展,称为“AssociativeArray”或其他东西,这样代码变得更具可读性......

  • 使用像AS3 Datastructures Library这样的东西,虽然这看起来有点矫枉过正。

  • 只需将单词 Collection 附加到变量名的末尾?

例如:

你怎么看?

更新:我决定使用扩展字典的自定义类。这样我可以在搜索函数周围包装一个合理的访问函数:hasOwnProperty并给类一个有意义的名称。

我选择 Dictionary over Object 的原因有两个:

  1. 字典对集合更直观
  2. 字典似乎在 O(1) 处执行搜索。请参阅这个相当非正式的字典 vs 数组 vs 对象性能基准
0 投票
19 回答
3763 浏览

java - 正则表达式的替代(流利?)接口的设计

我刚刚看到一个巨大的 Java 正则表达式,它让我对一般正则表达式的可维护性有所思考。我相信大多数人——除了一些糟糕的 perl 贩子——都会同意正则表达式很难维护。

我正在考虑如何解决这种情况。到目前为止,我最有希望的想法是使用流畅的界面。举个例子,而不是:

可以写这样的东西

在这个非常简短的示例中,创建正则表达式的常用方法对于任何有才华的平庸开发人员来说仍然很容易阅读。然而,想想那些用 80 个字符填满两行或更多行的诡异表达式。当然,(冗长的)流畅的界面需要几行而不是两行,但我相信它会更具可读性(因此可维护)。

现在我的问题:

  1. 你知道正则表达式的任何类似方法吗?

  2. 你同意这种方法比使用简单的字符串更好吗?

  3. 您将如何设计 API?

  4. 你会在你的项目中使用这样一个简洁的实用程序吗?

  5. 你认为这会很有趣吗?;)

编辑: 想象一下,可能存在比我们都没有从正则表达式中获得的简单构造更高级别的方法,例如

编辑 - 评论的简短摘要:

有趣的是,大多数人认为正则表达式会继续存在——尽管需要工具来阅读它们,聪明的人会想办法让它们可维护。虽然我不确定流畅的界面是最好的方法,但我相信一些聪明的工程师 - 我们?;) - 应该花一些时间让正则表达式成为过去 - 他们已经和我们一起工作了 50 年就足够了,你不觉得吗?

开放赏金

赏金将奖励给正则表达式新方法的最佳创意(无需代码)。

编辑 - 一个很好的例子:

这是我正在谈论的那种模式 -对第一个能够翻译它的人的额外荣誉 - RegexBuddies 允许(它来自 Apache 项目顺便说一句)授予chiimez的额外荣誉:这是一个符合 RFC 的电子邮件地址验证模式 -尽管它的RFC822(参见ex-parrot.com),而不是5322 - 不确定是否有区别 - 如果是,我将奖励下一个额外的荣誉,以获得适合 5322 的补丁;)

0 投票
9 回答
16954 浏览

javascript - 在 JavaScript 中编写多行字符串的最简洁的方法是什么?

它实际上并不需要添加换行符,只是一些可读的东西。

还有什么比这更好的吗?

0 投票
8 回答
478 浏览

c# - 我应该按什么顺序在 C# 类中放置属性、事件、函数、函数覆盖等?

在创建新的 C# 类时,我不确定声明属性、事件委托、函数、函数覆盖等的最佳逻辑顺序是什么,以及在决定该顺序时应考虑哪些因素。

通常,在创建 WebUserControl 类后面的代码时,我最终会按以下顺序放置:

  1. 活动
  2. 特性
  3. 生命周期事件覆盖函数
  4. 其他功能

在决定如何在类文件中对类的这些元素进行排序时,是否有更合乎逻辑的方法?我应该考虑哪些因素?

0 投票
4 回答
437 浏览

python - 我怎样才能使这个 Python 代码更有用和可读?

python 初学者,但现在已经编程了大约 5 年。我怀疑我有很多东西要学习以面向对象的方式做事,但我知道基础知识。我计划编写一个计算器,以显示它对挑战的工作以及我将从中获得的知识。我刚开始,这就是我所拥有的,它对我来说真的很难看。你会怎么做?

PS这只是一个简单的脚本,用于从括号内取出问题,将其相加,展示工作,然后评估完整的问题。

0 投票
4 回答
496 浏览

ruby - 如何将这个 6 行方法重构为更具可读性?

我正在尝试在这里清理这种极其丑陋的方法,这迫切需要重构,但我不确定哪种结构最能做到这一点(即案例陈述,或者只是一个精心格式化的if then陈述)

乍一看,这似乎是一个放置几个很好when的 's 的 case 语句的理想场所,但我的理解是 case 语句只能用于单个变量,而不是两个,以及各种 irb 的摆弄使用散列或数组来尝试这些语句在这里也没有得到太多启示。

你会怎么做?在检查这样的多个布尔值时,Ruby 中是否有任何常见的技巧来避免这样的代码?

0 投票
6 回答
615 浏览

query-string - 查询字符串 - 使用行 ID 或人类可读的值?

我正在构建一个表单,我想知道以更易于阅读的格式显示值是否有显着优势;例如:

index.php?user=ted&location=newyork

而不是:

index.php?user=23423&location=34645

一方面,让查询字符串更具可读性可以让用户和搜索引擎更好地了解它们的位置,但这也会在服务器端产生更多的工作,因为我必须追踪相关的行通过他们唯一的身份以外的东西。

例如,首先找到id'newyork' 是什么,然后才能处理需要location_id. 我总是喜欢尽可能少地给数据库工作。

编辑:决定提高可读性。我想我总是可以在必要时使用 mysql 查询缓存来加快速度。