标签: coding-style

如何在方法中使用不同的类作为参数

我要解释我的问题这么清楚我可以:)

我在jar文件中使用webservice.在这个jar文件中,我将使用不同的类.每节课一年:

  • 2012年有一个名为Service12的课程.
  • 2013年有一个名为Service13的课程.
  • 2014年有一个名为service14的课程.

等等.

这些类只是使用,我无法更改此jar文件中的任何内容.

我会在webService中使用每年的课程,但不会使用if-else,因为它超过20年的服务方法:

public myObj methodA (int year){
    ServiceXX serviceXX = myWebService.useThisService(ServiceXX.class);
}
Run Code Online (Sandbox Code Playgroud)

为MyWebService有这样一个泛型方法:

public <T> T useThisService(Class<T> serviceClass) {        
    return (T) this.getService(serviceClass);
}
Run Code Online (Sandbox Code Playgroud)

我怎么能没有任何这样的代码了methodA if-else我可以正确的用户ServiceXX各为一年.

希望它足够清楚,以获得帮助.

java generics coding-style java-ee

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

ios中评论中惊叹号的重要性

我见过程序员使用以下格式的评论:

/*! This is a sample comment
*/
Run Code Online (Sandbox Code Playgroud)

我在ios开发时第一次看到了这样的评论,即在objective-c中.这里有'!'(感叹号)有什么意义?

comments coding-style objective-c ios

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

是否可以在头文件中使用"using namespace"语句?

许多程序员告诉我,using namespace <x>在头文件中有一个语句是个坏主意.我一直盲目地遵循这个建议,直到现在却不明白为什么会如此.现在我正在开发一个包含大量命名空间的非常复杂的项目.有时我发现在开头告诉编译器关于命名空间而不是每次都要输入nested ::'是太诱人了.例:

ALongNameSpaceName::LongerNamespaceName::BasicUtilityFunctionUsedVeryCommonly
Run Code Online (Sandbox Code Playgroud)

这条规则背后的理由是什么?在哪些情况下我可以忽略此规则?

c++ coding-style namespaces

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

正确缩进红宝石中的空白线?

对于空白行的缩进,是否有红宝石编码风格的最佳实践?例如,如果我在一个类中的两个方法定义之间有一个空行,那么空白行应该缩进到与方法定义相同的级别,还是应该是真的空白?

class Foo
  def bar
  end

  def baz
  end
end
Run Code Online (Sandbox Code Playgroud)

对于一个具体的例子,在上面的代码中,应该之间的线的endbar的定义和def baz行包含两个空间类似上面和下面的线路和一个新行,或简称为换行?

我试过谷歌搜索这个问题,搜索SO,看着风格指南,但是空洞.也许我在奇怪地说它?没关系吗?有不同的意见吗?Rails中是否有一个标准,特别是与更广泛的Ruby社区不同?

ruby coding-style ruby-on-rails

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

Python中的编码风格

我最近接受了一家知名硅谷公司的采访.我被要求用O(n)时间复杂度编写以下问题的代码.

题 :

编写一个给定整数数组的函数.如果任何值在数组中出现至少两次,它应该返回true,如果每个元素都是不同的,它应该返回false.

问题的关键是使用哈希映射.我在python中编写了以下代码:

def containsDuplicate(arr):
    hashi={}
    for i in arr:
        try:
            hashi[i]+=1
            return 1
        except KeyError:
            hashi[i]=1
    return 0
Run Code Online (Sandbox Code Playgroud)

整体访谈进展顺利,我能够找出所有问题的最佳解决方案(有效的解决方案).后来我从公司收到一封邮件,说我不是这个职位的最佳匹配.当被问及拒绝的原因时,我被告知要编写我的编码风格.

当人们说我需要改进我的编码风格时,人力资源意味着什么?为上述问题编写解决方案的最佳方法是什么?

编辑:

在再次阅读代码后,我认为甚至没有必要这样做hashi[i]+=1.只是return 1已经足够了,但我不认为他们仅仅因为我的编码中的这个小错误而拒绝了我.

python arrays coding-style hashmap python-2.7

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

Python:使用缩略语命名

