标签: readability

"for(;;)"比"while(TRUE)"快吗?如果没有,为什么人们会使用它?

for (;;) {
    //Something to be done repeatedly
}
Run Code Online (Sandbox Code Playgroud)

我已经看到这种东西使用了很多,但我觉得它很奇怪......说再说清楚while(true),还是沿着这些方向做些什么?

我猜这(因为许多程序员采用神秘的代码的原因)这是一个微小的利润更快?

为什么,它真的值得吗?如果是这样,为什么不这样定义它:

#define while(true) for(;;)
Run Code Online (Sandbox Code Playgroud)

另请参见:哪个更快:while(1)或while(2)?

c c++ optimization readability infinite-loop

160
推荐指数
17
解决办法
4万
查看次数

如何在JavaScript中将长正则表达式拆分为多行?

我有一个很长的正则表达式,我想在我的JavaScript代码中拆分成多行,以根据JSLint规则保持每行长度为80个字符.我认为这对阅读来说更好.这是模式样本:

var pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
Run Code Online (Sandbox Code Playgroud)

javascript regex expression readability jslint

129
推荐指数
6
解决办法
4万
查看次数

如果在for循环中使用<或<=

如果你不得不循环7次循环,你会使用:

for (int i = 0; i < 7; i++)
Run Code Online (Sandbox Code Playgroud)

要么:

for (int i = 0; i <= 6; i++)
Run Code Online (Sandbox Code Playgroud)

有两个注意事项:

  • 性能
  • 可读性

为了性能,我假设Java或C#.使用"小于"或"小于或等于"是否重要?如果您对其他语言有所了解,请说明哪些语言.

为了便于阅读,我假设基于0的数组.

UPD:我提到的基于0的数组可能会让人感到困惑.我不是在讨论迭代数组元素.只是一个循环.

关于使用常数可以解释这个神奇数字是什么,下面有一个好点.所以,如果我有" int NUMBER_OF_THINGS = 7"然后" i <= NUMBER_OF_THINGS - 1"看起来很奇怪,不会.

performance readability conventions

122
推荐指数
9
解决办法
3万
查看次数

为什么要将我的SQL关键字大写?

可能重复:
是否有充分的理由对T-SQL关键字使用大写?

简单的问题.我个人发现一串小写字符比一串大写字符更易读.是一些旧的/流行的SQL味道敏感或什么?

以供参考:

select
    this.Column1,
    case when this.Column2 is null then 0 else this.Column2 end
from dbo.SomeTable this
    inner join dbo.AnotherTable another on this.id = another.id
where
    this.Price > 100
Run Code Online (Sandbox Code Playgroud)

SELECT
    this.Column1,
    CASE WHEN this.Column2 IS NULL THEN 0 ELSE this.Column2 END
FROM dbo.SomeTable this
    INNER JOIN dbo.AnotherTable another ON this.id = another.id
WHERE
    this.Price > 100
Run Code Online (Sandbox Code Playgroud)

前者对我来说似乎更具可读性,但我更经常地看到后一种方式.

sql formatting readability

108
推荐指数
9
解决办法
5万
查看次数

布尔方法命名可读性

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

public boolean isUserExist(...)
Run Code Online (Sandbox Code Playgroud)

要么:

public boolean doesUserExist(...)
Run Code Online (Sandbox Code Playgroud)

要么:

public boolean userExists(...)
Run Code Online (Sandbox Code Playgroud)

api readability naming-conventions

103
推荐指数
7
解决办法
4万
查看次数

如果知道背景颜色,如何找到漂亮的字体颜色?

似乎有很多色轮,颜色选择器和颜色匹配器网络应用程序,在那里你给出一种颜色,他们会发现一些其他颜色,当组合使用时会产生谐波布局.但是,它们中的大多数仅关注背景颜色,并且在每种背景颜色上打印的任何文本(如果在预览中完全打印文本)是黑色或白色.

我的问题不同了.我知道我想用于文本区域的背景颜色.我需要帮助的是选择几种颜色(更多,更好,我可以在这个背景上用作字体颜色).最重要的是,颜色将确保字体是可读的(对比度不是太低,也可能不是太高,以避免眼睛受到压力),当然,前景和背景的组合看起来很好.

