本节主要涉及如下内容学习:
处理流程设计(★ ★)软件架构设计(★ ★ ★)结构化设计(★ ★)面向对象设计(★ ★ ★ ★)人机界面设计(★ ★)WEB应用设计(★ ★ ★ ★ ★) 基础知识 处理流程设计
软件架构设计 架构相关概念理解软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构建和连接件类型,而这组约束指出系统是如何将这些构建和连接件组合起来的。软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构是项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,约束着系统的质量属性。软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。软件架构是可传递和可复用的模型,通过研究软件架构可能预测软件的质量。
软件架构的风格架构设计的一个核心问题是能否达到架构级的软件复用。架构风格反应了领域中众多系统所共有的结构和语义特性,并指导如何将各个构建有效的组织成一个完整的系统。架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。常见经典软件架构的风格:
数据流风格:批处理序列、管道-过滤器调用/返回风格:主程序/子程序、面向对象、层次结构独立构建风格:进程通信、事件驱动系统(隐式调用)虚拟机风格:解释器、基于规则的系统仓库风格:数据库系统(如JAVA虚拟机)、超文本系统、黑板系统(如语音处理、信号处理等有中心节点的系统)层次架构风格
二层C/S架构三层C/S架构B/S架构:浏览器/服务器 (B r o w s e r/Server, B /S ) 架构是三层C /S 架构的一种实现方式,其具体结构为“浏览器/W e b 服务器/数据库服务器”。 系统设计--结构化设计
在结构化设计时代其实没有架构设计的概念,当时的概要设计就相当于现在的架构设计。
结构化设计原则:
保持模块的大小适中尽可能减少调用的深度多扇入,少扇出单入口、单出口模块的作用域应该在模块之内功能应该是可预测的 系统设计--面向对象设计 面向对象设计的基本过程
面向对象设计原则单一职责原则:设计目的单一的类开放-封闭原则:对扩张开放,对修改封闭李氏(Liskov)替换原则:子类可以替换父类 依赖倒置原则:要依赖于抽象而不是具体实现;针对接口编程,不要针对实现编程。接口隔离原则:使用多个专门的接口比使用一个单一的总接口要好。组合重用原则:要尽量使用组合,而不是集成关系达到重用目的迪米特(Demeter)原则:一个对象应当对其他对象有尽可能少的了解
面向对象设计--设计模式基本概念
架构模式:软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反应了开发软件系统过程中所做的基本设计决策。设计模式:主要关注软件系统的设计,与具体的实现语言无关。惯用法:是最低层次的模式,关注软件系统的设计与实现,实现实现时通过某种特定的程序设计语言来描述构建与构建之间的关系。每种编程余元都有它自己特定的模式,即语言的惯用法。例如引用-计数就是C++语言中的一种惯用法。
设计模式分类
创建型模式
结构性模式
行为性模式
例题:
人机界面设计
人机界面设计的基本原则:
置于用户控制之下减少用户的记忆负担保持界面的一致性
例题:
WEB开发 基本概念WEB开发从不同的维度看,有不同的相关概念去理解。
从单机到功能分离的设计 应用集群设计应用集群设计如下图所示:
应用集群的问题:
负载均衡
数据库读写分离
CDN(内容分发网络)
CDN的全称是Content Delivery Network,即内容分发网络,其基本思想是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
XML和JSON WEB应用服务器缓存技术 REST(表述性状态传递) 响应式WEB设计



