标签: code-readability

只调用一次的代码块 - 值得拥有自己的方法吗?

通过观察各种Android应用程序的源代码(不是我编写的),我注意到了将某些代码片段放入自己的方法中的模式,尽管实际上没有任何代码重用,因为这些方法只在整个过程中被调用一次应用.

到目前为止,我有一个经验法则,规定如果在应用程序代码中使用两次或更多代码,那么它就有其自身的方法,仅仅是为了消除代码冗余.

但是看到那些整齐地将代码块分解成自己的方法(以及自己的方法调用开销),我开始说,也许我错过了一些东西.

除了用于文档目的之外,还有什么其他原因可以证明只将4行代码(只调用一次!)放入自己的方法中?

java code-reuse refactoring code-readability

5
推荐指数
2
解决办法
596
查看次数

标题充满了内联函数,我可以将代码移到头文件之外并仍然内联所有内容吗?

我已经结束了许多小内联函数在头文件中,我包含在许多编译单元中,代码由编译器正确内联,程序就像一个魅力.

但现在头文件是非常不寻常的(作为头文件),为了使它更具可读性我想做这样的事情:

#ifndef MY_HEADER_H
#define MU_HEADER_H

static inline 
void my_fnct (my_param a);

#include "my_header.inline.c"

#endif
Run Code Online (Sandbox Code Playgroud)

和文件my_header.inline.c将是:

static inline 
void my_fnct (my_param a)
{
    // .. my code ..
}
Run Code Online (Sandbox Code Playgroud)

然后,当我想要这些功能时,我只需要包含头文件.

我的问题是:有一个更好的方法来实现这一点,而无需填充太多代码的头文件?或者我可以做到这一点,并期望其他开发人员没有问题地理解这些代码?

c inline header code-readability

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

我可以使用R属性来保存物理单位吗?

我(我应该)可以使用R属性来保存物理单位和类似信息作为用户的提示吗?

epsilon0 <- 8.854188e-12
# name <- "electric constant"
# source <- "CODATA"
# unit <- "F m-1"
Run Code Online (Sandbox Code Playgroud)

r const units-of-measurement code-readability

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

一般编程 - 否则,或者为了清楚起见

在一个变量可能有两个不同的值的情况下,如果它是一个变量,你会做一些不同的事情,如果是另一个变量,你会这样做:

if(myVariable == FIRST_POSSIBLE_VALUE) { ... }
else { ... }
Run Code Online (Sandbox Code Playgroud)

或者你会这样做:

if(myVariable == FIRST_POSSIBLE_VALUE) { ... }
else if (myVariable == SECOND_POSSIBLE_VALUE) { ... }
Run Code Online (Sandbox Code Playgroud)

为清楚起见,在一种情况下,读者不一定能够告诉他们做同样的事情(但是否则是"不必要的"表达)?那你会怎么做?谢谢!

编辑:实际上有更多不同的选项,如:三元运算符,if-else,if-elseif,if-elseif-else,-if-else(带断言),switch.每个人都有自己的位置,但很难决定......

if-statement code-readability clarity

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

我如何找到方法?

这是一个有点普遍的计算机问题.我总是能够遵循编程的LOGIC,但是当我去编写代码时,我总是发现我不知道某种方法或其他方法来获得我需要完成的工作.当我看到它时,我总是想,"当然!".

您如何为"内置"编程需求找到相关方法?我不喜欢重新发明轮子,但我发现很难找到我需要做的事情.

language-agnostic code-readability

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

哪个快:查询语法与循环

下面的代码提供了两种方法,它们生成总和小于100的整数对,并且它们根据它们与(0,0)的距离按降序排列.

    //approach 1
    private static IEnumerable<Tuple<int,int>>  ProduceIndices3()
    {
        var storage = new List<Tuple<int, int>>();
        for (int x = 0; x < 100; x++)
        {
            for (int y = 0; y < 100; y++)
            {
                if (x + y < 100)
                    storage.Add(Tuple.Create(x, y));
            }
        }
        storage.Sort((p1,p2) =>
           (p2.Item1 * p2.Item1 + 
           p2.Item2 * p2.Item2).CompareTo(
           p1.Item1 * p1.Item1 +
           p1.Item2 * p1.Item2));
        return storage;
    }

    //approach 2
    private static IEnumerable<Tuple<int, int>> QueryIndices3()
    {
        return from x in Enumerable.Range(0, 100)
               from y in …
Run Code Online (Sandbox Code Playgroud)

c# performance loops code-readability linq-query-syntax

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

是否有其他方法可以解析OCaml中的选项类型?

OCaml的选项类型在您的函数可能不返回任何内容的情况下非常有用.但是当我在很多地方使用它时,我发现在一直处理Some案件和None案件时很麻烦match ... with.

例如,

let env2 = List.map (fun ((it,ie),v,t) ->
  match t with
  | Some t -> (v,t)
  | None   ->
    begin
      match it with
      | Some it -> (v,it)
      | None    -> failwith "Cannot infer local vars"
    end) ls_res in
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以简洁地解构选项类型?

ocaml ml code-readability

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

'this'关键字的开头

这似乎是一个常见的问题,但我搜索了SO和谷歌,找不到我正在寻找的东西:

this在Java 中调用关键字的开销是多少?我知道在C++中由于解除引用当前对象指针而产生一些最小的开销.Java会产生同样的开销吗?进行多次调用是否不太理想this.这主要是可读性与优化的问题.

java optimization code-readability

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

我如何获得@getter和@setter?

我经常在代码中看到以下注释:

@Getter
@Setter
public int test = 1;
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用这个注释创建gettersetter使用方法.但是我需要使用哪些类/库来使用这些注释?

java annotations code-readability getter-setter lombok

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

我应该如何处理使用块中的空对象?

鉴于这样的情况:

using (var foo = CreateFoo()) {
    if (foo != null) {
        // do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我想避免嵌套if.遗憾的是,显而易见的解决方案是不可能的,因为break不能用于:

using (var foo = CreateFoo()) {
    if (foo == null) {
        break;
    }
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

是否有一种模式仍然可以避免由此引起的额外缩进if != null

.net c# using code-readability

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