我要解释我的问题这么清楚我可以:)
我在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各为一年.
希望它足够清楚,以获得帮助.
我见过程序员使用以下格式的评论:
/*! This is a sample comment
*/
Run Code Online (Sandbox Code Playgroud)
我在ios开发时第一次看到了这样的评论,即在objective-c中.这里有'!'(感叹号)有什么意义?
许多程序员告诉我,using namespace <x>在头文件中有一个语句是个坏主意.我一直盲目地遵循这个建议,直到现在却不明白为什么会如此.现在我正在开发一个包含大量命名空间的非常复杂的项目.有时我发现在开头告诉编译器关于命名空间而不是每次都要输入nested ::'是太诱人了.例:
ALongNameSpaceName::LongerNamespaceName::BasicUtilityFunctionUsedVeryCommonly
Run Code Online (Sandbox Code Playgroud)
这条规则背后的理由是什么?在哪些情况下我可以忽略此规则?
对于空白行的缩进,是否有红宝石编码风格的最佳实践?例如,如果我在一个类中的两个方法定义之间有一个空行,那么空白行应该缩进到与方法定义相同的级别,还是应该是真的空白?
class Foo
def bar
end
def baz
end
end
Run Code Online (Sandbox Code Playgroud)
对于一个具体的例子,在上面的代码中,应该之间的线的end的bar的定义和def baz行包含两个空间类似上面和下面的线路和一个新行,或简称为换行?
我试过谷歌搜索这个问题,搜索SO,看着风格指南,但是空洞.也许我在奇怪地说它?没关系吗?有不同的意见吗?Rails中是否有一个标准,特别是与更广泛的Ruby社区不同?
我最近接受了一家知名硅谷公司的采访.我被要求用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代码中,在命名类,方法和变量时,处理众所周知的首字母缩略词的规范方法是什么?
例如,考虑一个处理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) 所以我需要声明很多变量,原始代码如下所示:
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编程风格和良好实践的共识/风格圣经/广泛认可的来源?
您知道更好/更快的解决方案来转换此列表吗?
['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) 我正在开发一个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声明还是保持我正在做的方式?
虽然熟悉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 grid的x成员是否有所作为?如果有差异,我应该选择哪一个?grid.xgrid->x
尝试搜索谷歌/ SO,但我没有找到任何提到哪一个是首选,如果有的方法.两者看起来都是正确的,但我不禁觉得其中一个(->)有一个更专业的用例.
coding-style ×10
python ×3
java ×2
performance ×2
python-2.7 ×2
arrays ×1
c ×1
c++ ×1
comments ×1
fortran ×1
fortran77 ×1
generics ×1
hashmap ×1
ios ×1
java-ee ×1
namespaces ×1
objective-c ×1
ruby ×1
struct ×1