小编Dan*_*Dan的帖子

是否可以从生产环境中排除grails插件?

我想在开发环境中使用某个插件,但是想从生产和生成的战争中排除这个插件.实现这一目标的最简单方法是什么?

grails development-environment production-environment grails-plugin

7
推荐指数
1
解决办法
2366
查看次数

单元测试和SAP

我正在寻找SAP平台上的单元测试的一些教程和指南.到目前为止,我已经发现一些提及ABAP单元和在SAP平台上实现的Ruby编程语言,使其成为单元测试SAP的更有趣的选择.但是,这些信息非常稀少,我希望得到一些关于这个问题的帮助.

tdd sap abap unit-testing

7
推荐指数
1
解决办法
2143
查看次数

Java Web应用程序的增量部署

我们有以下问题.开发人员经常需要对我们的Web应用程序进行少量更改.当我说小的时候,我的意思是纠正网页上的拼写或类似内容.在这种情况下,生成和重新部署战争档案可能会很慢且成本高昂.

我们怎样才能逐步自动化和安装更改?例如,生成新的爆炸战争,比较生产中爆炸战争的文件,然后在生产中仅替换受变更影响的文件:.jsp .html .class等.

这不需要热部署,可以重启服务器.我希望避免的是必须复制和部署大小为80Mb的战争.有时连接速度很慢,并且对Web应用程序进行如此微小的更改,因为简单的拼写纠正可能需要数小时.

我们使用Maven来自动化构建过程.关键问题是自动化整个过程,以便我可以确定我的Subversion中的app v2.2.3正是我在增量部署后的生产中所拥有的.

java deployment web-applications hotdeploy

6
推荐指数
1
解决办法
4129
查看次数

隐藏FlowDocumentReader中的控件

是否可以隐藏底部的控件,如FlowDocumentReader中的缩放滑块,页面导航等?似乎只能通过IsFindEnabled属性隐藏搜索.

customization coding-style flowdocumentreader

6
推荐指数
2
解决办法
3694
查看次数

成功的非程序员,5GL,Visual,0源代码或类似工具?

任何人都可以给我一个成功的非程序员,5GL的例子(不是我确定它们是什么!),可视化,0源代码或业务用户或分析师可以用来创建应用程序的类似工具?
我不相信有,我想证明是错的.

在我工作的公司,我们开发了内部MVC,用于开发Web应用程序.它基本上是一个用XML编写的简化状态机(用于控制器的Spring WebFlow)和一个用于表示的简单模板引擎.一些好处:

  • 动态性:无需重新编译即可查看更改
  • 减少"语义负载":基本上,控制器中的动作只知道"如果".因此,培训某人开发应用程序很容易.

公司(或至少在管理层面)的当前趋势是尝试为需要0源代码,视觉等的平台生成工具.它对客户(或至少在管理级别)具有良好的效果,因为:

  • 他们可以确信,通过这种方式,他们不需要任何程序员,或者至少能够雇佣那些费用低于典型程序员的泡沫程序员.
  • 似乎涉及的风险降低,因为该工具限制了实施者或用户(只是不使用"程序员"一词!)他能做什么,因此他引入错误的可能性较小
  • 它似乎简化了整个问题,因为似乎没有涉及编程(众所周知的复杂).由于应用程序动态加载,因此通常与J2EE生命周期相关的复杂性较低:编译,打包,部署等.

我个人怀疑这样的事情是可以实现的.我们今天的解决方案有很多问题:

  • 实施者编写JavaScript代码以丰富页面(可以通过开发小部件来解决).虽然客户端,仍然是一个代码,可能变得非常复杂,并导致一些困难的错误.
  • 已有一个可视化工具,但实施者更喜欢编辑XML,因为它更快更容易.为了比较,我想没有多少人使用Eclipse Spring WebFlow插件来编辑流XML.
  • 解决方案中的重用非常差(基于XML的复制粘贴).这妨碍了生产力和其他一些方面,如培养业务知识.
  • 基于错误使用工具,存在许多性能和其他问题.无论比赛场地如何减少,总会有错误的空间.
  • 虽然该平台可能比Struts更具生产力,但我怀疑它比现在的RAD Web框架(如RoR或Grails)更具生产力.
  • 赘言

