标签: conventions

这不是贬低?

如果我做

double d = 34.56;
int i = (int)d;
Run Code Online (Sandbox Code Playgroud)

我不是"沮丧"吗?

要么

这个术语只用于类和对象吗?


我很困惑,因为在这种情况下,我们从一个更大的double到另一个更小的"向下倾斜" int,但是在课堂上,我们从一个较小的base class到另一个更"低调" derived class.

在某种意义上,这两种惯例是否相反?

c++ conventions downcast

3
推荐指数
1
解决办法
452
查看次数

为什么有些人在循环宏中为子句使用关键字?

它能解决任何问题吗?根据PCL的第一个脚注,如果不是关键字,它会在当前包中实现符号.由于所有关键字都在关键字包中实现,因此可以防止在不同的包中嵌入多个符号.但还有其他优势吗?它创造了什么问题?(我猜这肯定存在问题,因为它不是普遍的惯例)

conventions common-lisp

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

Flyway 命名约定不接受字母数字字符

schema_version 表中的属性“version”是 VARCHAR2(50 BYTE)。

当数据库迁移脚本被命名为VB2042_1_First_Changes.sql Flyway 时抛出错误消息。

错误:版本号应始终从 0..9 开始

varchar2 数据类型应该能够接受字母数字数据。这是 flyway 3.2 中的错误还是有任何可用的解决方法。

sql migration naming conventions flyway

3
推荐指数
1
解决办法
1163
查看次数

“构造函数”的 OCaml 命名约定是什么?

一个 OCaml 模块通常至少包含一个抽象类型,其惯用名称是t. 此外,通常有一个函数可以构造该类型的值。

这通常/惯用的名称是什么?

StdLib 在这里不一致。例如:

  • Array.make一个已弃用的函数Array.create。那么该函数应该命名为make?
  • 另一方面,有Buffer.create但没有Buffer.make。那么该函数应该命名为create?

ocaml conventions naming-conventions

3
推荐指数
1
解决办法
270
查看次数

CMake 脚本的命名约定是什么?

我知道 CMake 使用标准名称“CMakeLists.txt”和add_subdirectory在构建过程中直接调用脚本的函数。

我有一些 CMake 代码,可用于将文件转换为 C++ 字符串,然后可以使用#include指令将其烘焙到程序中。我的根 CMakeLists 文件中的相关代码如下所示(当然大大简化了):

