使用JDBC时,我经常遇到类似的结构
ResultSet rs = ps.executeQuery();
while (rs.next()) {
int id = rs.getInt(1);
// Some other actions
}
Run Code Online (Sandbox Code Playgroud)
我问自己(以及代码的作者)为什么不使用标签来检索列值:
int id = rs.getInt("CUSTOMER_ID");
Run Code Online (Sandbox Code Playgroud)
我听过的最好的解释是关于表现的.但实际上,它是否会使处理速度极快?我不相信,尽管我从未进行过测量.即使按标签检索会慢一点,但在我看来,它提供了更好的可读性和灵活性.
那么有人可以给我很好的解释,避免通过列索引而不是列标签来检索列值吗?这两种方法的优点和缺点是什么(可能是关于某些DBMS)?
您是否知道在Haskell中接受解决方案的任何在线问题集或竞赛?我只知道El Judge,但遗憾的是它与ghc有一些问题,因此任何Haskell问题都会因"内存限制"分辨率而被拒绝.
我已经从官方IntelliJ存储库中评估了一些插件,但它们似乎都没有提供更多基本语法高亮显示.甚至突出显示也是有限的.例如,Database Navigator不突出显示IF.有适当的突出显示会很棒.如果它具有自动完成功能并提供文件结构视图,我会非常高兴.当我需要向数据库发布一些小东西或从中查询内容时,我使用SQL Query Plugin.当我需要制作更复杂的东西时,或者当我需要修改PL/SQL时,我使用PL/SQL Developer.但是大多数时候我需要浏览Java,JavaScript和PL/SQL代码.不幸的是,SQL Query Plugin对PL/SQL Developer没有帮助.
我开始学习Flex和ActionScript并遇到了有趣的声明:无类型变量.那是:
var x:*;
Run Code Online (Sandbox Code Playgroud)
要不就
var x;
Run Code Online (Sandbox Code Playgroud)
我发现他们可以持有undefined价值观.Object类型的变量不能.但我不明白他们的目的.我不认为有人经常需要区分undefined和null重视 - 这些变量的可能性.虽然在ActionScript 2中似乎同样可能没有无类型变量.变量x被视为Object语句var x;,Object变量可以带来undefined价值.
那么这些"真正无类型"变量的基本原理是什么?为什么他们被引入语言?
我们的构建/部署过程非常繁琐,手动充足且容易出错.你能提出改进建议吗?
让我来描述一下我们的部署策略和构建过程.我们正在开发名为Application Server(简称AS)的系统.它本质上是托管在JBoss Web服务器上的基于servlet的Web应用程序.AS可以安装在两个"环境"中.每个环境都是一个包含webapp代码的目录.此目录位于网络存储上.存储安装到安装了JBoss实例的多个生产服务器.目录链接到JBoss的webapps目录.因此,所有JBoss实例都使用相同的环境代码.JBoss的配置与环境分开,并且基于每个实例进行更新.
所以我们有两种类型的补丁:webapp补丁(针对不同的环境)和配置补丁(针对每个实例配置)
补丁是一个可执行文件.实际上它是带有嵌入式二进制rpm包的bash脚本.安装非常简单:您只需执行文件并可选择回答一些问题.重要的一点是补丁不是一个整体系统 - 它只包含一些带有修改和/或修改配置文件的脚本的类.将类复制到WEB-INF/classes中(AS部署为展开的目录).
我们构建这些方案的方式是:
此外,我对有关补丁准备和部署实践的任何参考感兴趣,最好是对Java应用程序.我没有成功用Google搜索.
当文本在vim中突出显示时,例如在编写HTML文档时使用'em'标记,我发现在某些颜色方案中,光标变得不可见,从而难以正确放置结束标记.有没有办法让光标在突出显示的文本上改变颜色?
我有一些相对较大的遗留方法,我想重构.它符合Michael Feathers的"有效使用遗留代码"中指定的"项目符号方法"类型,因此可以以相当直接的方式分成几个顺序方法.但是它的每个连续步骤都输出一些日志消息,并且形成该消息需要比步骤本身更多的数据.因此,当我尝试提取方法时,我最终得到了具有6个参数的方法.如果我删除了那些日志语句,我将只有一个参数的方法.所以我实际上无法重构任何东西.而且我不允许删除日志语句.
方法的一部分看起来像这样:
// much of code before
Device device = getDevice(deviceID);
boolean isFirstRegistration = false;
if (device == null) {
/*logger.trace(
"DeviceId", deviceID,
"ADM", adminCode,
"Phone", clientData.getPhone()
);
logger.info("First registration of the device. Device ID - " + deviceID);*/
isFirstRegistration = true;
} else {
/*logger.trace(
"DeviceId", deviceID,
"ADM", adminCode,
"Phone", clientData.getPhone()
);
logger.info("Device ID - " + deviceID
+ " has been previously registered by adminCode: "
+ device.getAdminCode());*/
}
// much of code after
Run Code Online (Sandbox Code Playgroud)
如您所见,注释掉了日志记录语句.在这种情况下,我可以提取方法boolean isFirstRegistration(String …
你用什么来结束程序,-1,不起作用:
#include <stdio.h>
//copy input to output
main() {
char c;
c = getchar();
while(c != EOF) {
putchar(c);
c = getchar();
}
}
Run Code Online (Sandbox Code Playgroud) java ×2
build ×1
c ×1
deployment ×1
haskell ×1
jdbc ×1
legacy ×1
logging ×1
macos ×1
maintenance ×1
optimization ×1
patch ×1
plsql ×1
plugins ×1
refactoring ×1
resultset ×1
variables ×1
vi ×1
vim ×1