POSA边读边写 — 1

pymatgen读/写各种文件 pymatgen读/写各种文件 1. pymatgen读取json文件,转化为Structure对象,并保存为CIF文件 from pymatgen import Structure, Lattice, MPRester, Molecule import json from pymatgen.io.cif import CifWriter # 如果只有一个结构 #data_file = open("../db-1.json", "r") #all_structures = data_file.re 阅读详情

拿到这本书,就感觉POSA是继GoF之后的又一经典之作。

序中介绍,

  1. POSA拓展了模式的范围,从原来的设计模式,拓展了新的高层次的体系机构模式,和底层的和程序设计语言相关的惯用法模式。
  2. 提出了新的模式分类方法 (根据规模/抽象层次)
  3. 提出了模式系统,来帮助我们利用模式来设计

什么是模式:

模式是一个描述,它描述了一个经过了前人实践充份考量过的解决方案的纲要。这个解决方案纲要可以指导我们解决一个问题族, 即 “在特定的设计环境中重复出现的相似问题”。这个纲要的主要内容是介绍需要创建的各个组件的职责和他们之间的协作策略。

 

内涵 vs. 外延

如果从内容(内涵)和形式(外延)的角度看模式,可见模式的内容是小的,它毕竟只描述了特定环境下一类问题的解决纲要。

所以模式的表现形式是多样的,都出现了专门的“模式风格”的模式表现形式研究分支(不过俺没有兴趣)。譬如,POSA中模式的表现形式与GoF中有些不同,不过区别不大,表现为三个最主要的部分:

  • 语境:问题出现的特定场景
  • 问题:what's the prolem? ( Requirement, Constrain, Characters )
  • 解决纲要:The schema of the solution

如果从纲要(内容)和方案(外延)的角度来看,模式描述的解决纲要是比较大的,这表现在采用了某个模式而设计的解决方案,通常变数比较少,具有相同/相似的组成结构,行为方式和特性。通常,可以依照模式设计出很多软件框架(Framework),如果设计变数很多的话,是不可能做到的。譬如,ACE_REACTOR框架就是REACTOR模式的实现。

模式系统

模式系统统一描述模式分类,说明模式之间的关系,说明他们之间如何相互交织。

模式类别: POSA根据,模式中纲要所涉及的范围和抽象层次,定义了三个类别/层次:

  1. 体系结构模式: 提供了一套预定义的子系统,规定他们的职责,并包括了如何组织这些子系统的规则和指南。如此,体系结构模式捕获了软件整体构建中的常用原理。
  2. 设计模式:提供了用于细化各个子系统和组件的结构和通讯策略的纲要。如此,设计模式捕获了在定义了系统整体结构之后,解决那些常见问题的办法。
  3. 惯用法模式:如何用特定的编程语言来实现一些特定的功能和特性。总是和特定的编程语言相干,如此,惯用法模式捕获了很多编程经验。

模式关系: 模式不是孤立的它们有着:( 抽象—细化),(主体—变体), (部分—组合)的关系。理解和理顺这些关系是综合应用各个模式来设计系统的关键。POSA模式系统,和GoF的模式关系图,就是为我们做了这方面的研究。

模式是软件设计方法学的很好的补充,正如俺为"OO&Pattern"写的标题分类说明中所写的那样,Pattern让你站在了巨人的肩上,OO是你手中的利剑,你将无往而不利。

不过,还是要说Pattern并没有强制你一定要用OO,不过个人认为,用OO的时候最好是要运用Pattern,运用Pattern的最好的环境还是OO设计时。利剑还是让巨人来挥舞才有气势,有作用;巨人没有利剑,力气大也不顶事,对不? :-)

posa 面向模式的软件架构卷1-卷5,英文原版 这是讲软件设计方法学的书籍,面向模式的软件架构。如果你是一个架构师,那么这应该成为你必读的书。 立即下载

相关推荐

POSA面向模式的网络架构卷1.2.3

经典丛书:面向模式的网络架构POSA卷1+卷2+卷3.rar合集

大内高手—惯用手法

大内高手—惯用手法 《POSA》中根据模式粒度把模式分为三类:架构模式、设计模式和惯用手法。其中把分层模式、管道过滤器和微内核模式等归为架构模式,把代理模式、命令模式和出版-订阅模式等归为设计模式,而把引用计数等归为惯用手法。这三类模式间的界限比较模糊,在特定的情况,有的设计模式可以作为架构模式来用,有的把架构模式也作为设计模式来用。 在通常情况下,我们可以说架构模式、设计模式...

jinghuainfo 187

dw2xls(pb12.5版本)

黄国仇的dw2xls,本人稍作改动,在PB12.5下正常使用。黄国仇的dw2xls,本人稍作改动,在PB12.5下正常使用。

浅析大型分层软件设计技术:从组件到服务

