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

c++ - 带有 C++ Google 样式指南示例的示例代码?

有没有什么好地方可以获取 C++ Google 样式指南的示例?

0 投票
3 回答
2929 浏览

c++ - 在头文件中使用类而不访问其定义?

这是google 的 c++ 编码指南的摘录。

我们如何在头文件中使用 Foo 类而不访问其定义?

  • 我们可以声明 Foo* 或 Foo& 类型的数据成员。
  • 我们可以用 Foo 类型的参数和/或返回值声明(但不能定义)函数。(一个例外是,如果参数 Foo 或 const Foo& 具有非显式的单参数构造函数,在这种情况下,我们需要完整的定义来支持自动类型转换。)
  • 我们可以声明 Foo 类型的静态数据成员。这是因为静态数据成员是在类定义之外定义的。

我很好奇的是第二个项目符号中的异常。为什么会这样?如果我们想支持自动类型转换,为什么需要完整的定义?

我的猜测是编译器需要目标类型的完整定义,因为在隐式转换中创建了临时对象。我猜对了吗?还有更多吗?

编辑:

正如我所看到的,指南中的例外是针对这样的情况:

这里我们只有一个用户定义的隐式转换(从 int 到 A),并调用接受 A const & 的构造函数。在此异常中唯一有意义的是支持从例如 int 到 A,然后通过接受 A const & 的构造函数到 B 的直接转换,允许客户端代码使用此转换链,而无需显式包含 A 类所在的头文件宣布。

0 投票
1 回答
1897 浏览

c++ - 谷歌风格指南脚本或工具

是否有脚本或工具可以将代码样式更改为谷歌样式,至少部分不完全(可能只是语法格式)?我们正在重用一些未按照 google 样式标准格式化的 C++ 遗留代码,即使只是在语法上对其进行格式化,对于开发人员来说也需要几个小时。

目前,我们编写了一些正则表达式来搜索和替换一些基本样式

谢谢

0 投票
1 回答
1351 浏览

javascript - 为什么在 JavaScript 中使用“const”构造是一种不好的做法?

在 Google Style guide for JavaScript 编写(证明链接)中,使用“const”构造是一种不好的做法,为什么?

0 投票
5 回答
3685 浏览

javascript - “花括号总是应该在语句行”规则如此重要吗?

我理解“分号隐式插入”,但我不确定它是否发生在函数表达式的情况下。

例如,这两个表达式总是会平等地解释:

我喜欢第一个,我也注意到 Google 也喜欢它:http: //google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml ?showone=Code_formatting#Code_formatting 。但我的同事不喜欢这种风格。问题出现了是否严格遵守这条规则,即使有函数声明,或者它是对统一性的贡献,并且这段代码在经过巧妙的缩小后不会中断?

0 投票
4 回答
1239 浏览

c++ - 为什么谷歌在成员变量之后命名访问器和修改器?

http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Function_Names#Function_Names

常规函数大小写混合;访问器和修改器匹配变量的名称:MyExcitingFunction()、MyExcitingMethod()、my_exciting_member_variable()、set_my_exciting_member_variable()。

对用户隐藏实现细节不是封装的全部意义,因此他/她不知道访问器/突变器方法是否返回/修改成员变量?如果我更改变量名称或更改它在对象中的存储方式怎么办?

编辑:

如果我有一个实例变量int foo_,它看起来很简单

但是如果我添加另一个返回的方法,foo_ + 2我应该命名 ifbar还是GetBar

如果我选择GetBar并稍后决定将返回值缓存在另一个成员变量bar_中,我是否必须将方法重命名为bar

0 投票
1 回答
2849 浏览

javascript - 根据 Google JavaScript 样式指南,块内的函数声明

根据 Google JavaScript 风格指南,函数声明不应在块内声明,因为这不是 ECMAScript 的一部分。但是,我并不完全清楚什么是块。

具体来说,我有一个构造函数,我想在该构造函数的范围内定义一个函数。由于它位于一组 {} 中,这是否算作一个块中的函数?如果是这样,这是否意味着每个函数声明都必须是全局的?

一些良好措施的代码:

错误的 (?)

对 (?)

0 投票
1 回答
98 浏览

css - 是否有大型现有项目的 CSS 样式指南。或者我如何优化大型项目的 CSS

我目前正在从事一个具有多个前端和后端开发人员的大型项目。它基本上是一个不同品牌的大型电子商务解决方案,核心结构相同,但风格和布局不同。

我的问题是这样的:

是否有大型现有项目的 CSS 样式指南?或者我们如何在不丢失逻辑和破坏内容的情况下优化代码重构?

样式混乱,需要绝望的重构。我们从客户那里得到了项目的一部分,我们有点被迫对那些现有的布局和样式进行样式设置和工作。

在某些部分,我们有 10 代选择器,我们经常需要提供 !important 规则来完成工作。

很抱歉,由于法律义务,我不能给你代码或样品。

0 投票
1 回答
87 浏览

javascript - 属性定义是使用敲除时的方法定义

根据Google 风格指南,方法应该在构造函数的原型上定义,属性应该在构造函数中使用 this 关键字定义。

我使用 Knockout 进行大部分前端开发,它通过将观察属性转换为函数来处理它们。也就是说,我的所有属性现在或多或少都是方法。这是对性能的重大影响吗?是否有任何使用JavaScript getter 和 setter的 Knockout 变通方法?

0 投票
1 回答
1971 浏览

python - 导入时执行哪些顶级代码

在 Google python 风格指南中它指出(接近“主要”的结尾)

“导入模块时将执行顶层的所有代码”

我的印象是顶级代码是 amodule(file)中缩进的任何代码0。那么这是否意味着例如需要将参数传递给它们的函数被执行?这怎么可能,或者我误解了什么是顶级代码和/或在导入过程中是如何执行的?

这是指南的链接