小编Gav*_*ler的帖子


什么时候使用String.Format vs字符串连接更好?

我有一小段代码解析索引值以确定输入Excel的单元格.这让我想到了......

有什么区别

xlsSheet.Write("C" + rowIndex.ToString(), null, title);
Run Code Online (Sandbox Code Playgroud)

xlsSheet.Write(string.Format("C{0}", rowIndex), null, title);
Run Code Online (Sandbox Code Playgroud)

这个比那个好吗?为什么?

.net c# string

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

依赖注入容器有什么好处?

我理解依赖注入本身的好处.我们以Spring为例.我也了解其他Spring功能的好处,如AOP,不同类型的帮助等等.我只是想知道,XML配置有哪些好处,例如:

<bean id="Mary" class="foo.bar.Female">
  <property name="age" value="23"/>
</bean>
<bean id="John" class="foo.bar.Male">
  <property name="girlfriend" ref="Mary"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

与普通的旧java代码相比,例如:

Female mary = new Female();
mary.setAge(23);
Male john = new Male();
john.setGirlfriend(mary);
Run Code Online (Sandbox Code Playgroud)

这是更容易调试,编译时间检查,任何只知道java的人都可以理解.那么依赖注入框架的主要目的是什么?(或显示其好处的一段代码.)


更新:
如果是

IService myService;// ...
public void doSomething() {  
  myService.fetchData();
}
Run Code Online (Sandbox Code Playgroud)

如果有多个,IoC框架如何猜测我希望注入哪个myService实现?如果只有一个给定接口的实现,并且我让IoC容器自动决定使用它,它将在第二个实现出现后被破坏.如果故意只有一个可能的接口实现,那么你不需要注入它.

看到IoC的一小部分配置显示它的好处真的很有趣.我已经使用Spring一段时间了,我无法提供这样的例子.我可以展示单行,它们展示了我使用的hibernate,dwr和其他框架的好处.


更新2:
我意识到可以在不重新编译的情况下更改IoC配置.这真的是个好主意吗?我可以理解,有人想要在不重新编译的情况下更改数据库凭据 - 他可能不是开发人员.在您的实践中,开发人员以外的其他人更改IoC配置的频率如何?我认为对于开发人员来说,没有努力重新编译该特定类而不是更改配置.对于非开发人员,您可能希望让他的生活更轻松,并提供一些更简单的配置文件.


更新3:

接口与其具体实现之间的映射的外部配置

使它延伸有什么好处?你没有把你的所有代码都放在外部,而你绝对可以 - 只需将它放在ClassName.java.txt文件中,即时手动读取和编译 - 哇,你避免重新编译.为什么要避免编译?!

您可以节省编码时间,因为您以声明方式提供映射,而不是在过程代码中

我知道有时声明性方法可以节省时间.例如,我只声明bean属性和DB列之间的映射,并且hibernate在加载,保存,基于HSQL构建SQL等时使用此映射.这是声明性方法的工作原理.对于Spring(在我的示例中),声明具有更多行并且具有与对应代码相同的表达性.如果有一个例子,这种声明比代码短 - 我希望看到它.

控制反转原理允许简单的单元测试,因为您可以用假的替换实际的实现(比如用内存替换SQL数据库)

我确实理解控制优势的反转(我更喜欢将这里讨论的设计模式称为依赖注入,因为IoC更通用 - 有很多种控制,我们只反转其中一种 - 控制初始化).我在问为什么有人为了它需要的东西而不是编程语言.我绝对可以使用代码替换真假实现.并且此代码将表达与配置相同的内容 - 它将仅使用伪值初始化字段.

mary = new FakeFemale();
Run Code Online (Sandbox Code Playgroud)

我确实理解DI的好处.我不明白外部XML配置与配置执行相同操作的代码相比会带来哪些好处.我不认为应该避免编译 - 我每天编译,我还活着.我认为DI的配置是声明性方法的坏例子.如果声明一次并且以不同方式多次使用声明,则声明可能很有用 - 例如hibernate cfg,其中bean属性和DB列之间的映射用于保存,加载,构建搜索查询等.Spring DI配置可以很容易地转换为配置代码,就像在这个问题的开头,它可以吗?它只用于bean初始化,不是吗?这意味着声明式方法不会在这里添加任何内容,是吗?

当我声明hibernate映射时,我只是给hibernate一些信息,它基于它工作 - 我不告诉它该怎么做.在春天的情况下,我的宣言告诉春天应该做什么 - …

xml spring dependency-injection

103
推荐指数
4
解决办法
3万
查看次数

正则表达式和GWT

我的问题是:在GWT中使用正则表达式有一个很好的解决方案吗?

我对String.split(regex)的使用不满意.GWT将代码转换为JS,然后将正则表达式用作JS正则表达式.但我不能使用Java Matcher或Java Pattern之类的东西.但我需要这些用于组匹配.

有没有可能性或图书馆?

