小编eve*_*sor的帖子

将参数名称放在C函数原型中?

在C中声明函数时,应该设置一个原型,在该原型中不需要编写参数名称.只是它的类型就足够了.

     void foo(int, char);
Run Code Online (Sandbox Code Playgroud)

我的问题是,还包括参数名称是一个好习惯吗?

c function-prototypes

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

可重用的构造函数C++

OOP的一个基石是重用代码而不是一遍又一遍地重复它.因此,您的项目缩短并且更具可读性.

C++为您提供了重用方法而不是重复代码所需的所有工具.虽然当涉及到构造函数时,我不知道如何重用它们.

不是在谈论遗产或如何向父亲发送信息.我在谈论重用类本身的构造函数.

JAVA中的类比是这样的:

public Foo() {
    this(0,0,0);//Not needed in this case, just to clarify
}

public Foo(Foo f){
    this(f.getA(), f.getB(), f.getC());
}

public Foo(int a, int b, int c) {
    this.a = a;
    this.b = b;
    this.c = c;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,C++中有没有允许你这样做的语法?

c++ oop constructor reusability

14
推荐指数
2
解决办法
4855
查看次数

调整XORShift发生器以返回最大值

我需要在最大值内生成随机整数.由于性能至关重要,我决定使用XORShift生成器而不是Java的Random类.

long seed = System.nanoTime();
seed ^= (seed << 21);
seed ^= (seed >>> 35);
seed ^= (seed << 4);
Run Code Online (Sandbox Code Playgroud)

这个实现(源代码)给了我一个长整数,但我真正想要的是一个介于0和最大值之间的整数.

public int random(int max){ /*...*/}
Run Code Online (Sandbox Code Playgroud)

实现此方法的最有效方法是什么?

java random performance

10
推荐指数
1
解决办法
4874
查看次数

某些语言是否允许负模数?

我很好奇这些语言(Java,C ...)忽略了模数运算的数学定义.

在模块操作中返回负值的重点是什么(根据定义,应该总是返回正数)?

c java math modulus

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

UML的命名约定

UML有没有名称约定?

我有兴趣知道如何命名类,包和方法.但是,如果有一些文档指定了每个UML图的所有命名约定,请分享它.

uml naming-conventions

8
推荐指数
1
解决办法
4058
查看次数

服务器端或客户端{{mustache}}?

{{mustache}}在我看来,是一个很棒的模板库.我面临的问题是是在客户端还是在服务器端使用它.

我正在开发一个在线杂志,它将有一个主要页面,其中包含一篇大文章,其余文章的篇幅较小.

例如

+-------------------------------------------------+
|                                                 |
|             Big Article Image                   |
|                                                 |
|                                                 |
+-------------------------------------------------+
     Title
     Author

+------------+     +------------+     +-----------+
|   Image    |     |   Image    |     |   Image   |
+------------+     +------------+     +-----------+
  Title               Title              Title
  Author              Author             Author
...
Run Code Online (Sandbox Code Playgroud)

服务器端选项

使用{{mustache}}在服务器端,作为一个PHP库:当浏览器请求页面时,服务器将完成模板,并将其发送回.
优点:

  • 加载时间会更好.浏览器一旦收到html代码,就会知道它要向服务器询问哪些其他资源.

缺点:

  • 很难与客户端集成,{{mustache}}因为在解析模板时,所有未匹配的"胡须标签"都会被删除(我不知道是否可以轻松,干净地避免这种情况).
  • 我不喜欢从服务器端修改接口,我宁愿从客户端进行,因此3层架构似乎更清晰(你可能会有所不同).
  • 我以前没有服务器端的经验{{mustache}}.

客户端选项

而不是简单的{{mustache}}我通常使用ICanHas.js,它包装{{mustache}}并使其非常容易和舒适:当浏览器要求页面时,HTML发送,包含所有js代码以询问服务器JSON哪个包含标题,作者和文件名图片.
优点:

  • 增强3层架构.
  • 像无限滚动(其他ajax的东西)这样的事情非常简单.

缺点:

  • 加载时间恶化.浏览器需要接收代码,发出JSON请求,然后向服务器询问发现的资源JSON(如图像文件名).

根据您的经验,您认为哪一个是最佳解决方案?为什么?

architecture mustache web mustache.php

6
推荐指数
1
解决办法
2322
查看次数

按属性 RESTful 获取

在仅获取具有特定值的URL时,以下哪个 URL 更符合RESTful ?itemsattribute

  1. GET: /items/attribute/{value}

  2. GET: /items/findByAttribute?attribute={value}

  3. GET: /items?attribute={value}

请记住,GET: /items返回所有项目。


例子

  1. GET: /shirts/color/FF9900

  2. GET: /shirts/findByColor?color=FF9900

  3. GET: /shirts?color=FF9900

rest

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

将 TypeScript 与 Jest 一起使用不会捕获语法错误

将 typescript 编译回 js 时,您可以指定--alwaysStrict以下选项:

以严格模式解析并为每个源文件发出“use strict”

因此,如果函数中缺少强制参数,它就会被这种严格模式捕获。

我们正在使用ts-jest,因此我们可以使用 Jest 来测试我们的 Typescript 代码。我们面临的问题是我们还没有找到一种方法来模仿严格的解析行为。

这真的很烦人,因为所有测试似乎都通过了,但有时会出现语法错误,我们只有在创建生产版本时才会注意到(我们设置--alwaysStrict

在我们的jest.config.js我们有:

module.exports = {
  roots: ["<rootDir>/src"],
  transform: {
    "^.+\\.tsx?$": "ts-jest"
  },
  testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
  moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
  "testEnvironment": "node"
};```
Run Code Online (Sandbox Code Playgroud)

javascript typescript jestjs

5
推荐指数
1
解决办法
1878
查看次数

使用的内存中的打字稿和 Googleapis 激增

我们一直在跟踪内存不足错误,该错误似乎在构建步骤中不时发生。
我们终于确定了提交。所述提交导致tsc --alwaysStrict构建从 175MB (RAM) 完成构建到 656MB。

该提交仅将googleapis库添加到package.json并像这样使用它import { google } from "googleapis";。仅这两个变化就造成了这一峰值。

我们看到的另一件事是,在package.json构建过程中包含的库增加了 100MB,但是,一旦我们添加import它,它就会一直增加到 600MB。
重要的是要说我们只对 gSheets 感兴趣。

我看到了一些未来的选择,但我不喜欢其中任何一个:

  1. 增加服务器的RAM(目前为1GB)
  2. 为此目的使用自定义或非官方库

有没有另一种方法来解决这个问题?

node.js typescript google-sheets-api

5
推荐指数
1
解决办法
146
查看次数

Java中新的Object [] {}意味着什么?

在Java中,您可以执行以下操作:

new Object[] { /* parameters separated by comma */};
Run Code Online (Sandbox Code Playgroud)

实际上,这是在Spring框架的预准备语句中使用的.例如:

getJdbcTemplate().queryForList(
   "DELETE FROM foo WHERE id = ?", //the "?" mark will be substituted by "3"
   new Object[] { 3 }, //What kind of magic is this?
   String.class //Irrelevant in this example
);
Run Code Online (Sandbox Code Playgroud)
  • 怎么称呼?
  • 那里发生了什么?
  • 你怎么能访问这些参数?

java

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