系统的"健壮性"和"稳定性"?

今天和Shaka就两份echo服务器代码进行了讨论, 见后两篇blog文!
服务器使用了迭代模型, 在迭代模型的基础上, 二者实现有所差别, 在承认迭代服务器的缺点的情况下,
就此差别, 谈论了各自对系统健壮性和稳定性的看法.
恳请同仁也谈谈自己的想法!谢谢!

(代码见后两篇)

Shaka认为:
毫无疑问, 后者比前者更健壮性, 更稳定性, 因为后者不会因为客户端的强制关闭而退出.
从软件工程的角度讲, 后者比前者具备较好的健壮性和稳定性

wxPhoenix认为:
该Echo-Server使用迭代服务器模型, 启动于命令行.对于命令行, 自然考虑到SIGINT, 同时借助try/except/finally, 以求服务器的稳定.

两个服务器的处理逻辑分别是:
第一个将try/except/finally 放在了主循环的外层很合理, 以至客户端被强制关闭后,
Echo-Server端与其对应的conn_sock尝试send/write操作时, raise了socket.error,
则Python的异常捕获机制会导致当前运行代码跳转至相应的异常处理点, 关闭了conn_sock,
最后执行finally关闭isten_sock.
第二个将try/except/finally内提, 以保证客户端被强制关闭后, conn_sock被关闭,
而listen_sock继续监听.

二者在实现处理逻辑的基础上, 都做到了很好的健壮性和稳定性, 关闭该关的socket,
或平滑退出程序, 或继续运行. 你能说他们不健壮吗? 健壮!

健壮性和稳定性是特定的软件自身的要求, 不同软件不能就健壮性做对比, 健壮性和稳定性是
软件处理逻辑的一部分, 不同软件的处理逻辑需求可以不一样.
软件架构的健壮性和稳定性是该软件规划时所确定的目标, 如果软件的实现没有达到原先规定
的目标, 则我们可以说该软件的健壮性和稳定性不够或不好!