标签: redundancy

你把super()调用作为构造函数的开头吗?

这是一个关于编码风格和推荐做法的问题:

正如在问题的答案中解释的那样,在构造函数中放置super()是不必要的?,如果你为一个应该使用超类中的默认(no-arg)构造函数的类编写构造函数,你可以super()在构造函数的开头调用:

public MyClass(int parm){
  super(); // leaving this out makes no difference
  // do stuff...
}
Run Code Online (Sandbox Code Playgroud)

但你也可以省略通话; 在两种情况下,编译器都会像super()调用一样.

那么,你是否将呼叫置于你的构造函数中?

一方面,人们可能会争辩说,包括super()使事情更明确.OTOH,我总是不喜欢编写冗余代码,所以我个人倾向于将其删除; 然而,我经常在其他人的代码中看到它.

你有什么经历?你有一种或另一种方法有问题吗?您是否有规定一种方法的编码指南?

BTW:相关问题(仅供参考):

当没有其他构造函数时,是否有理由显式编写默认构造函数?

java redundancy constructor coding-style super

7
推荐指数
1
解决办法
1476
查看次数

cppcheck认为我有"冗余代码:找到一个以数字常量开头的语句"

Cppcheck(版本1.46.1)为这样的枚举提供以下警告:

enum DATABASE_TYPE
{
    DATABASE_TYPE_UNKNOWN = -1, // <- line of warning
    DATABASE_TYPE_ORACLE,
    DATABASE_TYPE_MSACCESS
};
Run Code Online (Sandbox Code Playgroud)

冗余代码:找到一个以数字常量开头的语句

我不认为,这是多余的.能够做这样的事情是非常重要的.

这是cppcheck的错误还是我没有看到什么?

更新

我设法把它归结为一个最小的例子.cppcheck有两个(进一步的)错误,这看起来像我的减少没有任何影响.
有5个文件:a.h,a.cpp,b.h,b.cppinc.h具有以下内容.
VC9在没有警告的情况下编译它(警告级别4).

// a.h
#pragma once
#include "inc.h"

// a.cpp
#include "a.h"
#include "b.h"

int main()
{
    return 0;
}


// b.h
#pragma once
#include "inc.h"

// b.cpp
#include "b.h"

//inc.h
#pragma once

enum MY_ENUM_TYPE
{
    INVALID_VALUE = -1,
    FIRST_VALUE,
    SECOND_VALUE
};
Run Code Online (Sandbox Code Playgroud)

所以到现在为止,我非常有信心这是一个cppcheck的错误.任何不同意见?

c++ enums redundancy warnings cppcheck

7
推荐指数
1
解决办法
3347
查看次数

如何在NLog中将不同的布局应用于同一目标?

NLog允许我用来SplitGroup将我的消息记录到多个目标.我想使用此功能一次将每条消息记录到常见的,特定用户和日期的日志中:

<variable name="commonLog" value="${logDir}\Common.log" />
<variable name="username" value="${identity:fSNormalize=true:authType=false:isAuthenticated=false}" />
<variable name="userLog" value="${logDir}\ByUser\${username}.log" />
<variable name="dateLog" value="${logDir}\ByDate\${shortdate}.log" />

<target name="logFiles" xsi:type="SplitGroup">
  <target xsi:type="File" fileName="${commonLog}" layout="${myLayout}" />
  <target xsi:type="File" fileName="${userLog}" layout="${myLayout}" />
  <target xsi:type="File" fileName="${dateLog}" layout="${myLayout}" />
</target>
Run Code Online (Sandbox Code Playgroud)

这很好,但我也想对不同级别的严重性使用不同的布局.例如,errorLayout将包含异常信息和插入[!]标记,以便稍后可以突出显示BareTail等日志查看器中的错误:

<variable name="stamp" value="${date} ${username} ${logger}" />

<variable name="debugLayout" value="${stamp} ... ${message}" />
<variable name="infoLayout" value="${stamp} [i] ${message}" /> 
<variable name="warnLayout" value="${stamp} [!] ${message}" />
<variable name="errorLayout"
   value="${warnLayout}${newline}${pad:padding=10:inner=${exception:format=ToString}}" />

<!-- …
Run Code Online (Sandbox Code Playgroud)

c# configuration redundancy nlog nlog-configuration

7
推荐指数
2
解决办法
6386
查看次数

复制与冗余

我目前正在阅读有关分布式系统的信息,我面临着两个以类似方式描述的不同术语:复制冗余

谁能部分解释每个术语?

replication redundancy distributed-system

7
推荐指数
1
解决办法
2553
查看次数

使用免费数据库和带有Spring和Hibernate Web应用程序的Java进行冗余的数据库复制

我有这个想法:

每个服务器(他们全部都设置相同)

我将负载均衡器放在服务器前面,并在主负载均衡器出现故障时更换负载均衡器.

我使用Terracotta在服务器之间复制会话信息.如果服务器出现故障,用户应该能够在另一台服务器上继续工作,理想情况就好像什么都没发生一样.剩下的"解决"(因为我实际上没有对此进行过测试,例如不知道我应该使用什么作为负载均衡器)是需要的数据库复制.

