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

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


  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. 物理架构

涉及较少不班门弄斧了。


相关文章
|
消息中间件 测试技术 语音技术
架构模式 节选自《闻缺陷则喜》(此书可免费下载)
架构模式 节选自《闻缺陷则喜》(此书可免费下载)
EMQ
|
存储 人工智能 边缘计算
云边协同架构助力智能工厂视觉 AI 缺陷检测应用构建
打破检测系统和产线自动化设备之间的信息孤岛,构建数据高速通道,为视觉AI缺陷检测算法模型提供数据支撑,实现工厂生产智慧优化。
EMQ
531 1
云边协同架构助力智能工厂视觉 AI 缺陷检测应用构建
|
存储 运维 监控
[微服务架构 ]微服务集成中的3个常见缺陷 - 以及如何避免它们
[微服务架构 ]微服务集成中的3个常见缺陷 - 以及如何避免它们
|
Java 开发者 微服务
单体架构知识点及单体架构的缺陷
一个归档包(例如war格式或者Jar格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的方法论,我们称之为单体应用架构,这是一种比较传统的架构风格。
单体架构知识点及单体架构的缺陷
|
缓存 数据管理 应用服务中间件
电商详情页系统实战(2) -小型电商网站商品详情页的页面静态化架构及缺陷
电商详情页系统实战(2) -小型电商网站商品详情页的页面静态化架构及缺陷
451 0
|
架构师 人工智能 中间件
如何自底向上推导应用逻辑架构?+如何自顶向下构建架构?(节选)
如何自底向上推导应用逻辑架构? 一、什么是架构? 大概是在11年前左右,在土豆网做广告平台,同时也做视频CDN的相关事情,当时做一个服务,基础架构是lighttpd + squid + tomcat,将静态资源分离到httpd,get请求使用squid缓存,智能路由使用HTTP post请求,并让tomcat提供服务,当时就觉得这就是架构。
11416 0
|
1月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
2月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
54 3
|
2月前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
1月前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
178 69
从单体到微服务:如何借助 Spring Cloud 实现架构转型