问题标签 [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 投票
5 回答
571 浏览

c# - 美化 C# 语法

在我的 C#/ASP.NET 项目中,我有一个具有某些行为类别的对象。每个行为类别在物理上都依赖于一个根对象,但为了使代码更好地阅读,我想清楚地区分这些类别。我认为看看我的实现如何与其他人为解决相同问题而编写的实现进行比较会很有趣。

在下面的示例中,我有一个类可以生成网站上不同位置的 URL。该网站有一个店面,它有自己的一组链接,这些链接的访问方式应与主页等 URL 不同。

使用此代码将类似于以下内容

罗伯特:

该示例本身只是我发现自己试图更明确地组织功能的一种情况。你有没有发现自己在相关方法周围使用前缀。String.TrimStart()、String.TrimEnd()、String.Trim() 是从 C# 框架中想到的一个示例。

我试图组织上面的代码(从可读性的角度来看)受到嵌套类无法访问外部类成员的影响。构建内部类涉及额外的工作,因为我必须将 WebsiteURLs 实例的引用传递给 StoreURLs 类的构造函数,这几乎违反了 C# 编码实践,因为这种闭包行为不是嵌套类的行为语。我很好奇其他人在存在大量相关功能的情况下会使用什么 C# 代码(想想数十或数百种方法)。(注意:上面的代码在 Java 中编写起来更加流畅,其中嵌套类确实可以访问它们的外部类成员)。

0 投票
2 回答
137 浏览

.net - 从声明类中访问字段或属性

访问类中的字段或属性(如果存在)是否有更可接受的做法?我一直有访问该字段的习惯,但是由于我一直在做有很多 INotifyPropertyChanged 的​​ WPF,我发现自己需要访问该属性才能更改通知。所以现在我在我的类中混合了字段和属性访问,虽然从编译器的角度来看,风格和可读性并不重要,但感觉……很尴尬。

0 投票
3 回答
1554 浏览

iphone - Iphone 上带有白色文本和清晰背景的放大镜放大

你们对我的最后一个问题帮助很大,我想我会给你一个机会。我编写了一个应用程序,其主题使用深蓝色玻璃状背景和白色/灰色文本和标签。我的应用程序中的文本字段有清晰的背景和白色文本,一切都显示得很好。我唯一担心的是,当您在文本框中按住触摸以获取放大镜时,当然白色文本会显示在白色背景上……您无法阅读。有人对如何在这里实现可用的放大镜有任何想法吗?

0 投票
2 回答
1038 浏览

ms-access - 条件格式或使用 VBA 格式

在 MS Access 中,是否有理由更喜欢条件格式而不是使用 VBA 设置格式选项?一种更有效还是通常被认为更容易阅读?

0 投票
3 回答
166 浏览

layout - Web 界面:显示许多静态字段的好方法是什么?

我的 Web 应用程序具有显示许多静态字段的页面。

我知道糟糕的布局总是会导致信息过载和可读性差。

我的问题:

布局包含许多静态字段的屏幕是否有任何最佳实践或启发式方法?

通常,我会参考 Bill Scott 和 Theresa Neil 的优秀书籍,但我似乎找不到任何关于这个问题的指导。

以下是我倾向于遵循的一些准则:

  1. 分组相关字段。
  2. 将主要(或父)字段定位在顶部和左侧。将次要(或子)字段定位在底部和右侧。
  3. 不要觉得有必要填充每个像素。如果可以提高可读性,请考虑使用空格。
  4. 尽可能支持渐进式披露
  5. 考虑一个手风琴控件
0 投票
4 回答
446 浏览

c++ - 在 C++ 中编写 structarray 映射函子的最清晰方法

这是一个关于最易读的方式做某事的民意调查——是使用指向成员的 C++ 指针、字节偏移量还是模板化仿函数来定义“从结构 foo 中选择成员 X”。

我有一个包含大量结构向量的类型,并且我正在编写一个实用函数,该函数基本上在其中一些范围内作为reduce操作。每个结构都将一组因变量与独立维度上的某个点相关联——为了发明一个简化的例子,想象这记录了一个房间随着时间的推移的一系列环境条件:

我的函数只是执行三次插值来猜测可用样本之间某个给定时间点的这些条件。

我想概括这个函数,以便它可以普遍应用于任何成员,而不仅仅是温度。我可以想到三种方法来做到这一点,虽然它们都可以直接编码,但我不确定一年后必须使用它的人最易读的方法是什么。这是我正在考虑的:


指向成员的语法

这感觉像是最“C++y”的方式,但它看起来很奇怪,而且整个指向成员的语法很少使用,因此我团队中的大多数人都很难理解。这是技术上“正确”的方式,但也是我会收到最困惑的电子邮件的方式。

结构偏移

这在功能上与上述相同,但显式地执行指针数学运算。这种方法对于我团队中的每个人(他们都在 C++ 之前学习 C)都会立即熟悉和理解,而且它很健壮,但看起来很恶心。

模板化函子

这是最直接和 STL 式的做事方式,但它看起来像是一大堆额外的类型和语法以及临时的类定义。它编译成与上面两个几乎完全相同的东西,但它还在整个可执行文件中转储了一堆冗余函数定义。(我已经用/FAcs验证了这一点,但也许链接器会再次将它们取出。)


以上三个都可以工作,编译器为它们发出几乎相同的代码;所以,我必须做出的最重要的选择就是最易读的。你怎么看?

0 投票
11 回答
1191 浏览

readability - 情感代码

我遇到了一篇讨论“代码钦佩”问题的文章。基本上,作者谈到了开发人员应该如何对他们编写的代码持怀疑态度。我们如何过度“欣赏”我们的代码,将我们的自我附在它上面,使我们更容易受到可能摆在我们面前的错误和其他不幸的影响。

你怎么看待这个问题?您是否有更多关于如何避免/更加注意这个问题的提示?

0 投票
3 回答
5367 浏览

c++ - 为什么 STL 实现如此难以理解?在这里如何改进 C++?

例如,为什么 STL 实现中的大多数成员都有_M_or___前缀?为什么有这么多样板代码?

C++ 缺少哪些功能可以使向量(例如)实现更清晰、更简洁?

0 投票
19 回答
1205 浏览

syntax - 是什么使语言可读或不可读?

我听说人们说他们一年后可以理解他们的 python 代码,但不能理解他们的 XYZ 代码。为什么?我不知道 python 语法有什么好处,或者另一个语法有什么不好。我喜欢 C#,但我觉得 VB.NET 代码更易于阅读。我正在做语言设计,那么您发现什么使代码/语法/语言可读或不可读?

0 投票
2 回答
1668 浏览

c# - 在 C# 中为字符串分配双引号的最易读的方法

有没有人认为在很短的字符串中转义字符会使它们不太可读?我注意到我s = "\""在我的代码中使用了一个双引号来分配一个字符串,但考虑到它,我想出了以下替代方案s = '"'.ToString()

  • 我的选择有什么好处吗?您希望在代码中看到第一个版本吗?
  • 您将如何将两个双引号(“”)(可能是 )分配s = "\"\""给一个字符串?

/me 在被强制进入之前标记了这个 CW。