add_custom_command(
  OUTPUT ${CMAKE_BINARY_DIR}/path/to/example.json.txt
  COMMAND ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${STRING_PATH} -P BuildString.cmake
  DEPENDS ${CMAKE_SOURCE_DIR}/path/to/example.json
  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
add_custom_target(strings DEPENDS ${CMAKE_BINARY_DIR}/path/to/example.json.txt)
Run Code Online (Sandbox Code Playgroud)

(在实际代码中,我调用add_custom_command每个需要转换为字符串的文件,然后将所有输出文件名作为列表传递给add_custom_target.)

这是 BuildString.cmake:

set(DELIMITER "")

set(SOURCE ${CMAKE_ARGV1})
set(BUILD ${CMAKE_ARGV2})
set(PATH ${CMAKE_ARGV3})

file(READ ${SOURCE}/${PATH} STRING)
# add semicolons back into string
string(REGEX REPLACE ";" "\\\\;" STRING "${STRING}")
file(WRITE ${BUILD}/${PATH}.txt R\"${DELIMITER}\(${STRING}\)${DELIMITER}\")
Run Code Online (Sandbox Code Playgroud)

如您所见,BuildString.cmake 只需要一个输入文件并将该文件的内容(使用 C++ 原始字符串文字表示法${DELIMITER}作为分隔符包装)输出到构建目录中。

我应该怎么称呼 BuildString.cmake?使用所有带下划线的小写字母 (build_string.cmake) 还是小写字母 (buildString.cmake) 的约定?或者名称应该是名词而不是动词(StringBuilder.cmake)?

(作为旁注,如果您能看到一种无关的方式,我可以改进此代码中的任何一个,那也将不胜感激。)

convention filenames conventions naming-conventions cmake

3
推荐指数
1
解决办法
3214
查看次数

CakePHP 3 中的子查询?

我有两个表productsproduct_categories被通过第三表相关联,products_categories_products根据CakePHP的BelongsToMany约定(编辑:这些关联建立ProductsTable.phpProductCategoriesTable.php)。我想生成一个产品类别列表,使用最畅销产品的图像来代表每个类别。

我可以使用以下功能实现我想要的结果:

public function findImages(Query $query, array $options) {
    $query->select([
        'ProductCategories.id',
        'ProductCategories.name',
        'ProductCategories__image' => '(SELECT Products.image
        FROM product_categories_products AS ProductCategoriesProducts
        LEFT JOIN products AS Products
        ON ProductCategoriesProducts.product_id = Products.id
        WHERE ProductCategoriesProducts.product_category_id = ProductCategories.id
        ORDER BY Products.turnover DESC
        LIMIT 1)'
    ])->where([
        'ProductCategories.name <>' => 'Unsorted'
    ])->order([
        'ProductCategories.name'    => 'asc'
    ]);
    return $query;
}
Run Code Online (Sandbox Code Playgroud)

这是可以接受的还是有更简单的方法来实现我的目标?我真的找不到关于在 CakePHP 3 中制作子查询的主题的任何内容。经过几个小时的挫折后,我偶然发现了上述解决方案。任何建议表示赞赏!

cakephp conventions subquery cakephp-3.1 cakephp-3.x

3
推荐指数
1
解决办法
8463
查看次数

Python 方法:修改原始对象与返回不同的对象

我是 Python 和面向对象编程的新手,有一个非常基本的 101 问题:

我看到一些方法返回一个修改过的对象,并保留原来的:

In: x="hello"
In: x.upper()
Out: 'HELLO'
In: x
Out: 'hello'
Run Code Online (Sandbox Code Playgroud)

我看到其他方法修改和覆盖原始对象:

In: y=[1,2,3]
In: y.pop(0)
Out: 1
In: y
Out: [2, 3]
Run Code Online (Sandbox Code Playgroud)

这两个是常态吗?有没有办法知道我正在为给定的类和方法处理哪种情况?

python functional-programming conventions mutable immutability

3
推荐指数
1
解决办法
1521
查看次数

Golang 编码约定:何时在代码中换行?

关于 Go 我最喜欢的事情之一是gofmt。我喜欢这样一个事实:编码风格在很多方面都是标准化的。

然而,有一件事仍然困扰着我:换行。我发现,如果我查看公司的代码库,就会发现在何时换行的问题上没有明显的一致性。

查看 中的一些代码stdlib,例如此处的fmt代码,我仍然不确定约定是什么(如果存在的话)。

例如,在fmt_integer函数hereif上,语句体后面有换行符,但在fmt_sbx here上没有。

golang 中有换行约定吗?什么被认为是最佳实践?

coding-style conventions go

3
推荐指数
1
解决办法
6452
查看次数

正确使用评论

对于 Python 代码,PEP 257提供了使用文档字符串来记录结构实体的约定:包、模块、函数、类和方法。

\n

这几乎涵盖了所有内容。Stack\xc2\xa0Overflow 有关如何注释 Python 代码的问题总是会引出使用文档字符串的答案。

\n

这在哪里留下评论?Pythonic 方法是专门使用文档字符串而不使用注释吗?或者他们有什么地方吗?

\n

Python 代码中注释的正确用法是什么?

\n

python comments conventions

3
推荐指数
1
解决办法
5210
查看次数

何时使用管道|>与参数

在Reason(和OCaml)中,有一种使用|>运算符传递参数的非传统方法.应该何时使用它的惯例是什么?我目前正在使用它只是因为我找到了它的新颖性.

ocaml conventions reason

3
推荐指数
1
解决办法
366
查看次数