在Python代码中,在命名类,方法和变量时,处理众所周知的首字母缩略词的规范方法是什么?

例如,考虑一个处理RSS提要的类.那会是这样的:

class RSSClassOne:
    def RSSMethod(self):
        self.RSS_variable = True

class ClassRSSTwo:
    def MethodRSS(self):
        self.variable_RSS = True
Run Code Online (Sandbox Code Playgroud)

或这个:

class RssClassOne:
    def rssMethod(self):
        self.rss_variable = True

class ClassRssTwo:
    def MethodRss(self):
        self.variable_rss = True
Run Code Online (Sandbox Code Playgroud)

更重要的是,保留首字母缩写词或PEP 008的建议?

编辑:从答案中,我得出结论,这将是要走的路:

class RSSClassOne:
    def rss_method(self):
        self.rss_variable = True

class ClassRSSTwo:
    def method_rss(self):
        self.variable_rss = True
Run Code Online (Sandbox Code Playgroud)

python coding-style

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

fortran变量声明的好风格是什么?

所以我需要声明很多变量,原始代码如下所示:

    DIMENSION energy_t(20000),nrt(20000),npsh(1000),xx(1000),yy(1000),
    :step(1000),stepz(1000),r1(1000),rr(1000),ic(1000),diffrr(1000)
Run Code Online (Sandbox Code Playgroud)

我把它重写为:

    DIMENSION
    :energy_t(20000),
    :nrt(20000),
    :npsh(1000),
    :step(1000),
    :r1(1000),
    :rr(1000),
    :ic(1000),
    :diffrr(1000)
Run Code Online (Sandbox Code Playgroud)

这被认为是好风格,还是有更好的方法?请注意,第二种方式允许对每个变量进行注释,如果我可以添加另一个变量,则不必使用行继续.

PS:有没有关于Fortran编程风格和良好实践的共识/风格圣经/广泛认可的来源?

fortran coding-style fortran77

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

更高效/时尚的代码转换数据结构

您知道更好/更快的解决方案来转换此列表吗?

['foo1:bar1', 'foo2:bar2', 'foo3:bar3']
Run Code Online (Sandbox Code Playgroud)

进入下面的字典

{'col2': ['bar1', 'bar2', 'bar3'], 'col1': ['foo1', 'foo2', 'foo3']}
Run Code Online (Sandbox Code Playgroud)

由于两个for循环,当前版本似乎有点奇怪并且可能很慢.

tuples = ['foo1:bar1', 'foo2:bar2', 'foo3:bar3']
tuples_separated = [one.split(':') for one in tuples]
tidied = {'col1': [], 'col2': []}
for one in tuples_separated:
    tidied['col1'].append(one[0])
    tidied['col2'].append(one[1])
Run Code Online (Sandbox Code Playgroud)

python performance coding-style python-2.7

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

将对象初始化为null或new?

我正在开发一个Web应用程序,当我在服务器端接收参数时出现了一个问题.我将DTO (数据传输对象)初始化为局部变量null,当传递特定参数时,我将对象初始化为new.举例说明我的代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Object_DTO object_DTO = null;

    if(request.getParameter("parameter").equals("hello")) {
        object_DTO = new Object_DTO();
        object_DTO.setAttr("attr");
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

关于性能的问题是:初始化对象的最佳方法是什么?我应该将其设置为new声明还是保持我正在做的方式?

java performance coding-style

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

用于访问struct成员的` - >`和`.`之间是否有任何显着差异?

虽然熟悉C及其细微差别的人可能非常明显,但我对这两者并不熟悉,也无法判断使用或访问struct的成员之间是否存在任何显着差异. ->.

就像我有struct my_struct:

struct my_struct {
  int x;
  int y;
};

struct my_struct grid;
Run Code Online (Sandbox Code Playgroud)

除了不同的语法之外,我是否通过或访问struct my_struct gridx成员是否有所作为?如果有差异,我应该选择哪一个?grid.xgrid->x

尝试搜索谷歌/ SO,但我没有找到任何提到哪一个是首选,如果有的方法.两者看起来都是正确的,但我不禁觉得其中一个(->)有一个更专业的用例.

c struct coding-style

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