我们有一个git存储库,其中包含一些相关Java WAR和JAR的源代码.如果Java代码可能以某种方式:
System.err.println("I was built from git commit " + commitID);
Run Code Online (Sandbox Code Playgroud)
(显然,真正的代码可能会将其放入HTTP标头,在启动时记录它,或者其他什么,现在不重要)
我们正在使用Ant来构建(至少对于生产构建,似乎有些程序员在Eclipse内部进行测试,我知道的更少)二进制文件.
有没有一种规范的方法可以在构建时将当前git checkout的提交ID添加到我们的Java中?如果没有,使用Ant构建的人可以建议他们如何做,我们将看看是否出现了规范的解决方案?我确信我可以完全用整块布料来创造一些东西,但这似乎是一个可重复使用的构件,所以我宁愿不这样做.
我有一个客户端 - 服务器应用程序,使用.NET SqlClient数据提供程序连接到SQL服务器 - 非常标准的东西.默认情况下,在连接池管理器关闭数据库连接并将其从池中删除之前,连接必须有多长时间空闲?有什么设置控制这个?
这个MSDN文档只说
连接池在空闲了很长时间后,或者如果池中检测到与服务器的连接已被切断,则会从池中删除连接.
我确信我和很多人一起感到高兴,最终有一种强大的语言与主流的GUI /数据库/通信框架紧密相连.
我不确定在哪里发布,但这里似乎是最好的地方.
我需要使用Unicode符号字符作为运算符或函数名称.我喜欢语法糖,但我不需要它.
Guy Steele在ACM的通讯中指出,当从Ascii采用它时,"*"是一种强制选择,但我的软件在Unicode中运行,所以我不再受Ascii限制了.
!$%&*+ - /<=>,@ ^ |〜?
本地化的一部分包括本地程序员.为什么要限制可以在F#中定义的运算符集?它与C#和F#在标识符中接受许多Unicode IsLetter并不正交.
此外,F#很可能用于逻辑,数学,物理学家等问题的符号处理.如果直接映射到基本运算符的语言,它会使工作变得更容易.(F#和C#接受许多Unicode IsLetter?以及IsDigit'?这是允许Unicode IsSymbol的请求?作为具有优先权的运算符,例如*,或者,因为"+"既是一元和二元运算符,我可以忍受+的优先级,并用括号分组来弥补差异.
考虑逻辑学家,数学家,物理学家等领域特定的需求.我宁愿使用数学符号来编写符号微分器或积分器,而不是已经采用的算子的Ascii排列.
我用其他语言写了很多种语言,但由于F#是紧密的.Net集成,这个问题在没有语言支持的情况下提出了特殊的挑战:
使用Unicode-operator F#source并将其逐行映射到Ascii-operator F#source的转换器是一件很容易的事.
但是在调试时,我如何确保程序员仍然看到他们的未翻译源?并且他们可以看到变量值.
操作员和转换他们是微不足道的.但是,如果程序员看到自己的源代码,我如何确保翻译是编译的?如果我正确地逐行映射,我如何确保它们仍然可以指向变量并查看其值?