架构内容 节选自《闻缺陷则喜》(此书可免费下载)

简介: 架构内容 节选自《闻缺陷则喜》(此书可免费下载)


  1. 架构内容
  1. 取舍

质量、工期与成本三者之间是相互影响、相互制约。质量与工期影响着成本。成本又约束着质量和工期,工期影响着质量的提高。反过来质量的提高又促进了工期的缩短。让公司亏钱是最大的罪过;工期的长短严重影响现金流,暂时亏损可以拉投资,没现金流公司会倒闭。

体会:一,有时,要求高质量会让成本翻倍,所以不如分两阶段,第二阶段重写,不留历史包袱。二,不同经历的开发人员侧重于不同的质量要求,有的适合快,有的时候适合可维护性、可复用性。天下武功唯快不破,快是很大的优势。90%的项目会失败,项目早出生,早验证,早止损。三,不同阶段,质量要求不同。四,取舍和优先级重要。

 

  1. 转换成开发级需求和规则

寻找边框用各级功能需求的区别

系统级功能需求

CAD插件可以自动识别边框。

第一版

用户级功能需求

边框分三类,直线、多以线、块。

开发级功能需求

边框分三类

  1. line实体,4条line如果刚好可以组成正矩形,则是边框。
  2. 闭合的Polyline、Polyline2d实体的4条边可以组成矩形,则是边框。
  3. 块一定时边框,边框是包围盒。

第二版

用户级功能需求

用户可以配置边框种类,以提升速度和准确性。

开发级功能需求

寻找边框时,增加参数边框类型

有界面可以配置边框类型。

边框类型可以保存。

  1. 运行架构

关注的是应用程序运行中可能出现的一些问题。包括:一,并发带来的问题,比较常见的是“线程同步”、异步、死锁问题。二,生命周期管理,对象创建和销毁。三,状态的变化,如:登录、注销。四,业务流程。

控制流图中不同线程(进程)直接或间接调用的模块可能需要加锁,为了简便,跨线程的数据、资源只有一个模块能直接访问。

  1. 逻辑架构

模块拆分的四个方法:一,按所需技能拆分,如html做界面,C++内核。最常见的是分层细化,如:界面层、业务逻辑层、核心逻辑层、数据层、数据存取层。二,分块,按功能细化。三,按通用专用细化。公司基础库,部门基础库等。四,通用机制的提取。如:某个框架要实现几个接口。

可以用鲁棒图发现遗忘的职责,时序图也能发现一些职责。

 

  1. 开发架构

一,开发技术选型,开发语言、工具。二,将逻辑职责拆分成程序单元。包括:a,自主编写的源程序。b,外包的源程序。c,付费、免费的第三方库、插件、框架。d,脚本、配置文件、注册表。e,其它工具,比如安装盘工具。f,系统工具、免费工具,已有工具。三,程序单元间关系,项目划分、项目目录结构,依赖关系。

混合编程是指使用两种或两种以上的程序设计语言来开发应用程序的过程。如:智勇三国二单机版,C++内核,界面以html对话框为壳,实质为js+html。网络版BS程序,后端C++,前端JS+HTML,通讯方式WebSocket。

  1. 数据架构

分布式是重点内容,但我没经历过,所以不涉及。

数据库概念结构设计和 E-R图

数据库概念模型能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。

E-R图提供了表示实体型、属性和联系的方法。

1. 实体型用矩形表示,矩形框内写明实体名。

2. 属性用椭圆形,并用无向边将其与相应的实体型联系起来。

3. 联系用棱形表示,菱形框内写明联系名,并用无向边分别于有关实体型连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。

如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。

  1. 物理架构

涉及较少不班门弄斧了。


相关文章
|
11月前
|
消息中间件 测试技术 语音技术
架构模式 节选自《闻缺陷则喜》(此书可免费下载)
架构模式 节选自《闻缺陷则喜》(此书可免费下载)
EMQ
|
存储 人工智能 边缘计算
云边协同架构助力智能工厂视觉 AI 缺陷检测应用构建
打破检测系统和产线自动化设备之间的信息孤岛,构建数据高速通道,为视觉AI缺陷检测算法模型提供数据支撑,实现工厂生产智慧优化。
EMQ
478 1
云边协同架构助力智能工厂视觉 AI 缺陷检测应用构建
|
存储 运维 监控
[微服务架构 ]微服务集成中的3个常见缺陷 - 以及如何避免它们
[微服务架构 ]微服务集成中的3个常见缺陷 - 以及如何避免它们
|
Java 开发者 微服务
单体架构知识点及单体架构的缺陷
一个归档包(例如war格式或者Jar格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的方法论,我们称之为单体应用架构,这是一种比较传统的架构风格。
单体架构知识点及单体架构的缺陷
|
缓存 数据管理 应用服务中间件
电商详情页系统实战(2) -小型电商网站商品详情页的页面静态化架构及缺陷
电商详情页系统实战(2) -小型电商网站商品详情页的页面静态化架构及缺陷
432 0
|
架构师 人工智能 中间件
如何自底向上推导应用逻辑架构?+如何自顶向下构建架构?(节选)
如何自底向上推导应用逻辑架构? 一、什么是架构? 大概是在11年前左右,在土豆网做广告平台,同时也做视频CDN的相关事情,当时做一个服务,基础架构是lighttpd + squid + tomcat,将静态资源分离到httpd,get请求使用squid缓存,智能路由使用HTTP post请求,并让tomcat提供服务,当时就觉得这就是架构。
11269 0
|
22天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
7天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
17 3
|
11天前
|
监控 负载均衡 应用服务中间件
探索微服务架构下的API网关设计与实践
在数字化浪潮中,微服务架构以其灵活性和可扩展性成为企业IT架构的宠儿。本文将深入浅出地介绍微服务架构下API网关的关键作用,探讨其设计原则与实践要点,旨在帮助读者更好地理解和应用API网关,优化微服务间的通信效率和安全性,实现服务的高可用性和伸缩性。
30 3
|
14天前
|
存储 Java Maven
从零到微服务专家:用Micronaut框架轻松构建未来架构
【9月更文挑战第5天】在现代软件开发中,微服务架构因提升应用的可伸缩性和灵活性而广受欢迎。Micronaut 是一个轻量级的 Java 框架,适合构建微服务。本文介绍如何从零开始使用 Micronaut 搭建微服务架构,包括设置开发环境、创建 Maven 项目并添加 Micronaut 依赖,编写主类启动应用,以及添加控制器处理 HTTP 请求。通过示例代码展示如何实现简单的 “Hello, World!” 功能,并介绍如何通过添加更多依赖来扩展应用功能,如数据访问、验证和安全性等。Micronaut 的强大和灵活性使你能够快速构建复杂的微服务系统。
38 5

热门文章

最新文章