标签: conventions

Java 将字段名作为关键字的约定

名称与java关键字相同的字段有什么约定吗?例如想要创建名称为“public”的字段:

public class Event{
   private boolean public_;
}
Run Code Online (Sandbox Code Playgroud)

java conventions

4
推荐指数
1
解决办法
648
查看次数

Firestore 数据建模文章和类别

语境:

我正在用 Angular 创建一个类似 wiki 的页面。wiki 页面的文章总数可能不会超过 5000 篇。我想获得最有效的(页面加载)方式,但我认为我对此太陌生,无法监督一种选择相对于另一种选择的后果。当然我也想遵守惯例。

问题:

我在 firestore 中有一系列文章,我想对其进行分类。一篇文章应该属于一个类别。一个类别可以属于一个类别(作为子类别)。

现在,哪种数据模型是首选?为什么?

  1. 每篇文章都有一个引用类别文档的属性(参考数据类型)?

  2. 类别文档是否包含一系列对文章的引用?

Firestore-root
   |
   --- categories (collection)
         |
         --- categoryId (document)
               |
               --- name: "Science" //Simple property
               |

               --- articles ['articleId1', 'articleId2', etc.. (long array)]

Run Code Online (Sandbox Code Playgroud)
  1. 完全不同的东西吗?

conventions data-modeling categories firebase google-cloud-firestore

4
推荐指数
1
解决办法
1458
查看次数

Vue.js 命名约定:单实例组件的“子级”

我一直在尝试遵守Vue 风格指南中提出的编码标准,但我不确定如何解决这种特殊情况。根据指南:

  1. 应该只有一个活动实例的组件应该以前缀开头The,以表示只能有一个(link)。
  2. 与其父组件紧密耦合的子组件应包含父组件名称作为前缀(link)。

这些应该如何结合?想象一个具有单实例标题的典型网页。在其中,我们将有许多特定于标题的标题链接(它们不会出现在其他地方)。

如果我遵循 (1),我的标头组件将变为TheHeader,但如果我也遵循 (2),我将不得不将我的标头链接命名为TheHeaderLink。这是一种误导,因为通常会有多个。如果我删除Thefor 链接,我就会失去按字母顺序列出耦合组件的好处。

相反,如果我放弃The标头的 并使用AppHeaderand AppHeaderLink,我就不再传达标头是单例的事实。

我想这可以归结为个人偏好和/或编码团队标准,但也许有一些我没有看到的约定或解决方案?

naming conventions naming-conventions vue.js

4
推荐指数
1
解决办法
1135
查看次数

使用 pragma 约定而不导出

我需要使用 Lua 的 Ada 库。我想使用一个通用包,它与其他数据一起将包含一个函数,该函数将根据数据以不同的名称在 Lua 中注册。据我了解,我应该将这个函数声明为“with Export,Convention => C”,但是当实例化这样一个包的几个实例时,库将包含几个具有相同名称的函数并且它不会编译。在这种情况下是否可以不使用“Export”,而只使用“Convention => C”,因为在 Lua 中仅使用函数引用进行注册?

with System; use System;
with Interfaces.C; use Interfaces.C;

generic

   type Data is private;
   Name : String;

package P is
   
   function Call (Lua : Address) return int
     with Export, Convention => C;
      
   function Get_Name return String is (Name);
   
end P;
Run Code Online (Sandbox Code Playgroud)

export conventions ada

4
推荐指数
1
解决办法
61
查看次数

在 C++ 中表示浮点无穷大的方法

我想在我的程序中用 C++ 表达浮点无穷大。我遇到了两种方法来实现这一目标:使用INFINITYstd::numeric_limits<float>::infinity()

两种选择似乎都有效,但我不确定哪一种是更好的选择。一方面,INFINITYmath.h 中定义了一个简单的宏,使其易于使用。另一方面,std::numeric_limits<float>::infinity()是来自 C++ STL 的函数<limits>,并且是 C++ STL 的一部分,这似乎是一种常规方式。

总之:

