问题标签 [google-style-guide]

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 投票
1 回答
820 浏览

python - 要求 python 导入是模块

Python 的 Google Style Guide 指出应该:“仅对包和模块使用导入”。

https://google.github.io/styleguide/pyguide.html#Imports

是否有标记违反此建议的工具?

皮林特不这样做。例如,以下内容: 是否有基于 Google 样式指南 lint Python 的工具?

创建一个test.py违反准则(exists是一个函数,而不是一个模块):

然后,使用 rc 文件运行 pylint 就可以了:

搜索可能的代码:http://pylint-messages.wikidot.com/all-codes,我没有看到任何看起来会警告这一点的东西。

我也没有在 pep8 或 pyflakes 中看到任何可以捕捉到这一点的东西。

0 投票
2 回答
318 浏览

r - 为什么 Google 的 R 风格指南推荐 <- 用于赋值,而不是 =?

我阅读了 R 的 Google 风格指南。对于“作业”,他们说:

使用 <-,而不是 =,进行赋值。

好:
x <- 5

不好:
x = 5

你能告诉我这两种分配方法有什么区别,为什么一种比另一种更受欢迎?

0 投票
1 回答
189 浏览

python - 正确记录作为参数传递的构造函数

我试图弄清楚记录接收类构造函数作为参数的函数的正确方法是什么。我正在使用谷歌风格的文档字符串。

例子:

0 投票
1 回答
1051 浏览

c++ - 仅当当前行溢出 clang 格式时才在新行上大括号

我最近决定在我.clang-format的 C++ 项目中包含一个文件,以使代码更加统一和易于阅读。我最喜欢谷歌的默认设置,除了我想使用 4 个空格缩进而不是两个。

这样做的问题是,当当前行超出 80 个字符的列限制时,它会使某些语句更难阅读。例如,在溢出的 if 语句中:

对齐方式yet_another_condition与 if 块开头的对齐方式相匹配,这使得如果没有某种中断就很难阅读。理想情况下,我希望在这种情况下发生的事情是这样的:

但是,当当前行溢出到下一行时,我只希望在新行上打开大括号,就像上面的例子一样。在所有其他情况下,我希望将左大括号放在同一行(适用于 if/for/while/switch 等语句以及函数)。

是否可以在我的.clang-format文件中指定此行为,同时保持其余 Google 默认值不变?

0 投票
0 回答
415 浏览

c++ - 关于基类成员的 Google C++ 风格指南

Google C++ 风格指南在关于继承的部分中指出:

将 protected 的使用限制为可能需要从子类访问的那些成员函数。请注意,数据成员应该是私有的。

现在考虑以下情况:

我想正确的方法是 A 类为 m 实现 getter/setter 函数,以便 B 类可以访问它?

我真的不明白为什么选择这条规则而不是protected用于数据成员。有人可以解释一下吗?

0 投票
1 回答
781 浏览

git - Git 提交约定

在编写 git commit 消息时我应该删除文章 (a, the) 吗?
我发现很多提交经常“错过”文章“a”和“the”。
我检查了Google Style Guide但找不到正确的答案。

仅仅是提交者遗漏了文章还是有一些规则?

例如,我应该使用以下哪些消息?

1)“调整图像分辨率并修复错误”

2)“调整图像分辨率并修复小错误”

0 投票
1 回答
2988 浏览

maven - 运行 PuppyCrawl 的 Maven Checkstyle 插件时出错

好吧,我正在尝试在我目前正在处理的项目上配置 Maven 的 Checkstyle 插件,我得到以下信息:

所以,运行mvn install -X我有以下堆栈跟踪:

它似乎与我在 Github 上的以下链接中找到的 google-checks.xml 中指定的 DTD 有关:https ://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks .xml

我试图将该证书添加到我的 JVM 信任库,但它不起作用。有人能弄清楚出了什么问题吗?

先感谢您。

0 投票
0 回答
2109 浏览

c++ - Protobuf 和异常

因此,我正在阅读有关 protobuf 异常处理的信息,并且阅读了以下文档: https ://groups.google.com/forum/#!topic/protobuf/IFcZQK0QuzI

特别是:我们不在 protobuf 中使用异常,因为 Google C++ 样式指南不允许异常: https ://google.github.io/styleguide/cppguide.html#Exceptions

因此,如果某些对象抛出,代码可能无法工作。

所以,首先,在同一个谷歌风格指南中,提到可以使用 std::hash,但 std::hash 是抛出的 STL 的一部分!使用 -fno-exceptions 编译时如何才能正常工作?protobuf 也是如此:例如,它大量使用 std::string。他们怎么能声称他们不抛出异常?

谢谢。

0 投票
7 回答
7259 浏览

c++ - 使用无符号而不是有符号的 int 是否更有可能导致错误?为什么?

Google C++ Style Guide中,关于“无符号整数”的主题,建议

由于历史意外,C++ 标准也使用无符号整数来表示容器的大小——标准组织的许多成员认为这是一个错误,但实际上目前无法修复。无符号算术不模拟简单整数的行为,而是由标准定义以模拟模算术(围绕上溢/下溢)这一事实,这意味着编译器无法诊断出一类重要的错误。

模运算有什么问题?这不是无符号整数的预期行为吗?

该指南提到了什么样的错误(一个重要的类)?溢出错误?

不要仅仅使用无符号类型来断言变量是非负的。

我可以考虑使用有符号整数而不是无符号整数的一个原因是,如果它确实溢出(为负数),则更容易检测到。

0 投票
2 回答
1805 浏览

c++ - 谷歌 C++ 风格指南包括订单

Google C++ Style Guide建议按以下顺序将头文件 (.h) 包含到实现文件 (.cpp, .cc) 中:

dir/foo.ccordir/foo_test.cc中,其主要目的是实现或测试中的东西dir2/foo2.h,按如下顺序排列您的包含:

如前所述,这样的顺序允许在dir2/foo2.h编译foo-unit 时查看省略的依赖项,而不是其他无辜单元。看起来很合乎逻辑。

但是为什么Other libraries' .h files.Your project's .h files.放在了列表的末尾呢?理论上,也可能缺少依赖项,这些依赖项将通过包含C system files.and C++ system files.before 来隐藏。

也许假设应该在相关的实现文件中检测到其他(头)文件问题?在那种情况下,只有头文件的库呢?

换句话说,是否会包含以下顺序:

更快地找到隐藏的依赖项会更好吗?

例如,如果我只有需要的标题<stdio.h>(但未在该文件中指定)。使用谷歌命令,直接或间接包含的可能性<stdio.h>比在最后一步包含系统文件时更高(正如我之前建议的那样)。因此,找到隐藏依赖项的概率很低。那么,如果在其他 lib/您的项目文件之前包含系统文件,我们将获得什么?

同样不清楚,我是否应该在其他(用户定义的)头文件中使用推荐的包含文件顺序。