如果用户与应用程序交互并且数据库发生更改,则必须将该更改复制到其他服务器计算机上的数据库服务器.我应该怎么做呢?我应该使用MySQL PostgreSQL还是其他东西(理想情况下,由于预算有限,它们是免费的)?上面的其他事情听起来合理吗?

澄清:我集群首先获得高可用性,我希望能够添加服务器并同时使用它们以获得高可扩展性.

java mysql database postgresql redundancy

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

避免Python中的冗余

我最近开始使用Python 2.6 for Ubuntu Server admin,并且有两个关于冗余的小问题:

首先是进口:它们看起来都像

从类导入类

from class import Class
Run Code Online (Sandbox Code Playgroud)

第二件事是__init__方法:

__init__(self,arg1,...,argn):
    self.arg1 = arg1
    ...
    self.argn = argn
Run Code Online (Sandbox Code Playgroud)

有没有办法避免这些重复?

python import redundancy init

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

Node.js - 在这里需要mongoose导致冗余?

我有以下Node.js目录结构.

|--app/
   |--app.js
   |--routers/
      |--index.js/
   |--models/
      |--schemas.js
      |--post.js
Run Code Online (Sandbox Code Playgroud)

app.js中,有一条线就像这样mongoose.connect('mongodb://localhost/' + config.DB_NAME);.在schema.js中:

var mongoose = require('mongoose')
    , Schema = mongoose.Schema
    , ObjectId = Schema.ObjectId;

var PostSchema = new Schema({
    title: String
    , author: String
    , body: String
    , creataAt: { 
        type: Date
        , default: Date.now
    }
});

// other schemas goes here

module.exports.PostSchema = PostSchema;
Run Code Online (Sandbox Code Playgroud)

post.js中:

var mongoose = require('mongoose')
    , PostSchema = require('./schemas').PostSchema
    , PostModel = mongoose.model('Post', PostSchema);

module.exports = PostModel;
Run Code Online (Sandbox Code Playgroud)

在 …

redundancy arguments require mongoose node.js

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

如何使用另一个类中的代码?(JAVA)

我正在进行坦克游戏,为了避免冗余,我正在进行课程扩展.我的MenuPanel看起来像这个atm(我只编写了对问题很重要的代码)(knop = dutch for button)

public class MenuPanel extends JPanel implements ActionListener
{

    private JButton playKnop, highScoreKnop, quitKnop, HTPKnop;
    private ImageIcon play, HS, quit, HTP;
    private Tanks mainVenster;

    public MenuPanel(Tanks mainVenster) 
    {
        this.mainVenster = mainVenster;
        this.setLayout(null); 

        int x = 95; 
        int width = 200; 
        int height = 50;    


        play = new ImageIcon(PlayPanel.class.getResource(/buttons/PLAY.png));
        playKnop = new JButton(play);
        playKnop.setBounds(x, y, width, height);
        playKnop.addActionListener(this);

        HS = new ImageIcon(PlayPanel.class.getResource(/buttons/HS.png));
        highScoreKnop = new JButton(HS);
        highScoreKnop.setBounds(x, 460, width, height);
        highScoreKnop.addActionListener(this);

        HTP = new ImageIcon(PlayPanel.class.getResource(/buttons/HTP.png));
        HTPKnop = …
Run Code Online (Sandbox Code Playgroud)

java redundancy extending

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

C#Designer:从Design.cs中删除冗余代码

我有一个表单上有几个按钮,标签和其他东西,但设计师似乎记得以前被删除的那个表单的旧元素.

无论如何都要"刷新"form.Designer.cs代码,以告知它当前在表单上的元素以及哪些元素不是.

为此提供帮助;)

c# redundancy designer visual-studio winforms

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

使用JOIN时,如何避免结果集中的冗余数据字段?

以下联接应该为具有特定状态的用户检索用户信息及其消息:

SELECT * FROM user, message WHERE message.user_id=user.id AND user.status=1
Run Code Online (Sandbox Code Playgroud)

问题是结果集中某个用户的所有行都包含重复有关该用户的相同数据的冗余列(从用户表中检索的那些字段),只有来自消息表的字段包含非冗余信息.像这样的东西:

user.id  username email            message.id  subject
1        jane     jane@gmail.com   120         Notification 
1        jane     jane@gmail.com   122         Re:Hello 
1        jane     jane@gmail.com   125         Quotation
2        john     john@yahoo.com   127         Hi jane
2        john     john@yahoo.com   128         Fix thiss 
2        john     john@yahoo.com   129         Ok
3        jim      jim@msn.com      140         Re:Re:Quotation
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,许多数据都是冗余的,我们不希望先找到用户,然后在循环结构或类似的东西中查看他们的消息.应不惜一切代价避免导致微查询的循环.

我不关心我的程序输出,在UI中处理得很好.我也许通过返回此查询的结果产生的网络流量可能会大大减少,如果我能够设法消除与该用户相关的所有行中的用户数据的重复.

sql redundancy join

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