标签: code-readability

可读性与性能

最近我们讨论了局部变量对Java代码的性能与可读性的影响.我的一些同事的意见是这样的声明

new DoSomethingCmd(new SelectionContext(context, keys), infoStuff.getCurrentRole().getRole_id()).execute(getResultContainer());
Run Code Online (Sandbox Code Playgroud)

将为应用程序提供相当大的性能提升.他们愿意为此牺牲代码可读性.他们是否正确地声称这个?上述版本的性能是否比这个版本高得多?

final SelectionContext selectionContext = new SelectionContext(context, keys);
final String roleId = infoStuff.getCurrentRole().getRole_id();
final DeleteSomethingCmd deleteSomethingCmd = new DeleteSomethingCmd(selectionContext,roleId);
deleteSomethingCmd.execute(getResultContainer());
Run Code Online (Sandbox Code Playgroud)

我意识到第一个语句本身并不难以掌握,但是当大多数代码都是这样构造时,复杂性会相当快.

谢谢您的意见.

java performance code-readability

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

如何在PHP中使SQL查询更具可读性?

当您在SQL查询中有一个长字段时,如何使其更具可读性?

例如:

public function findSomethingByFieldNameId($Id) {
        $sql = "SELECT field1, field2, field3 as Field3_Something, field4, field5, field6, field7, field8, field9
                      FROM table
               JOIN table2 AS TNS ON TNS.id = table.id
                      WHERE something = 1";
 return $this->db->fetchData($sql, null, 'all');
    }
Run Code Online (Sandbox Code Playgroud)

php mysql readability code-readability

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

单元测试 - 记录然后失败?

我习惯试驾我的代码.现在我是Go的新手,我正试图尽快做到正确.我在标准库中使用测试包似乎已经足够好了.(我也喜欢它不是另一个外部依赖.我们目前总共有2个依赖项 - 与任何Java或Ruby项目相比.....)无论如何 - 看起来像golang中的断言看起来像这样:

func TestSomething(t *testing.T) {
  something := false
  if something {
    t.Log("Oh noes - something is false")
    t.Fail()      
  }
}
Run Code Online (Sandbox Code Playgroud)

我觉得这个很冗长,而且想在一行上做:

Assert( something, "Oh noes - something is false" )
Run Code Online (Sandbox Code Playgroud)

或类似的东西.我希望我在这里错过了一些明显的东西.什么是最佳/惯用的方式去做?

更新:只是为了澄清.如果我要做这样的事情:

func AssertTrue(t *testing.T, value bool, message string) {
  if value {
    t.Log(message)
    t.Fail()
  }
}
Run Code Online (Sandbox Code Playgroud)

然后像这样写我的测试

func TestSomething(t *testing.T) {
  something := false
  AssertTrue(t, something, "Oh noes - something is false")
}
Run Code Online (Sandbox Code Playgroud)

那么它会不会是的方式来做到这一点?

unit-testing go code-readability

14
推荐指数
1
解决办法
5796
查看次数

C++ 11基于范围和map:可读性

新的基于范围的for循环确实提高了可读性,并且非常易于使用.但是,请考虑以下事项:

map<Foo,Bar> FooAndAssociatedBars;

for (auto& FooAndAssociatedBar : FooAndAssociatedBars) {
    FooAndAssociatedBar.first.doSth();
    FooAndAssociatedBar.second.doSomeOtherThing();
}
Run Code Online (Sandbox Code Playgroud)

它可能是一个细节,但我发现如果我能做到这样的话会更具可读性:

for ( (auto& foo, auto& bar) : FooAndAssociatedBars) {
    foo.doSth();
    bar.doSomeOtherThing();
}
Run Code Online (Sandbox Code Playgroud)

你知道一个等价的语法吗?

编辑: 好消息:C++ 17有一个解决这个问题的提议,称为结构化绑定(见1).在C++ 17中,您应该能够编写:

tuple<T1,T2,T3> f(/*...*/) {
    /*...*/ 
    return {a,b,c};
}
auto [x,y,z] = f(); // x has type T1, y has type T2, z has type T3
Run Code Online (Sandbox Code Playgroud)

