artificial-intelligence heuristics traveling-salesman nearest-neighbor genetic-algorithm
我一直看到像这样检查的代码
if (IsGood == false)
{
DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
或这个
if (IsGood == true)
{
DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
我讨厌这种语法,并始终使用以下语法.
if (IsGood)
{
DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
要么
if (!IsGood)
{
DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
有没有理由使用' == true'或' == false'?
这是一个可读性的东西吗?人们只是不了解布尔变量?
另外,这两者之间是否有任何性能差异?
我有一个看似简单的场景,我想要一个简单的解决方案,但是哪个是"最正确"或"大多数Java"并不明显.
假设我在某个类中有一个小的身份验证(客户端客户端)方法.验证可能由于多种原因而失败,我想为控制流返回一个简单的布尔值,但也为用户返回一条String消息.这些是我能想到的可能性:
还有其他建议吗?
编辑关闭此选项
编辑方案:
我选择了最OO解决方案并创建了一个小型AuthenticationResult类.我不会用任何其他语言来做这个,但我喜欢Java.我也喜欢返回String []的建议,因为它像null返回但更安全.Result类的一个优点是,如果需要,您可以获得包含更多详细信息的成功消息.
几年前,媒体上充斥着关于代码重用思想如何提高生产力和代码质量的各种文章.
从我定期检查的博客和网站看来,似乎"代码重用"的想法已经过时了.也许"代码重用"倡导者已经加入了SOA人群?:-)
有趣的是,当您在Google中搜索"代码重用"时,第二个结果标题为:
"内部代码重用被认为是危险的"!
对我来说代码重用的想法只是常识,毕竟看看apache commons项目的成功!
我想知道的是:
讨论?
我完全清楚有许多可用的开源库,任何使用过.NET或Java的人都会以某种形式重用代码.这是常识!
我更多地指的是组织内的代码重用,而不是通过共享库等社区中的代码重用.
我最初问过;
从我所在的位置,我看到很少有公司试图在内部重用代码?
如果你有一段可能在中等规模的组织中共享的代码,你会如何告知公司的其他成员这个lib/api/etc是否存在并且可能有益?
假设您有一个班级,他们的工作就是连接到远程服务器.我想抽象这个类来提供两个版本,一个通过UDP连接,另一个通过TCP连接.我想构建最精简的运行时代码,而不是使用多态,我正在考虑模板.这是我想象的,但我不确定这是最好的方法:
class udp {};
class tcp {};
template<class T,typename X>
class service
{
private:
// Make this private so this non specialized version can't be used
service();
};
template<typename X>
class service<udp, X>
{
private:
udp _udp;
X _x;
};
template<typename X>
class service<tcp, X>
{
private:
tcp _tcp;
X _x;
};
Run Code Online (Sandbox Code Playgroud)
因此最终的好处是T的通用性仍然可用,但设置UDP或TCP连接所需的非常不同的代码已经过专门化.我想你可以将它们放在一个类中,或者提供另一个类,它遵循一些纯虚拟接口来设置网络连接,比如IConnectionManager.
但这确实留下了通用T的代码问题,现在必须在两个专用版本中编写和维护,它们最终都是相同的.如何最好地解决这个问题?我有一种感觉,我认为这一切都错了.
我已经阅读了许多评论,其中提到黑莓线程模型偏离了Java标准并且可能导致问题,但是没有任何谷歌搜索引起了我对这意味着什么的启发.
我一直在为BlackBerry开发一个相当大的业务应用程序,虽然我之前没有任何Java多线程应用程序的经验,但是没有遇到任何我们能够将其归咎于线程的问题,除了我们自己造成的.
有人可以准确描述黑莓线程模型的不同之处,以及我作为开发人员应该如何考虑这一点?显然,关于该主题的任何链接也都很棒.
我想将当前目录中的所有文件添加到git:
git add .
error: open(".mysql_history"): Permission denied
fatal: unable to index file .mysql_history
Run Code Online (Sandbox Code Playgroud)
没关系.该文件恰好位于此目录中并由root拥有.我想添加所有其他文件.有没有办法做到这一点,而无需手动手动添加每个文件?
我知道我可以添加要排除或.gitignore的文件,但我想让它根据权限忽略一些东西(这样的其他文件很可能最终会在目录中,并将它们添加到.gitignore一直很痛苦).
我目前正在将msbuild用于600多个项目的解决方案。
想象一下,我更改了10个项目使用的1个库的代码。与其提供全部600个项目供msbuild使用,而不是让其编译所有项目并找出依赖项,不如将其提供给msbuild。我想知道是否可以使用一个程序或库来分析所有600个项目的依赖关系,并只允许我编译11个必需的项目。
换句话说,给定要扫描的所有600个项目的输入,而BaseLibrary.csproj作为已被修改参数的项目,仅提供我需要编译为输出的11个项目。
我在编写自定义任务方面经验丰富,如果有的话,我宁愿使用第三方库进行依赖关系分析。
我公司每3-4个月进行一次增量发布。作为一个实验,我编写了一个自定义任务,该任务查看先前发行版的“ Subversion标记”,并评估此后已更改的所有已编译文件,并将它们映射到项目。
我能想到的唯一用例是不起作用的,是我提到的那种情况,其中更改了基础库,而系统也不知道依赖该库的所有项目。
java ×2
blackberry ×1
boolean ×1
c# ×1
c++ ×1
code-reuse ×1
components ×1
exception ×1
git ×1
heuristics ×1
java-me ×1
moores-law ×1
msbuild ×1
not-operator ×1
oop ×1
opencl ×1
openmp ×1
optimization ×1
return-value ×1
soa ×1
templates ×1