小编Bur*_*ear的帖子

避免在敏捷项目中进行本地优化

我对敏捷开发非常积极,并且已经开展了大约13年的敏捷项目.但我担心自己从来没有真正能够解决这个问题.它似乎并不总是表现出来,但它已经咬了我几次.

敏捷似乎在某种意义上是一种"贪婪的算法".从最高价值的故事开始,优化系统以精确地实现该故事,并重复.

实际的贪婪算法很容易融合到局部最优解,同时缺少全局最优解.

这是人们的经历吗?

这实际上是个问题吗?

如果是这样,你使用什么技术来避免这种局部最优并保持敏捷?

agile

9
推荐指数
1
解决办法
344
查看次数

如何配置在AWS/ElasticBeanstalk/Docker上运行的GlassFish实例?

我正在使用GlassFish来提供Java EE Web应用程序.在我的本地开发机器上工作正常.我有

  • 将postgres JDBC库复制到正确的位置
  • 在Glassfish管理控制台中配置了连接池和JDBC资源
  • 部署了一个使用所述连接的Web应用程序
  • 在我的浏览器中看到了结果

我正在尝试将相同的应用程序部署到AWS Elastic Beanstalk托管的Glassfish实例.AWS-EB使用Docker部署Glassfish实例.我只能做上面的第三步(部署一个网络应用程序),完全不知道如何做前两个.

我喜欢做的是通过网络访问Glassfish管理控制台,但这似乎不适用于任何级别.另一种方法是在我的本地机器上使用玻璃鱼"asadmin"配置远程玻璃鱼,但我也不能做到这一点.

如何配置AWS EB上托管的Glassfish实例?它甚至可能吗?

我已经做了一些观察,但我很欣赏确认或其他方面:

  • 似乎AWS在他们的CLI中有一个名为'asadmin'的命令,它与autoscaling有关,并且与glassfish附带的'asadmin'同名.除了努力进行谷歌搜索之外,这两者似乎没有任何关系
  • 如果我连接到包含Docker和Glassfish实例的AWS EC2实例,则会发生以下情况
    • sudo docker ps返回有端口4848/tcp,8080/tcp,8181/tcp,并且没有映射
    • wget localhost:8080 - 连接被拒绝
    • 同样适用于8181和4848
    • wget localhost:80返回Glassfish主页的网页
  • 在同一个运行docker的实例中,我得到一个内部IP地址(称之为1.2.3.4),然后在那个EC实例上
    • wget 1.2.3.4:8080(和4848,8181)都返回html文件
    • wget 1.2.3.4:80 - 连接被拒绝
  • 如果我在docker容器中运行bash shell,则以下情况似乎是正确的
    • wget localhost:8080(和4848,8181)都返回格式良好的页面
    • wget localhost:80 - 连接被拒绝

所以我可能需要告诉EC2实例从localhost转发到1.2.3.4,但是当EB负载均衡器将其扩展时,我该如何实现呢?

任何建议将不胜感激.

glassfish amazon-web-services docker

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

Gradle:将多个源组合成一个罐子

我在这里问了一个相关的问题JOOQ类生成和gradle

在那个问题中,我试图找到进行多阶段构建的最佳方法,包括在中间步骤中生成类.我已经采用了Option Two方法,现在发现自己陷入了僵局.

我有以下build.gradle文件

apply plugin: 'java'
apply plugin: 'eclipse'

sourceSets
{
    bootstrap 

    generated {
        compileClasspath += bootstrap.output
    }

    main {
        compileClasspath += bootstrap.output
        compileClasspath += generated.output
    }
}

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'org.jooq:jooq-codegen:3.5.0'
        classpath 'postgresql:postgresql:9.1-901.jdbc4'
        classpath project(":")
    }
}

dependencies
{
    compile 'org.jooq:jooq:3.5.0'
    compile 'org.jooq:jooq-codegen:3.5.0'
    compile 'org.apache.poi:poi:3.10.1'
    compile 'com.google.guava:guava:18.0'

    generatedCompile 'org.jooq:jooq:3.5.0'
    generatedCompile 'org.jooq:jooq-codegen:3.5.0'
    generatedCompile 'org.apache.poi:poi:3.10.1'
    generatedCompile 'com.google.guava:guava:18.0'

    bootstrapCompile 'org.jooq:jooq:3.5.0'
    bootstrapCompile 'org.jooq:jooq-codegen:3.5.0'
    bootstrapCompile 'org.apache.poi:poi:3.10.1'
    bootstrapCompile 'com.google.guava:guava:18.0'
}

task generate << {
    //Use JOOQ to …
Run Code Online (Sandbox Code Playgroud)

java gradle

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

使用JOOQ进行删除,以在“ not in”子句中指定多个列

我想将Postgres数据库表与Jooq记录列表同步。

我有一个带有复合主键和每行中其他三个值的表

table(k1, k2, v1, v2, v3)
Run Code Online (Sandbox Code Playgroud)

例如,数据可能是

Last, First, Age, Weight, Height
Smith, Joe,  21,  75,     160
Jones, Pete, 23,  80,     180
Run Code Online (Sandbox Code Playgroud)

(请使用名称作为主键的不良形式。。。)

我的Java代码中也有该表的Jooq记录列表。假设有两个Java记录

[
   <Smith, Joe, 21, 75, 180>,
   <Taylor, Mark, 54, 90, 170> 
]
Run Code Online (Sandbox Code Playgroud)

我想发生的是当我运行一些代码时,

  • Joe Smith的数据库行的高度已更新
  • 将为Mark Taylor插入新行
  • Pete Jones的数据库行已删除

我设法创建了一个执行前两部分的功能,但是卡在了第三部分上。我希望在JOOQ中有一个非常简单的“一个班轮”,基本上

delete 
from my_table 
where (first, last) not in (values ('Joe', 'Smith'), ('Mark', 'Taylor')) 
Run Code Online (Sandbox Code Playgroud)

但是我无法解决相应的Java代码。

有任何Jooq大师在阅读此书吗?

我有明显的事情要注意吗?

java sql postgresql jooq

2
推荐指数
1
解决办法
643
查看次数

标签 统计

java ×2

agile ×1

amazon-web-services ×1

docker ×1

glassfish ×1

gradle ×1

jooq ×1

postgresql ×1

sql ×1