这解决了这个可读性问题

c++ foreach dictionary code-readability c++11

11
推荐指数
1
解决办法
6141
查看次数

处理单身/复数最优雅的方式?

假设您正在制作博客软件,并希望显示条目获得的评论数量.你可以这样做:

[Entry title]
[Content........]
[ <?php print($numComments;) ?> Comments]
Run Code Online (Sandbox Code Playgroud)

这可能导致:

[Entry title]
[Content........]
5 Comments
Run Code Online (Sandbox Code Playgroud)

但如果一个条目只有1个评论,我希望该行说"评论"而不是"评论".并且内联if/elses是丑陋和重复的.

处理这个问题的最佳方法是什么?

code-readability

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

感伤的代码

我遇到过一篇讨论"代码钦佩"问题的文章.基本上,作者讨论了开发人员应该如何对他们编写的代码持更多怀疑态度.我们如何过分"钦佩"我们的代码,将自己与自己联系起来,使我们更容易受到可能在我们面前的错误和其他不幸事件的影响.

你觉得这个问题怎么样?您是否有关于如何避免/更多地意识到这个问题的更多提示?

readability code-readability

10
推荐指数
4
解决办法
1171
查看次数

有没有标准化C++代码格式的工具?

我正在寻找一种适用于Windows的工具,可以在我的代码库中重新格式化一些C++代码.基本上,我有一些我之前写过的代码,我想使用它,但它与我在最近的项目中使用的样式不符.

以标准方式重新格式化C++代码的最佳方法是什么?

Billy3

c++ code-formatting code-readability

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

提高对不熟悉代码的理解的工具和技术?

我意识到,作为一名编程学生,我最大的弱点就是我很难理解其他人的代码.

我对"教科书"代码或明确注释的代码没有任何麻烦,但是当给出几百行的程序,包含十几个不同的函数而没有注释时,我发现它甚至很难开始.

我知道这种类型的代码是我在职业生涯中可能遇到的代码,我认为代码理解能力差对我来说是一个很大的障碍,所以我想专注于提高我的技能在这方面.

哪些工具/技术有助于提高您的体验中的代码理解力?

你如何处理不熟悉的,未注释的代码?为什么?你认为你的技术有用吗?

谢谢

readability code-readability

9
推荐指数
2
解决办法
1398
查看次数

if语句太多了

我有一些话题需要讨论.我有一个24 ifs/elifs 的代码片段.Operation是我自己的类,表示类似的功能Enum.
这是一段代码:

if operation == Operation.START:
    strategy = strategy_objects.StartObject()
elif operation == Operation.STOP:
    strategy = strategy_objects.StopObject()
elif operation == Operation.STATUS:
    strategy = strategy_objects.StatusObject()
(...)
Run Code Online (Sandbox Code Playgroud)

从可读性的角度来看,我有一些顾虑.更好的是将它改成24个类并使用多态?我不相信它会使我的代码可维护......从一方面来说,这些代码if非常清晰,并且不应该难以理解,另一方面,有太多if的代码.

我的问题相当普遍,但是我用Python编写代码所以我不能使用像switch.

你怎么看?


更新:

一个重要的是StartObject(),StopObject()并且StatusObject()是构造函数,我想分配一个对象来strategy引用.

python conditional if-statement code-readability code-maintainability

9
推荐指数
1
解决办法
7808
查看次数

如何在研究报告中格式化代码

我目前正在撰写正式的研究报告,我将在此报告中包含代码.

问题:是否有可接受的方式在研究报告中显示代码?我在考虑字体,间距等问题,以及代码是应该在文档内部还是在附录中显示.

代码将是JavaScript和PHP.代码的所有部分都不会超过25行(因此它们仅仅是片段).将有大约六个片段.每个片段都有几个段落,解释代码中发生的事情,并讨论其优缺点.

我没有与提交报告的机构联系,也没有关于如何格式化代码的公布指南(请不要质疑这些要点).

coding-style readability report code-readability

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