我想在开发环境中使用某个插件,但是想从生产和生成的战争中排除这个插件.实现这一目标的最简单方法是什么?
grails development-environment production-environment grails-plugin
我正在寻找SAP平台上的单元测试的一些教程和指南.到目前为止,我已经发现一些提及ABAP单元和在SAP平台上实现的Ruby编程语言,使其成为单元测试SAP的更有趣的选择.但是,这些信息非常稀少,我希望得到一些关于这个问题的帮助.
我们有以下问题.开发人员经常需要对我们的Web应用程序进行少量更改.当我说小的时候,我的意思是纠正网页上的拼写或类似内容.在这种情况下,生成和重新部署战争档案可能会很慢且成本高昂.
我们怎样才能逐步自动化和安装更改?例如,生成新的爆炸战争,比较生产中爆炸战争的文件,然后在生产中仅替换受变更影响的文件:.jsp .html .class等.
这不需要热部署,可以重启服务器.我希望避免的是必须复制和部署大小为80Mb的战争.有时连接速度很慢,并且对Web应用程序进行如此微小的更改,因为简单的拼写纠正可能需要数小时.
我们使用Maven来自动化构建过程.关键问题是自动化整个过程,以便我可以确定我的Subversion中的app v2.2.3正是我在增量部署后的生产中所拥有的.
是否可以隐藏底部的控件,如FlowDocumentReader中的缩放滑块,页面导航等?似乎只能通过IsFindEnabled属性隐藏搜索.
任何人都可以给我一个成功的非程序员,5GL的例子(不是我确定它们是什么!),可视化,0源代码或业务用户或分析师可以用来创建应用程序的类似工具?
我不相信有,我想证明是错的.
在我工作的公司,我们开发了内部MVC,用于开发Web应用程序.它基本上是一个用XML编写的简化状态机(用于控制器的Spring WebFlow)和一个用于表示的简单模板引擎.一些好处:
公司(或至少在管理层面)的当前趋势是尝试为需要0源代码,视觉等的平台生成工具.它对客户(或至少在管理级别)具有良好的效果,因为:
我个人怀疑这样的事情是可以实现的.我们今天的解决方案有很多问题:
从历史上看,这方面出现了许多失败.由非程序员编写的程序的想法很老,但AFAIK从未成功过.在某种程度上,除了源代码的强大功能之外的任何东西都变得无法替代.今天,有很多关于DSL的讨论,但不是非程序员应该写的东西,更像是他们可以阅读的东西.
在我看来,公司在这方面采取的方向是一个死胡同.你怎么看?
编辑:值得注意的是(这是一些潜在的来源),许多大型玩家正在试验这个方向.请参阅Microsoft Popfly,Google Sites,iRise,许多Mashup解决方案等.
配置过滤器时,我可以将一些值作为web.xml中的初始参数传递给过滤器,并通过FilterConfig在Filter中获取这些值.如何在web.xml中为HttpSessionListener配置一些初始参数?如果不可能,有什么替代方案?
关于stackoverflow的"开放封闭原则"主题已经有很多讨论.然而,似乎通常对该原理的更宽松的解释是普遍的,因此例如Eclipse可以通过插件进行修改.
根据严格的OCP,您应该修改原始代码只是为了修复错误,而不是添加新的行为.
在公共或OS库中是否有任何严格解释OCP的好例子,你可以通过OCP观察一个特征的演变:有一个类Foo,方法是bar(),而且还有一个FooDoingAlsoX和foo2()方法.库的下一个版本,其中原始类已被扩展,其中原始代码未被修改.
编辑:根据Robert C. Martin的说法:"模块的二进制可执行版本,无论是可链接库,DLL还是Java .jar都保持不变"*.我从未看到库保持关闭,实际上新的行为被添加到库中并且新版本已发布.根据OCP,新行为属于新的二进制模块.
*Robert C. Martin的敏捷软件开发,原则,模式和实践
我希望能够根据用户在运行时所属的租户选择特定的Spring(或Grails)上下文配置.假设我使用Spring Security并在登录期间检索tenantId.想象一下,现在我有两个租户,他们支付不同的佣金.如何在没有太多管道的情况下将特定服务注入控制器?这是两个不同的背景.所以,我应该根据租户注入不同的ExchangeService.
@Configuration
public class FooTenant{
@Bean
public ExchangeService bar() {
return new ZeroCommisionExchangeService ();
}
}
@Configuration
public class BarTenant{
@Bean
public ExchangeService bar() {
return new StandardCommisionExchangeService ();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我知道我可以获得对Spring上下文的引用并"手动"请求服务,但我正在寻找一个更通用的解决方案,其中这个问题由IoC框架解决.
我想在helix-toolkit中将任何MeshElement3D(例如BoxVisual3d)显示为线框.如何实现这一目标?
编辑:
感谢Erno de Weerd的回答,我能够编写以下代码
扩展BoxVisual3D的类
public class GeometryBoxVisual3D : BoxVisual3D
{
public MeshGeometry3D Geometry()
{
return Tessellate();
}
}
Run Code Online (Sandbox Code Playgroud)将框的实例添加到视口:
GeometryBoxVisual3D box = new GeometryBoxVisual3D();
box.Fill = new SolidColorBrush(Colors.Red);
Viewport3D.Children.Add(box);
MeshGeometry3D geometry3 = box.Geometry();
LinesVisual3D lines = new LinesVisual3D();
lines.Thickness = 3;
lines.Points = geometry3.Positions;
lines.Transform = new TranslateTransform3D(3,1,1);
Viewport3D.Children.Add(lines);
Run Code Online (Sandbox Code Playgroud)这导致以下显示:

如果我隐藏原始框并将LinesVisual3D放在框的顶部,我可以将wirefrime显示为原始对象,但它仍然缺少边的边缘.
在代表一个人的表(如客户,用户,客户,员工等)中,您对主键的选择是什么?我的第一选择是SSN号码.但是,由于隐私问题和不同的法规,不鼓励使用SSN.SSN可以在人的一生中改变,因此这是另一个原因.
我想精心挑选的自然主键的功能之一就是避免重复.我不希望一个人在数据库中注册两次.某些代理或生成的主键无助于避免重复条目.解决这个问题的最佳方法是什么?
编辑:
保证人员实体应用程序唯一性的最佳方法是什么?这可以在数据库级别使用主键或唯一性约束来处理吗?
grails ×2
java ×2
abap ×1
coding-style ×1
database ×1
deployment ×1
hotdeploy ×1
multi-tenant ×1
oop ×1
primary-key ×1
sap ×1
servlets ×1
spring ×1
tdd ×1
unit-testing ×1
wpf ×1