在一套大型软件的生命过程中,必然会有新需求不断地涌现。有的需求会对原系统的冲击非常大,甚至导致系统的一些关键代码重新开发。如何面对这些大型软件设计和开发过程的通用难题,始终是系统设计的重点和难点。   为了解决这些问题,在系统的设计中,采用了软件分层设计策略,并且逐步从组件化过渡到服务化。   主要的软件层有:   · 基础库层:解决跨平台及一些基本的与具体应用无关的软件问题;

每天积累一点,一年后你会发现,自己变化很大 840

面向模式的软件体系结构(POSA1+中文版)

中文版的POSA1 学习ACE编程思想必读 分上下两部分

SRRC型号核准的模块豁免规则解析——如何利用完整型模块简化设备认证流程

本文详细解析了SRRC型号核准中模块豁免规则的应用,重点介绍了完整型模块的技术定义、豁免条件及实际应用场景。通过合理利用完整型模块,企业可显著简化设备认证流程,缩短上市周期并降低成本。文章还提供了模块选型指南和常见问题解决方案,帮助工程师高效应对SRRC认证挑战。

weixin_29306011的博客 933

《系统程序员成长计划》阅读笔记--温故之用

《系统程序员成长计划》下载页面 1.程序在数据存放位置     1>.bbs 未初始化或者初始化为零的全局变量区 程序运行期间一直有效,占运行时的内存空间,不占目标文件的空间     2>.data 初始化过的全局变量区 程序运行期间一直有效,既占运行时的内存空间,又占目标文件的空间     3>.rodata (read only data)常量数据区 有些立即数会和指令编码在一起存

鸟窝 1402

瑞芯微RK3576开发板实战:6TOPS NPU如何加速你的AIoT项目(附性能测试)

本文以瑞芯微RK3576开发板为核心,深入探讨其6TOPS NPU在AIoT项目中的实战应用。通过详细的性能测试对比,展示了NPU如何将AI模型推理速度提升15倍以上,并大幅降低CPU负载。文章涵盖从环境搭建、模型转换优化到多屏异显与系统级调优的全流程,为开发者提供了将硬件算力转化为实际项目加速效果的完整指南。

oauth7security的博客 820

POSA 模式集合

按照下面的分类开始着手,写下每一个模式的故事和我自己的理解 1 From Mud To Structure Domain Model Layers Model-View-Controller Presentation-Abstraction-Control Microkernel Reflection Pipes and ...

weixin_30879169的博客 322

RK3566添加ffpeg【Buildroot系统】

有很多人都发现了RK3566系列的芯片是不可以直接使用ffmpeg官网源码的!会报错: Not a video capture device. /dev/video0: No such device 接下来我们就来解决这个问题!!

honmy18的博客 4070

高德地图-获取定位-失败原因-浏览器定位异常场景

提示:也能实现,但是需要https协议,而且请求时间很长,要么你用梯子,还是不太合适.

shi15926lei的博客 4206

posa 第四卷 架构模式 第五章 基线架构 总结

今天看了 第五章,基线架构,是从模式故事引入模式系列,其中讲了些模式,我也到第三部分看了一些模式语言。 第五章从 仓库管理系统出发,介绍了怎么划分大泥球。层次怎么分解。再从每一个层所遇到的问题开始引入模式。最后以 一个总结结尾。 1、为了解决大泥球的问题,引入了 Layer 与 Domain Object 基本是一个垂直一个水平来拆分系统。Layer模式 主要给系统分层, 分为了,表现层、业务

专注海量数据 2277

AI上推荐 之 隐语义模型(LFM)和矩阵分解(MF)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 1万+

POSA论文分析

1. **增强场景网格的鲁棒性**:可以采用更加鲁棒的场景网格处理技术,减少场景噪声对人体摆放的影响,或者引入基于深度学习的场景补全方法,提高场景数据的准确性。2. **密集接触信息的利用**:相比于其他方法,POSA利用了更加密集的接触信息,这使得它在生成与场景的交互时能够更真实地反映人体各部位的接触情况。3. **场景语义的结合**:POSA不仅考虑了接触关系,还结合了场景的语义信息,这使得人体摆放更符合场景的实际使用功能,提高了生成结果的现实感。同时,改进对多层结构的处理,减少穿透现象的发生。

wolfgodnedd的博客 537

基于Simulink的H∞鲁棒控制器设计与仿真建模示例

本文介绍了基于Simulink的H∞鲁棒控制器设计与仿真方法。针对质量-弹簧-阻尼系统存在±50%刚度不确定性的问题,详细阐述了从构建广义被控对象、设计性能加权函数,到使用hinfsyn综合控制器的完整流程。通过Simulink仿真验证,所设计的H∞控制器在参数摄动和外部扰动下均保持良好性能,位移控制误差小于2%,扰动衰减超过20dB。相比传统PID控制,H∞方法展现出显著鲁棒性优势。文章还总结了工程实践中的加权函数调参技巧、控制器降阶方法,并展望了μ-综合等扩展方向,为处理系统不确定性提供了实用解决方案。