我尝试了Jakarta Regexp,但我遇到了其他问题,因为GWT不会模拟这个库使用的Java SDK的所有方法.

我希望能够在客户端使用这样的东西:

// Compile and use regular expression
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.find();

if (matchFound) {
    // Get all groups for this match
    for (int i=0; i<=matcher.groupCount(); i++) {
        String groupStr = matcher.group(i);
        System.out.println(groupStr);
    }
} 
Run Code Online (Sandbox Code Playgroud)

java regex gwt

81
推荐指数
3
解决办法
4万
查看次数

如何在MS-SQL Server中的别名列上执行GROUP BY?

我正在尝试对别名列执行分组操作(下面的示例),但无法确定正确的语法.

SELECT       LastName + ', ' + FirstName AS 'FullName'
FROM         customers
GROUP BY     'FullName'
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法?


编辑

进一步扩展问题(我没想到我收到的答案)解决方案是否仍然适用于CASEed别名列?

SELECT       
    CASE
        WHEN LastName IS NULL THEN FirstName
        WHEN LastName IS NOT NULL THEN LastName + ', ' + FirstName
    END AS 'FullName'
FROM         customers
GROUP BY     
    LastName, FirstName
Run Code Online (Sandbox Code Playgroud)

答案是肯定的,它仍然适用.

sql t-sql sql-server syntax

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

网络安全的颜色是否仍然相关?

由于绝大多数显示器都是16位或更多颜色,包括移动设备,在选择配色方案时甚至考虑网页安全色是否有意义?或者它应该作为一件琐事降级为历史?

对于那些不知道什么是网络安全颜色的人:

另一组216个颜色值通常被认为是"网页安全"调色板,是在许多计算机显示器仅能够显示256种颜色时开发的.需要一组颜色,可以在256色显示器上抖动显示; 数字216的选择部分是因为计算机操作系统通常保留十六到二十种颜色供自己使用; 它也被选中,因为它允许红色,绿色和蓝色(6×6×6 = 216)的正好六种色调.

颜色列表通常表现为好像它具有使它们不受抖动影响的特殊属性.实际上,在256色显示器上,应用程序可以设置他们选择的任何颜色选择的调色板,使其余颜色抖动.选择这些颜色是因为它们与当时领先的浏览器应用程序选择的调色板相匹配. [百科]

colors

57
推荐指数
4
解决办法
9859
查看次数

如何在Django过滤器中使用AND?

如何创建一个"AND"过滤器来检索Django中的对象?例如,我想在一个字段中检索一个包含两个单词组合的行.

例如,当我在mysql数据库上运行它时,以下SQL查询就是这样做的:

select * from myapp_question
where ((question like '%software%') and (question like '%java%'))
Run Code Online (Sandbox Code Playgroud)

你如何使用过滤器在Django中实现这一目标?

python django

55
推荐指数
3
解决办法
5万
查看次数

退出CRUD

定义:
CRUD -Create, Read, Update, Delete; The four basic functions of persistent storage. In the context of this question, specifically related to business applications.

老实说,我开始编程时的目标不包括成为一名终身CRUD程序员.财务数据只是如此有趣.对我来说,这似乎是大多数编程演出.

我离学校还是比较新鲜,所以任何经验都是非常有益的,但最终我想转向"不那么像CRUD"的东西.目前,我关注一些机器控制类型的工作.但是,我只是不确定如何朝那个方向前进.

所以我想了解其他开发人员对该主题的看法.

  • 你喜欢CRUD吗?为什么?
  • 您在CRUD中的经历是什么样的?
  • 你是如何从CRUD转向非CRUD工作的?
  • 如果你感动了,你喜欢和讨厌什么?
  • 如果你搬家了,哪些技能有利于/加速了转型?

编辑:
我正在以我想要解决问题的态度接近CRUD,而不是为十几个不同的表重新创建具有不同字段的相同表单.

crud

47
推荐指数
7
解决办法
2万
查看次数

O(log N)== O(1) - 为什么不呢?

每当我考虑算法/数据结构时,我倾向于用常数替换log(N)部分.哦,我知道log(N)有所不同 - 但它在现实世界的应用程序中是否重要?

所有实际用途的log(无穷大)<100.

我真的很好奇现实世界的例子,这是不成立的.

澄清:

  • 我理解O(f(N))
  • 我对现实世界的例子感到好奇,其中渐近行为比实际表现的常数更重要.
  • 如果log(N)可以用常量替换,它仍然可以用O(N log N)中的常量替换.

这个问题是为了(a)娱乐和(b)收集使用的论据,如果我(再次)进行关于设计性能的争议.

algorithm performance big-o computer-science

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

XCode在模拟器选择中使用GUID而不是iOS版本号

在上个月XCode的各种更新过程中的某个地方,iOS版本从我的模拟器选择中删除(图片如下).任何人都知道如何解决这个问题?

XCode模拟器显示GUID而不是iOS版本

xcode ios-simulator xcode6

37
推荐指数
2
解决办法
3706
查看次数