标签: code-cleanup

如何使这个C++代码更干?

我在一个只有一个方法调用不同的类上有这两个方法.显然,这是非常干燥的,特别是因为两者都使用相同的公式.

int PlayerCharacter::getAttack() {
    int attack;
    attack = 1 + this->level;
    for(int i = 0; i < this->current_equipment; i++) {
        attack += this->equipment[i].getAttack();
    }
    attack *= sqrt(this->level);
    return attack;
}
int PlayerCharacter::getDefense() {
    int defense;
    defense = 1 + this->level;
    for(int i = 0; i < this->current_equipment; i++) {
        defense += this->equipment[i].getDefense();
    }
    defense *= sqrt(this->level);
    return defense;
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能在C++中整理它?

c++ dry code-cleanup

8
推荐指数
4
解决办法
2331
查看次数

清洁代码 - 在Java中压缩代码的最佳方法

我的代码看起来像这样:

    for(int i=0; i < a; i++){
        List<Integer> list = elementA.get(i);
        SomeClass rg = new SomeClass(list, a, methodA(i));
        int result = rg.generate();
        var+=methodA2(i, result);
    }
    for(int i=0; i < b; i++){
        List<Integer> list = elementB.get(i);
        SomeClass rg = new SomeClass(list, b, methodB(i));
        int result = rg.generate();
        var+=methodB2(i, result);
    }
Run Code Online (Sandbox Code Playgroud)

如何避免此代码重复?我可以创建这样做的功能,但是如何处理这些不同的方法呢?

java code-cleanup

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

清洁反应原生项目

如何清理反应原生项目?

有没有办法清理反应原生项目,因为我们可以清理xcode项目?

任何帮助将不胜感激!

code-cleanup react-native

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

可以在本地使用lambda吗?

是否可以将lambda函数定义为仅在本地使用,即在当前块(函数/方法)中?考虑一些代码将要执行多次的情况(因此将它放入函数中是合乎逻辑的)但它永远不会在块之外使用.

void foo() {
    auto bar = []() {
        // some code applicable only inside foo()
    };

    bar();
    bar();
    bar();
}
Run Code Online (Sandbox Code Playgroud)

bar()声明为正常功能相比,这种方法有哪些优点和缺点?

c++ lambda function code-cleanup

8
推荐指数
4
解决办法
1257
查看次数

在构建/保存和提交上设置C#editorconfig代码清除

我们的团队希望在C#项目中强制使用样式规则。我读过一段时间,微软说“ .editorconfig是未来”,所以我们想使用它。注意:我们不想使用ReSharper。

C#有很多很棒的规则,现在可以在editorconfig中定义,请参阅Microsoft自己的editorconfig指南

我们要使用它,并在Visual Studio中进行编码时强制执行在编辑器配置中设置的规则,并强制提交给git的代码遵循这些规则。

当添加.editorconfig规则时,我们会像这样对文件进行很好的处理:

使用var警告

在Visual Studio 2019中运行完全启用的“代码清除”,它会根据需要完全格式化我们的代码:

运行代码清理

问题1:如何使“运行代码清除”在保存/生成时自动运行?即使我们将某些规则设置为严重性“:error”,编译器仍然不会抱怨构建时C#文件中的问题。

注意:我已经尝试过在保存时调用Visual Studio的名为Format document的插件,但是它不遵循在editorconfig中设置的所有规则(只有少数规则,如固定制表符/空格和文件换行符结尾)

我们还想确保对git仓库的所有提交都进行格式化。

有一个名为dotnet-format的工具,该工具应该根据editorconfig规则来格式化代码。

我们想添加一个预提交的钩子,该钩子运行以下两个命令:

dotnet tool install -g dotnet-format
dotnet-format
Run Code Online (Sandbox Code Playgroud)

这可以很好地工作,但是问题是dotnet格式也不能解决文件严重性为“:error”的文件中的问题。

dotnet-format的行为与“保存时格式化文档”的行为相同,只是修复了诸如制表符/空格和文件换行符结尾之类的问题。

编辑:根据他们的Wiki, dotnet格式目前仅支持一些规则

问题2:我们如何从命令行运行与Visual Studio 2019中的``代码清理''命令相同的命令?

c# lint code-cleanup .net-core editorconfig

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

如何清理Android项目?

我使用了我们过去创建的Android应用程序的源代码作为另一个应用程序的基础(许多功能类似,但原始应用程序的大约1/3的功能被删除).

我首先复制源树并将新项目导入Eclipse工作区.之后,我删除了一些布局和可绘制文件以及一些.java文件 - 显然在新应用中不需要的文件.

最后,我编译并测试了新的应用程序.现在我想通过删除几乎没有使用的所有内容来对项目进行更彻底的清理.

查找新应用程序中未使用的所有XML和图像文件,Java文件,字符串和颜色资源的最佳方法是什么?通过"未使用",我的意思是它们不会从任何正在执行的应用程序代码中引用(从主要活动开始,转到从其引用的所有其他文件,从这些文件引用的文件 - 等等).

该项目包含数百个Drawables(其中许多都有HDPI,MDPI和LDPI版本),大约一百个左右的布局和十几个不同包中的近千个Java文件.因此,逐个检查它们不是一种选择.

编辑2012年3月:最新版本的android SDK lint工具可以很好地识别未使用的资源.问题是从我收到的数百条其他消息中过滤掉有关未使用资源的消息.当我在我的中型项目上运行链接时,我收到了超过3,000个警告,其中大部分我打算不做任何事情,因为lint无法使用我的XML布局分析我在代码中做了什么.

eclipse android code-cleanup resource-cleanup

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

用Java重构练习

我刚刚阅读了以下论文,发现它非常有用:http: //www.objectmentor.com/resources/articles/Clean_Code_Args.pdf

我正在寻找类似的论文/书籍/教程/等.提供重构和/或更正类设计的逐步练习.我读过福勒的"重构",但我一直在寻找更多实质性的例子.

java refactoring code-cleanup

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

减少方法中的返回语句数

我有一个java代码,其中单个方法中有多个return语句.但是出于代码清理的目的,每个方法只能有一个return语句.可以做些什么来克服这一点.

这是我的代码中的方法: -

public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

        // Kill any old sessions
        //request.getSession().invalidate();
        DynaValidatorForm dynaform = (DynaValidatorForm)form;

        // validate the form
        ActionErrors errors = form.validate(mapping, request);
        if(!errors.isEmpty()) {
            this.saveErrors(request, errors);
            return mapping.getInputForward();
        }

        // first check if token is set
        if(!isTokenValid(request, true)) {
            String errmsg="There was a problem with your login. Please close your browser then reopen it and try again. Make sure to click the Login button only ONCE.";
            request.setAttribute("errormessage", …
Run Code Online (Sandbox Code Playgroud)

java return code-cleanup

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

Python:检测从未在生产中执行的代码

我需要在一个庞大的遗留Python代码库中进行重构.

我常常认为"这些生产线不再在生产中执行".

但我不确定.

有一些测试触及这些线.但我无法确定生产中是否真的没有使用过.

在这种情况下我该怎么办?

这个问题涉及生产系统的覆盖范围.这个问题与测试/ CI期间的覆盖率无关.

我不想评论这些行,因为我不想在生产系统中产生错误.

refactoring legacy-code code-cleanup

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

避免代码中的调试内容混乱

当我写东西时,一半的努力倾向于添加清晰简洁的调试输出,或者当需要调试时可以启用/禁用的功能.

调试功能的一个例子是下载器类,在这里我可以打开一个#define,让它"假装"下载文件,然后简单地把我送回去.这样我就可以测试用户下载文件时会发生什么,而不必等待网络每次都物理地抓取文件.这是很棒的功能,但#ifdefs的代码变得更加混乱.

我最终得到了一堆#define

// #define DEBUG_FOOMODULE_FOO
// #define DEBUG_BARMODULE_THINGAMAJIG
// ...
Run Code Online (Sandbox Code Playgroud)

对于我想看的东西没有注释.代码本身就像是

- (void)something
{
    #ifdef DEBUG_FOOMODULE_FOO
    DebugLog(@"something [x = %@]", x);
    #endif
    // ...
    #ifdef DEBUG_FOOMODULE_MOO
    // etc
}
Run Code Online (Sandbox Code Playgroud)

这对于编写/维护代码非常有用,但它对代码的外观没有任何作用.

人们如何编写毫不费力的即时长期调试"东西"呢?

注意:我不仅在这里谈论NSLogging ......我也在讨论像上面假装下载这样的东西.

iphone debugging coding-style objective-c code-cleanup

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