标签: coding-style

在c#中使用var真的那么糟糕吗?

因此,我正在为我的同事创建一个连接库,以节省他当前项目的时间.我的同事将在他的c#应用程序中使用此库连接到其他api.在库中,我为每个请求创建了Handler(GET/POST/PUT/DEL).当他的应用程序与我的库进行对话时,我将返回如下响应:

return client.PostAsync(url, content).Result;
Run Code Online (Sandbox Code Playgroud)

这将从其余的api返回一个动态对象.

今天他使用我的图书馆,由于某种原因无法与他的应用程序结合使用.我告诉他使用var,它会像这样工作:

var x = API.CreateTraject(parameter1,parameter2);
Run Code Online (Sandbox Code Playgroud)

他拒绝使用var并最终花了大约40分钟来确定如何在没有它的情况下让它工作.然后他指责我返回一个动态对象并且他永远不会使用var因为明显更好所以他告诉我.

我正常作为移动开发人员(IOS/Android)工作,我一直使用var.

现在我的问题是:

使用var真的很糟糕吗?我应该在我的库中转换响应,以便他可以在他的应用程序中明确键入它吗?在我看来,我宁愿使用var并节省一些时间,然后花40分钟尝试去明确.

c# coding-style desktop-application

0
推荐指数
1
解决办法
3073
查看次数

为什么数组的索引/列表不以1开头?

有什么特别的理由吗?我知道这就是语言的编写方式,但我们不能改变它吗?如果指数从1开始,我们将面临哪些挑战?

c c++ python java coding-style

0
推荐指数
1
解决办法
263
查看次数

我应该重构这个深度嵌套的ruby方法吗?

下面的Ruby代码是应该分解成更小的方法还是应该保留"原样",因为如果分解它会碎片过多?我们不确定应该采用什么样的正确方法.我们知道使用单个测试的小方法通常是最佳实践,但是在这种情况下,这样做似乎会使这些代码过于"薄"并大大降低可读性.这类代码在这方面的最佳实践是什么?

if $?.success?
    puts "Running git fetch"
    `git fetch`
    if $?.success?
        puts "Running git reset --hard origin/#{mbranch}"
        `git reset --hard origin/#{mbranch}`
        if $?.success?
            puts "Running git merge origin/#{branch} --no-ff -m \"STAGED:#{ticket} - #{title}\""
            mergeres=`git merge origin/#{branch} --no-ff -m "STAGED:#{ticket} - #{title}"`
            if $?.success?
               `git log -n 1 | grep "STAGED:#{ticket}"`
               if $?.success?
                  ret=true
                  if resjs eq "yes"
                     puts "Entering reservejs directory..."
                     `cd /#{dir}/zipcar-main/zipcar acs/packages/zipsite/www/reservations/reservejs`
                     if $?.success?
                        puts "Running git fetch on reservejs"
                        `git fetch`
                        if $?.success?
                           puts "Running git checkout …
Run Code Online (Sandbox Code Playgroud)

ruby format coding-style rspec indentation

0
推荐指数
1
解决办法
109
查看次数

分号终止if语句是否是良好的编码实践?

我正在循环i,j,k和n.我希望执行一个语句,除非k == jn == k.

如果我使用这样的代码:

if (k != j && n != i)
      //statement
Run Code Online (Sandbox Code Playgroud)

该声明不会在两种情况下执行:

  1. 当k = = j时n == j.
  2. 当k == j时n!= j.(这不是我需要的)

所以我使用了这样的代码:

if (k == j && n == i)
    ;else
    //statement
Run Code Online (Sandbox Code Playgroud)

通过此代码,语句将成功执行,除非k == j && n == i.

以分号结尾的if语句是否是用C++编码的好方法?

c++ coding-style

0
推荐指数
2
解决办法
92
查看次数

是否存在在调用中明确提及参数名称的编码样式?

当我将一些标志传递给函数时,只有它们的值在函数调用中可见.程序员必须在函数定义中查找值对应的内容.这通常意味着查看不同的位置或再次开始键入函数调用以显示IDE提示.

// function definition in header file
void foo(bool output = false, bool formatted = false, bool debug = false);

// function call, it is not intuitive what the values mean
foo(true, false, true);
Run Code Online (Sandbox Code Playgroud)

是否有编码技术来解决这个问题?例如,这个伪代码会更直观,但显然不是有效的C++.

