我知道TDD有很多帮助,当你第一次创建测试然后实现这个功能时,我喜欢这种开发方法.这是非常明确和正确的方式.
但由于我的项目有一些风味,经常发生的是,当我开始开发一些模块时,我对我想要的东西知之甚少,以及它最终会如何看待.这些要求在我开发时出现,当我删除全部或部分旧代码并编写新代码时,可能会有2或3次迭代.
我看到两个问题:1.我希望尽快看到结果,理解我的想法是对还是错.单元测试会减慢此过程.因此,在代码完成之后我经常会编写单元测试,这是一个糟糕的模式.2.如果我第一次编写测试,我不仅要重写代码两次或更多次,还要重写测试.这需要很长时间.
有人可以告诉我在这种情况下如何应用TDD?
提前致谢!
在渲染到视图模型之前,应格式化:
谁执行所有这些格式 - 控制器或视图?
我是对的,所有的格式都是由Controller执行的,它创建了只包含格式化值的所谓ViewModel,并将此ViewModel发送给View?
提前致谢!
在开发环境和生产环境中使用数据源部署应用程序的最佳方法是什么?
建议使用META-INF/context.xml指定Tomcat上下文,但我不明白如何在context.xml中指定数据源:
将数据库密码放在context.xml中是不安全的,所有人都可以查看;
如何为生产和开发模式维护两个不同的数据源?
你怎么解决这个问题?
可能会以某种方式发生MySQL两次生成相同的自动增量ID吗?
我们有以下情况:
创建了id = 100的帐单;
然后它被删除了;
然后创建另一个账单,它具有相同的id = 100;
表的结构是:
CREATE TABLE `bill` (
`id` int(11) NOT NULL auto_increment,
`user` int(11) NOT NULL,
`date` datetime NOT NULL,
`state` int(11) NOT NULL,
`adv` bit(1) NOT NULL default b'0',
`weight` int(11) default NULL,
PRIMARY KEY (`id`),
KEY `FK2E2407EC768806` (`user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `bill`
ADD CONSTRAINT `FK2E2407EC768806` FOREIGN KEY (`user`) REFERENCES `user` (`id`);
Run Code Online (Sandbox Code Playgroud)
可能有一些竞争条件或MySQL是否保证独特的自动增量ID?
更新:我们无法重现这种情况,但我们记录了它.
我想使用 Guava Striped Lock 提供对资源的锁定访问。例如
Striped<Lock> keyLocks = Striped.lazyWeakLock(10)
Lock lock = keyLocks.get("resourceId")
// use lock...
Run Code Online (Sandbox Code Playgroud)
我找不到任何指南如何选择正确数量的条纹:
Striped.lazyWeakLock(int stripes)
Run Code Online (Sandbox Code Playgroud)
应该stripes
是绑定处理器核数还是什么?
是否值得为这样简单的代码编写单元测试:
public class TableController {
private TableView view;
public TableController(TableView view) {
this.view = view;
}
public void onShowTable() {
view.showTable();
}
}
Run Code Online (Sandbox Code Playgroud)
我的项目中有很多这样非常简单的代码,它们连接控制器,视图,服务,远程服务等.单元测试只是重复所有内容,通常比代码本身大:
public class TableControllerTest {
@Test
public void showTable() {
TableView view = createMock(TableView.class);
view.showTable();
replayAll();
TableController controller = new TableController(view);
controller.onShowTable();
verifyAll();
}
}
Run Code Online (Sandbox Code Playgroud)
真的需要这样的测试吗?
谢谢!
我们销售使用客户专辑编辑程序(适用于Windows)客户创建的photoalbums.现在我们将开发一个在线程序,以便客户可以在浏览器中创建他们的相册:上传照片并进行编辑.这将是一个丰富的浏览器应用程序,具有完整的图形支持.
问题是要使用什么技术?
我们的服务器应用程序是用Java构建的,我们考虑Java Applet,以便我们可以重用一些Java代码.我们对Flash也不是很熟悉.但有些人说Flash是首选.
也许现在有一些现代技术?SVG或一些谷歌技术(如GWT,但有图形支持)或什么?
你怎么看?
提前致谢!
UPDATE
相簿编辑器是使用GWT + SVG创建的.
任何人都可以帮我在GWT中进行正常的布局.
我需要一个主面板:
填充所有浏览器空间(100%高度);
如果被折叠太多则显示滚动条(自动滚动).
当我使用旧布局(RootPanel,VerticalPanel)时,我有滚动,但不能获得100%的高度.
当我使用新的布局(RootLayoutPanel,DockLayoutPanel)时,我得到100%的高度,但我没有得到任何滚动.而且我在IE中遇到了一些麻烦.
是否有任何样本展示如何实现这两个目标?
提前致谢!
AWT字体渲染和指标似乎不适合真正的打印应用程序.字体渲染取决于DPI,FontMetrics给出错误的结果.因此,实际上不可能在边界框内呈现真实文本.
Java可以替代Java渲染真实字体,水平和垂直对齐文本,在边界框内准确呈现文本等等?
我们在JPEG和PNG上呈现小DPI和300 DPI的文本.我们还使用了很多不同的字体.
可以继承@Repository注释吗?
我可以创建一个
@Repository
public abstract class BaseRepository {
}
Run Code Online (Sandbox Code Playgroud)
然后在不指定@Repository注释的情况下扩展它?
public class MyRepository extends BaseRepository {
}
Run Code Online (Sandbox Code Playgroud)
我如何知道是否可以继承注释?
java ×4
tdd ×2
unit-testing ×2
annotations ×1
applet ×1
browser ×1
concurrency ×1
context.xml ×1
datasource ×1
flash ×1
fonts ×1
graphics ×1
guava ×1
gwt ×1
locking ×1
mysql ×1
spring ×1
tomcat ×1