读书笔记: 面向模式的软件架构,卷3

https://book.douban.com/people/fleure/annotation/24527611/

并发与联网对象

<原文开始>内在的复杂性源于基本的领域挑战,比如部分失败的处理,分布式的死锁,以及端到端的服务质量需求。</原文结束> <原文开始>颇具讽刺意味的是,很多偶然的复杂性源自开发人员深思熟虑的选择。他们钟情于某些底层语言和工具,当这些语言和工具应用到复杂的并发和联网软件时,它们的性能并不能按比例增长。</原文结束> <原文开始>不断重新发明和重新发现核心概念及技巧。为已经解决的问题重新创建不兼容的解决方案,软件行业在这方面拥有悠久的历史。</原文结束> <原文开始>在今天这种充满竞争,上市时间决定一切的环境中,这样做往往会导致使用非最优的临时解决方案。</原文结束> 承认最优解决方案的不存在,继而对可工作解决方案进行持续的改进,未尝不是工程师成长的体现。 <原文开始>使开发人员不再对底层的操作系统和网络协议和机制先入为主。尽管扎实地掌握这些知识非常重要,但这些只属于战术范畴。</原文结束> <原文开始>并发与联网系统相关的内在复杂性包括管理带宽、最小化时延延迟和时延变化或称时延抖动、检测并从部分故障中恢复、确定合适的服务分区和负载均衡策略,以及确保事件的因果序列。</原文结束> <原文开始>并发编程中常见的内在复杂性还包括消除竞态条件和避免死锁,确定合适的线程调度策略。</原文结束> <原文开始>之所以使用联网架构,原因之一就是能提高可靠性,防止单点故障。</原文结束>