分布式加并发 的编程的复杂性和正确性怎样把控

设计一个东西,只要理论正确了,就算有小问题,那也只是些小bug罢了。思考清楚,做好需求,然后把设计做好。包括但不限于流程图、数据结构、接口定义等等。把这些东西放出来给大家看看有没有大方向上的问题,剩下的小bug或者是性能瓶颈,可以通过记录详细的log来分析。
■网友
并不是所有程序都可以自动化证明的。。。分布式系统一定要伴随大量的测试,尤其是这种要求高一致性的东西。因为在完全可靠的情况下,当然怎么搞都行了。。。一致性协议的厉害之处就是允许容灾。所以对于单个模块,要有各种情况的UT。然后要做failover的测试,就是在各种worker随机挂的情况下,还能保证各种复杂事务下的正确性~总之就是,一定要写大量的测试,每次修改之后跑一下回归测试,确保改动不影响整个系统的正确性~
■网友
在形式证明还没有突破的今天,反复测试吧。
■网友
多多测试, 有个比较方便的测试环境是比较好的,比如把多个程序实例运行在一个进程里,暴露出一些接口(http,json)来报告程序内部状态, 运行在一个进程里比较方便控制实例的建立和删除,模拟机器宕机和重启来测试。


    推荐阅读