有人知道这样的申请吗?我更喜欢Web应用程序,我需要下载任何内容.谢谢.

accessibility readability colors

86
推荐指数
1
解决办法
14万
查看次数

Python:`如果键入dict`与`try/except` - 这是更具可读性的成语?

我有一个关于习语和可读性的问题,似乎有一个针对这个特殊情况的Python哲学冲突:

我想从字典B中构建字典A.如果B中不存在特定的键,则不执行任何操作并继续.

哪种方式更好?

try:
    A["blah"] = B["blah"]
except KeyError:
    pass
Run Code Online (Sandbox Code Playgroud)

要么

if "blah" in B:
    A["blah"] = B["blah"]
Run Code Online (Sandbox Code Playgroud)

"做并请求原谅"与"简单和明确".

哪个更好?为什么?

python idioms readability code-readability defaultdict

86
推荐指数
4
解决办法
6万
查看次数

开发人员是否应该首先考虑可读性或性能?

通常情况下,开发人员将面临解决问题的两种可能方式之间的选择 - 一种是惯用的和可读的,另一种不太直观,但可能表现更好.例如,在基于C语言中,有两种方法可以将数字乘以2:

int SimpleMultiplyBy2(int x)
{
    return x * 2; 
}
Run Code Online (Sandbox Code Playgroud)

int FastMultiplyBy2(int x)
{
    return x << 1;
}
Run Code Online (Sandbox Code Playgroud)

第一个版本更容易为技术和非技术读者选择,但第二个版本可能表现更好,因为比特移位比乘法更简单.(现在,让我们假设编译器的优化器不会检测到它并对其进行优化,尽管这也是一个考虑因素).

作为开发人员,最初的尝试会更好吗?

performance readability

74
推荐指数
9
解决办法
9124
查看次数

将C++字符串拆分为多行(代码语法,非解析)

不要混淆如何拆分字符串解析明智,例如:
在C++中拆分字符串?

关于如何在c ++中将字符串拆分为多行,我感到有点困惑.

这听起来像一个简单的问题,但请采取以下示例:

#include <iostream>
#include <string>
main() {
  //Gives error
  std::string my_val ="Hello world, this is an overly long string to have" +
    " on just one line";
  std::cout << "My Val is : " << my_val << std::endl;

  //Gives error
  std::string my_val ="Hello world, this is an overly long string to have" &
    " on just one line";  
  std::cout << "My Val is : " << my_val << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我意识到我可以使用这个std::string append()方法,但我想知道是否有任何更短/更优雅(例如更多pythonlike,但显然三重引号等在c ++中不支持)的方式将c ++中的字符串分解为多行为了缘故可读性. …

c++ string syntax coding-style readability

66
推荐指数
3
解决办法
7万
查看次数

为什么大多数STL实现中的代码如此复杂?

STL是C++世界的关键部分,大多数实现源自Stepanov和Musser的初步努力.

我的问题是代码的重要性,并且它是人们为敬畏和学习目的查看编写良好的C++示例的主要来源之一:为什么STL的各种实现如此令人作呕? - 复杂和一般来说,如何不从美学的角度来编写C++代码的好例子.

下面的代码示例不会在我工作过的地方通过代码审查,原因不同于变量命名,布局,宏和操作符的使用,这些操作符需要的不仅仅是简单的一瞥,以确定实际发生的情况.

template<class _BidIt> inline
bool _Next_permutation(_BidIt _First, _BidIt _Last)
{  // permute and test for pure ascending, using operator<
_BidIt _Next = _Last;
if (_First == _Last || _First == --_Next)
   return (false);

for (; ; )
   {  // find rightmost element smaller than successor
   _BidIt _Next1 = _Next;
   if (_DEBUG_LT(*--_Next, *_Next1))
      {  // swap with rightmost element that's smaller, flip suffix
      _BidIt _Mid = _Last;
      for (; !_DEBUG_LT(*_Next, *--_Mid); )
         ;
      _STD iter_swap(_Next, _Mid);
      _STD …
Run Code Online (Sandbox Code Playgroud)

c++ stl readability

64
推荐指数
3
解决办法
7356
查看次数