从历史上看,这方面出现了许多失败.由非程序员编写的程序的想法很老,但AFAIK从未成功过.在某种程度上,除了源代码的强大功能之外的任何东西都变得无法替代.今天,有很多关于DSL的讨论,但不是非程序员应该写的东西,更像是他们可以阅读的东西.

在我看来,公司在这方面采取的方向是一个死胡同.你怎么看?

编辑:值得注意的是(这是一些潜在的来源),许多大型玩家正在试验这个方向.请参阅Microsoft Popfly,Google Sites,iRise,许多Mashup解决方案等.

programming-languages

6
推荐指数
2
解决办法
1692
查看次数

如何将init参数传递给HttpSessionListener?

配置过滤器时,我可以将一些值作为web.xml中的初始参数传递给过滤器,并通过FilterConfig在Filter中获取这些值.如何在web.xml中为HttpSessionListener配置一些初始参数?如果不可能,有什么替代方案?

java servlets

6
推荐指数
1
解决办法
2489
查看次数

开源库中OCP的好例子

关于stackoverflow的"开放封闭原则"主题已经有很多讨论.然而,似乎通常对该原理的更宽松的解释是普遍的,因此例如Eclipse可以通过插件进行修改.

根据严格的OCP,您应该修改原始代码只是为了修复错误,而不是添加新的行为.

在公共或OS库中是否有任何严格解释OCP的好例子,你可以通过OCP观察一个特征的演变:有一个类Foo,方法是bar(),而且还有一个FooDoingAlsoX和foo2()方法.库的下一个版本,其中原始类已被扩展,其中原始代码未被修改.

编辑:根据Robert C. Martin的说法:"模块的二进制可执行版本,无论是可链接库,DLL还是Java .jar都保持不变"*.我从未看到库保持关闭,实际上新的行为被添加到库中并且新版本已发布.根据OCP,新行为属于新的二进制模块.

*Robert C. Martin的敏捷软件开发,原则,模式和实践

oop open-closed-principle solid-principles

6
推荐指数
1
解决办法
1253
查看次数

如何根据租户在运行时选择弹簧配置?

我希望能够根据用户在运行时所属的租户选择特定的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框架解决.

grails spring multi-tenant

6
推荐指数
1
解决办法
1780
查看次数

如何将MeshElement3D显示为线框?

我想在helix-toolkit中将任何MeshElement3D(例如BoxVisual3d)显示为线框.如何实现这一目标?

编辑:

感谢Erno de Weerd的回答,我能够编写以下代码

  1. 扩展BoxVisual3D的类

    public class GeometryBoxVisual3D : BoxVisual3D
    {
    
      public MeshGeometry3D Geometry()
      {
        return Tessellate();
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将框的实例添加到视口:

        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显示为原始对象,但它仍然缺少边的边缘.

wpf helix-3d-toolkit

6
推荐指数
1
解决办法
3658
查看次数

Person表主键的最佳选择

在代表一个人的表(如客户,用户,客户,员工等)中,您对主键的选择是什么?我的第一选择是SSN号码.但是,由于隐私问题和不同的法规,不鼓励使用SSN.SSN可以在人的一生中改变,因此这是另一个原因.

我想精心挑选的自然主键的功能之一就是避免重复.我不希望一个人在数据库中注册两次.某些代理或生成的主键无助于避免重复条目.解决这个问题的最佳方法是什么?

编辑:

保证人员实体应用程序唯一性的最佳方法是什么?这可以在数据库级别使用主键或唯一性约束来处理吗?

database database-design primary-key

5
推荐指数
2
解决办法
6002
查看次数