// function call with explicit mention of flags that should be true
foo(output, debug);
Run Code Online (Sandbox Code Playgroud)

我知道有很多选项可以明确提到这些选项,通常需要计算或语法的开销,比如使用std::unordered_map选项.使用C++ 11初始化列表时,语法开销变得更少.但是,如果存在,我想坚持一个普遍的做法.

c++ flags coding-style function-call

0
推荐指数
1
解决办法
95
查看次数

在ruby中有更简洁的编码方式吗?

有没有更好的方法来编写这段代码?对我来说似乎有点冗长.

我正在使用太阳黑子SOLR,该stored()方法返回一个nil或一个值数组,我总是想要第一个值,如果它存在,或只是打印一个空字符串是好的.

 <td><%= search_result.stored(:seo_title).first() if search_result.stored(:seo_title).present?  %></td>
  <td><%= search_result.stored(:title).first() if search_result.stored(:title).present? %></td>
  <td><%= search_result.stored(:publish_at).first() if search.result.stored(:publish_at).present? %></td>
Run Code Online (Sandbox Code Playgroud)

ruby coding-style ruby-on-rails

0
推荐指数
1
解决办法
59
查看次数

替代使用Scala中的"返回"?

我现在正在学习Scala Coursera课程(所以我对语言和范例仍然很陌生).

无论如何,我已经完成了第一课,但是,当我对代码运行styleCheck(也作为等级的一部分运行)时,我收到警告,我应该避免使用return.但是,当我不使用return时,我的if语句就会失效.以下是代码的示例(没有提示,根据Coursera的荣誉政策):

  if(value == 0) return 1
  if(value == 1) return 0
  if(some.other.value.is.something) return 0

  recursiveCall(some, stuff)
Run Code Online (Sandbox Code Playgroud)

基于我对这个问题的理解,我不相信我可以把它们变成if/else的(我确实试过了,然后我的解决方案不正确).所以,我不知道可能有哪些选择.我也不明白为什么我不应该首先使用退货.非常感谢对这两方面的解释/帮助.

coding-style scala

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

类中的Java风格变量声明

我试图了解Python OOP中的最佳实践.

我非常熟悉Java风格的工作流程:

  1. 属性声明
  2. 属性实例化

我喜欢它的是它在我看来提高了可读性:通过简短地查看属性,你就可以确切地知道你将在课堂上工作.

我想在Python中实现相同的结果,虽然我知道在Python中没有"变量声明"这样的东西,但也许某种设计模式可以做同样的事情.

到目前为止,我的中间解决方案是在__init__方法内部"声明" ,其中:

def __init__(self):
    self.attribute1 = None
    self.attribute2 = None 
Run Code Online (Sandbox Code Playgroud)

并在后续方法中稍后实例化这些元素.但我发现它相当丑陋,我会很高兴听到一个更优雅的模式.

python coding-style variable-declaration

0
推荐指数
1
解决办法
82
查看次数

Pythonic初始化函数参数的方法

哪个更pythonic?

一个

def my_function(arg, p=0):
    while arg:
        # do something
         value = arg.pop()
        # save value with a name which uses p for indexing
    p+=1
Run Code Online (Sandbox Code Playgroud)

或B.

def my_function(arg):
    p = 0
    while arg:
        # do something
        value = arg.pop()
        # save value with a name which uses p for indexing
    p+=1
Run Code Online (Sandbox Code Playgroud)

我认为它的一部分很愚蠢,包括p作为函数的参数,因为有人将它设置为一个奇怪的值.但与此同时,我不喜欢让p = 0混乱一个已经非常复杂的功能.

python coding-style function

0
推荐指数
1
解决办法
59
查看次数

在if/else条件中调用方法是不好的做法吗?

这样做是不好的做法:

Scanner scan = new Scanner(System.in);
if(scan.nextInt() == 5) {                //testing if input is equal to 5
    System.out.println("input equals 5");
}
Run Code Online (Sandbox Code Playgroud)

关于什么:

Scanner scan = new Scanner(System.in);
if(scan.nextInt() == scan.nextInt()) {    //testing if two inputted ints are equal to each other
    System.out.println("input1 equals input 2");
}
Run Code Online (Sandbox Code Playgroud)

我在某处读到这会导致"意外结果",但我不知道这意味着什么.我已经测试了这一点,并没有遇到任何意外的事情.

java conditional if-statement coding-style conditional-statements

0
推荐指数
2
解决办法
5209
查看次数