所以,在Python中(虽然我认为它可以应用于许多语言),我经常发现自己有这样的事情:
the_input = raw_input("what to print?\n")
while the_input != "quit":
print the_input
the_input = raw_input("what to print?\n")
Run Code Online (Sandbox Code Playgroud)
也许我太挑剔了,但我不喜欢这条线有多the_input = raw_input("what to print?\n")重复.它降低了可维护性和组织性.但是我没有看到任何避免重复代码的变通方法而不会进一步恶化问题.在某些语言中,我可以这样写:
while ((the_input=raw_input("what to print?\n")) != "quit") {
print the_input
}
Run Code Online (Sandbox Code Playgroud)
这绝对不是 Pythonic,Python甚至不允许在循环条件AFAIK中进行赋值.
这个有效的代码修复了冗余,
while 1:
the_input = raw_input("what to print?\n")
if the_input == "quit":
break
print the_input
Run Code Online (Sandbox Code Playgroud)
但是也感觉不对.将while 1意味着这个循环将永远运行下去; 我正在使用一个循环,但给它一个假的条件并将真正的条件放入其中.
我太挑剔了吗?有一个更好的方法吗?也许有一些我不知道的为此设计的语言结构?
我对Web应用程序的跨colo故障转移策略很感兴趣,这样如果主站点失败,用户将无缝地降落到另一个colo的故障转移站点.
事物的应用程序方面看起来主要是通过colos和服务之间的主从数据库设置来设计,以便恢复并能够在中流中获取.我正在试图找出将流量从主站点转移到故障转移站点的策略.即使TTL较低,DNS故障转移似乎也会带来相当大的延迟.
假设主colo上的服务器无法访问,您会建议在colos之间快速移动流量的策略是什么?
如果你有其他有趣的经验/关于跨colo故障转移的智慧的话,我也很乐意听到这些.
我的JavaScript文件的大小已经失控,因为我有数百个链接,每个链接都有自己的jQuery函数,即使它们都执行基本相同的任务.
这是一个简短的摘录:
$("#link1").click(function ()
{
$(".myDiv").hide();
$("#myDiv1").toggle();
});
$("#link2").click(function ()
{
$(".myDiv").hide();
$("#myDiv2").toggle();
});
$("#link3").click(function ()
{
$(".myDiv").hide();
$("#myDiv3").toggle();
});
Run Code Online (Sandbox Code Playgroud)
有没有办法抽象出一些逻辑,这样我只有一个函数而不是数百个函数做同样的事情?
我有一个非常大的等式,我需要用它来解决给定的变量.所以我使用了一个能够根据给定变量重写方程的在线工具.它给了我一些巨大的700字符方程式.我测试了它,它确实有效.
我可以在等式中看到一些非常明显的冗余,它重新计算一个可以保存为临时变量的值.我可以通过整个方程并自己优化它,但我可能不得不用更多的方程来做这个,所以我想自动化这个过程.
什么是有助于优化数学冗余的好工具?
(这只是个人项目,所以我真的更喜欢免费的东西)
对于所有我认识的人都会问这个问题真的是必要的:这是性能关键代码,根据我的经验,AS3编译器不会对它自己做这些优化.删除冗余也会使代码更具可读性.
我想要一个Web服务器(nginx)和2个与后端相同的应用程序的FastCGI实例.如果第一个请求失败,我们的想法就是将请求转发给第二个请求.
显然,我需要使用upstream和fastcgi_next_upstream.但我找不到nginx.conf文件的工作示例.有没有人有这样的例子?
在编程时,我遇到了一些带有代码的墙.它看起来像这样:

这就是问题所在.我拍了一张漂亮的截图来减轻我的内疚.漂亮的颜色无法弥补缺乏可维护性.我几乎不知道如何概括这样的代码.
好吧,考虑第3和第6个参数的周期性.它也与其他参数的周期性一致.如果我们使用数组,这样的东西将允许我们将此代码转换为具有9行的循环.这是一个改善,因为我们下降了66%.但是,这还不够好.如果将其更改为1行,那将是最好的.这将至少使它有点更易于维护.
好吧,让我们这样说吧.那里的代码可能也是错的.
我正在努力想出一个实现Geo-Redundancy(2+数据中心)的解决方案,同时使用Service Fabric可靠的Actors/Services来管理状态.这里暗示地理复制是可能的
例如,如果您未进行地理复制并且整个群集位于一个数据中心,并且整个数据中心出现故障,则可能会发生这种情况.
但没有解释如何打开它.
有没有人知道这是ASF的计划功能还没有发布,或者它是否存在但尚未完全探索?
或者,当使用ASF的StateManager存储运行应用程序所需的状态时,是否有人有任何推荐的交叉DC弹性方法?
谢谢,亚历克斯
以简化的方式,我的Java应用程序可以描述如下:
它是在具有SOAP接口的Tomcat服务器上运行的Web应用程序.该应用程序使用JPA/Hibernate将数据存储在MySQL数据库中.存储的数据包括用户列表,主机列表以及指向文件系统中的大文件(10GB)的URI列表.整个系统由运行我的应用程序的中央服务器和一堆工作主机组成.用户可以连接到SOAP接口并要求系统将属于他的文件复制到特定的工作主机,然后他可以以某种方式分析数据(我们不能使用NFS,我们需要将数据复制到工作主机的本地磁盘存储).然后,数据库为每个用户存储其文件存储在哪个工作主机上.
目前,系统正在运行一个带有Tomcat应用程序和MySQL数据库的中央服务器以及10个工作主机和大约30个用户,这些用户有100个文件(平均10GB)大小分布在工作主机上.
但是在未来我必须将系统扩展100-1000倍.所以我可能要处理10000个用户,100000个文件和10000个主机.并且系统也应该具有容错能力,因此我没有一个中央服务器(现在是系统中的单点故障),但也许有几个.此外,如果其中一个工作主机出现故障,则应通知系统,因此不会尝试复制该服务器上的文件.
我现在的问题是:我可以使用哪些Java技术来使我的应用程序具有可扩展性和容错性?你会推荐什么样的建筑?我是否还应该拥有一个庞大的数据库,在一个地方存储系统中所有文件,主机和用户的所有信息,或者我应该更好地在几台主机上分发我的数据库并以某种方式同步它们?
假设我有一个customers包含以下字段和记录的表:
id first_name last_name email phone
------------------------------------------------------------------------
1 Michael Turley mturley@whatever.com 555-123-4567
2 John Dohe jdoe@whatever.com
3 Jack Smith jsmith@whatever.com 555-555-5555
4 Johnathan Doe 123-456-7890
Run Code Online (Sandbox Code Playgroud)
还有其他一些表,如orders,rewards,receipts其中有外键customer_id有关此表的customers.id.
正如您所看到的,我的用户以他们无限的智慧为John Doe创建了重复记录,并且拼写和数据丢失都不一致.管理员注意到这一点,选择客户2和4,然后单击"合并".然后提示他们为每个字段选择哪个值是正确的等等,我的PHP确定合并的记录应如下所示:
id first_name last_name email phone
------------------------------------------------------------------------
? John Doe jdoe@whatever.com 123-456-7890
Run Code Online (Sandbox Code Playgroud)
让我们假设Doe已经下了几个订单,获得了奖励,生成了收据..但是其中一些已经与id 2相关联,有些已经与id 4相关联.合并的行需要匹配其他所有外键与原始行匹配的表.
这是我不知道该怎么做的地方.我的直觉是这样做:
DELETE FROM customers WHERE id = 4;
UPDATE customers
SET first_name = 'John',
last_name = 'Doe',
email = 'jdoe@whatever.com',
phone = '123-456-7890'
WHERE id = …Run Code Online (Sandbox Code Playgroud) 我的Node JS应用程序有以下生产设置:

我现在要在这个设置中集成Elasticsearch.我的问题是关于在生产环境中部署Elasticsearch的最佳实践.我的所有实例都是虚拟机,我知道Elasticsearch使用了大量内存.
因此,我是否应该在自己的服务器(服务器3)上设置Elasticsearch,将其作为集群在服务器1和服务器2上设置(非常类似于Mongo DB副本集),或者将其作为单独的实例安装在每台服务器上.
选择的方法有什么好处?
非常感谢!
redundancy ×10
abstraction ×1
azure ×1
c++ ×1
c++11 ×1
c++14 ×1
distributed ×1
dns ×1
failover ×1
fastcgi ×1
foreign-keys ×1
function ×1
java ×1
javascript ×1
jquery ×1
math ×1
merge ×1
mongodb ×1
mysql ×1
nginx ×1
node.js ×1
optimization ×1
organization ×1
php ×1
production ×1
python ×1
scalability ×1