我应该在 C++ 程序中使用INFINITYorstd::numeric_limits<float>::infinity()来表示浮点无穷大吗?哪一种被认为是更好的做法,是否有我应该注意的性能或可移植性注意事项?

c++ stl conventions infinity

4
推荐指数
1
解决办法
215
查看次数

定义默认数组值的最简单方法

是否有更简洁的方法来检查数组值以防止PHP通知?目前我这样做:

$email      = (isset($_POST['user_email']))      ? $_POST['user_email']      : '';
$first_name = (isset($_POST['user_first_name'])) ? $_POST['user_first_name'] : '';
$last_name  = (isset($_POST['user_last_name']))  ? $_POST['user_last_namel'] : '';
$birthday   = (isset($_POST['user_last_name']))  ? $_POST['user_last_namel'] : '';
Run Code Online (Sandbox Code Playgroud)

有没有办法做像你只提供默认的JavaScript,像这样?

user.email = response.email || '';
Run Code Online (Sandbox Code Playgroud)

我不想压制通知,但这些丑陋的检查使我的代码混乱.我使用的是PHP 5.2.6.

php arrays associative-array conventions ternary-operator

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

C++析构函数约定

我在C++中看到了很多代码,例如下面的例子,它通常被推荐为一个约定:

class Foo
{
public:

    Foo()
    {
        bar = new int[100];
        size = 100;
    }

    // ... copy/assignment stuff ...

    ~Foo()
    {
        if (bar) // <--- needed?
        {
            delete[] bar;
            bar = nullptr; // <--- needed?
        }

        size = 0; // <--- needed?
    }

private:

    int* bar;
    int size;
};
Run Code Online (Sandbox Code Playgroud)

对我来说,这三条语句if (bar) { ... },bar = nullptr;以及size = 0;是多余的,原因有二:

  1. delete nullptr; 是完全安全的,它什么都不做.
  2. 如果该对象被销毁,内存被释放,我不应该担心的安全设置bar,以nullptrsize为0.

这些理由是否正确?这些陈述真的是多余的吗?如果是这样,为什么人们继续使用并建议它们?我希望看到一些可以通过保持这一惯例来解决的潜在问题.

c++ destructor conventions

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

Golang:声明一个常量

哪个是在Go中声明单个常量的首选方法?

1)

const myConst
Run Code Online (Sandbox Code Playgroud)

2)

const (
        myConst
)
Run Code Online (Sandbox Code Playgroud)

两种方式都被接受gofmt.两种方式都可以在stdlib中找到,尽管1)使用得更多.

const conventions go

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

C中的_StructName约定有什么意义?

在阅读了GTK +库中的一些来源之后,我遇到了我认为是一段奇怪的代码:

typedef struct _GtkWidgetClass GtkWidgetClass;

...

struct _GtkWidgetClass
{
    ...
};
Run Code Online (Sandbox Code Playgroud)

我不明白这段代码是为什么它不是这样写的:

typedef struct
{
    ...
} GtkWidgetClass;
Run Code Online (Sandbox Code Playgroud)

我觉得我错过了一些东西......
如果有人能够填写我为什么GTK(或者其他任何代码)是以这种方式编写的,那将非常感激.

提前致谢

c gtk conventions

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

在切片操作中避免循环

我有以下代码,我使用for循环执行.有没有办法在没有for循环的情况下完成相同的操作?

first_list <- c(1,2,3, rep(1,5), rep(2,5), rep(3,5), rep(4,5))
print(first_list)
[1] 1  2  3  1  1  1  1  1  2  2  2  2  2
[1] 3  3  3  3  3  4  4  4  4  4

breaks <- c(rep(1,3), rep(5,4))
values <- vector()
i <- 1
prev <- 1

for (n in breaks){
    values[i] <- sum(first_list[prev:sum(breaks[1:i])])
    i <- i + 1
    prev <- prev + n
}

print(values)
[1] 1   2   3   5   10   15   20
Run Code Online (Sandbox Code Playgroud)

循环的目的是获取列表的前三个元素,然后将接下来的四个5的总和添加到该列表中.

for-loop r conventions

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