amy_mhd的博客 70

《UDS协议从入门到精通》系列——图解0x10:诊断会话控制

什么是诊断会话控制服务?切换模式时ECU要做哪些?有没有通信示例?本文全网最详解!!

车载系统攻城狮 1万+

POSA Vol.1 EP4 End, Patterns' contribution

模式有很多贡献, 作为一份人类数十年来工程经验的总结, 且不论它实际的指导意义: 该做什么, 怎么做; 模式的存在, 更大的意义在于它提供了一种沟通方式. 世界仿佛必然走向统一(这是我4年wow的体会). 常想起古人云: 世界分久必合, 合久必分.到底是先有合还是先有分呢? 为了'和世界接轨', 我们实在承受了太多, 且不论自然科学苛刻的演算, 社会科学之...

weixin_30699741的博客 91

SAP_MM/CO模块-超详细的CK11N/CK40N取值逻辑梳理(十几种业务场景,1.76W字)

本文主要讲述的是三个大的知识点,超详细,涉及到知识点比较多,并且串起来讲解,这也是我在网上搜不到相关资料才自己慢慢研究测试出来的,断断续续耗费了我一周多时间,相信只要你们认真看完,肯定会有所收获; 1、CK11N/CK40N成本发布功能中,系统前台的取数逻辑,涉及到多个采购信息记录、生产版本、货源清单、配额协议等对成本价发布的影响~~!! 2、CK11N与CK40N发布的成本价不一致的问题~~!! 3、如何处理外协加工物料的外协价与BOM组件成本取值不匹配的问题~~!!

风沙的博客 4085

变动-反馈机制,POSA经典MVC和COM 连接点的一点点比较

关键词:POSA 系统构架 分层 Architecutre Pattern Layer 交互式系统 MVC PME COM IConnectionPoint 连接点MVC泛滥,Observer模式被滥用,COM连接点似乎很复杂。特小结了一下。没什么新意。高手勿看。一、POSA 经典MVC1.Model 负责处理,并通知View和Controller来更新(如通知View更新数据和Controlle

明日帝国的专栏-技术改进生活 1598

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

号外 POSA (Pattern-Oriented Software Architecture) 4 快出版了

使用过ACE 的朋友应该对POSA2 不陌生吧。作为Douglas Schmidt的铁杆fans我拜读过Douglas 写的很多文章,教程,书籍 [POSA2, CNPV1, CNPV2],从中我学习到了很多与并发和网络编程相关的设计模式和使用实例。早在9月底 Douglas就发布了他的新书POSA4要出版的消息。 自然POSA4 也就成为下一个关注的目标, POSA4 的标题是"A Patter...

Willem's Blog 335

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

BNB Smart Chain最终性保证:深入解析PoSA共识与快速最终性机制

在分布式系统中,**最终性(Finality)** 是指交易或区块一旦被确认就不可逆转的特性。对于区块链网络而言,最终性保证是确保网络安全性和可信度的核心要素。BNB Smart Chain(BSC)作为全球最大的智能合约平台之一,通过其创新的**权益权威证明(Proof of Staked Authority, PoSA)** 共识机制,实现了高效的最终性保证。 本文将深入解析BSC的最终性机...

gitblog_01049的博客 951

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

BNB Smart Chain攻击向量防护:全面解析PoSA共识安全机制

BNB Smart Chain(BSC)作为基于go-ethereum分叉的EVM兼容区块链,采用Proof of Staked Authority(PoSA)共识机制,在保持高性能的同时面临着独特的安全挑战。本文将深入分析BSC的主要攻击向量,并详细解析其多层次防护机制。 ## BSC共识架构概述 ### PoSA共识核心特性 ```mermaid flowchart TD A[P...

gitblog_00075的博客 795

POSA2 导读

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object classid

小白-豆豆的专栏 3193

POSA2 关于本书

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font

小白-豆豆的专栏 4251

POSA Vol.1 EP1, Architecture's architecture

今天随意翻看了下POSA vol1 chapter 1, 这章并没有什么具体讲述patterns, 但仍有几点论述还不错, 当然最主要的是抽象与总起: 1. Each pattern is a three-part rule, which expresses a relation between a certain context, a problem(forces), and ...

weixin_30418341的博客 126

POSA mq编写

POSA MQ编写 实现方法需要继承AbstractMQCaller MQ命名,和MQ接口文档保持一致 重写getResult方法,根据MQ调用名称判断mir.jar包中返回message的对应方法,如下 @Override protected Serializable getResult(Message_Body message) { return message.getCCWM9N4C(); } 覆写getBpfid方法,根据MQ调用名称判断mir.jar包中返回FrontEndConst

weixin_38601197的博客 553
上一篇: 初读GoF经典
下一篇: 使用Reactor来管理ACE_Sock_Acceptor
zhdaniel
博客等级 码龄21年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值