Giter Club home page Giter Club logo

software-architecture-design's Introduction

微服务架构设计的首要任务就是合理划分微服务,即围绕业务功能创建微服务项目。在划分微服务时,有关微服务粗细粒度的考量,建议在平台创建的初始阶段使用粗粒度的方法,按业务功能进行划分。随着业务的发展及其运营的情况,再依据发展规模考虑是否继续细分。下面,我们将使用水平划分法和垂直划分法两种方法相结合的方式创建微服务

一方面在水平方向上

根据业务功能划分微服务,并把这次划分所创建的微服务称为REST API微服务。REST API微服务负责业务功能的行为设计,主要完成数据管理方面的工作,并通过使用REST协议,对外提供接口服务。

另一方面在垂直方向上

再以REST API微服务为基础,实现前后端分离设计,创建Web UI微服务。Web UI微服务不直接访问数据,它只专注于人机交互界面的设计,它的数据存取将通过调用REST API微服务来完成。这样,经过两次微服务划分,我们就可以创建出REST API和Web UI两种类型的微服务。也就是说,我们只要使用两种类型的微服务,就可以构建一个复杂的业务系统。

使用REST API和Web UI微服务,结合高性能和高并发的设计,再通过微服务的多副本发布,就可以构建一个能适应任何规模访问的、多维的、稳定牢固的网格结构,并且这个网格结构还具有自由伸缩的特性,可以根据业务的发展规模进行扩充或者缩编,这样就可以快速地搭建一个可持续扩展的系统平台

Software-Architecture-Design

软件架构设计的流程,从项目立项--》项目需求--》项目设计--》项目开发


2

2

架构分层

image

1-2

2

架构设计名词解析
火龙果软件架构设计---softwear archietcure good 架构设计的本质
解道 凤凰架构---构建可靠的大型分布式系统 ” 周志明的软件架构课 为什么这么设计---程序设计决策
UMLchina---潘加宇 软件需求设计方法学全程实例剖析幻灯片---潘加宇 《软件方法》书中自测题-题目全文+分卷自测(1-8章)16套111题---潘加宇
[2020.01加一套题]UMLChina建模竞赛题大全-题目全文+分卷自测(11套110题)---潘加宇 UMLChina建模竞赛题答案及解析------潘加宇


在线书籍

设计模式

软件架构设计

邻域驱动设计(DDD)

微服务架构设计

云原生

不可变基础设施

弹性计算

高低零代码

API设计

Serverless(无服务器架构)

istio (服务网格架构)

架构设计实践


设计工具

领域驱动设计架构(DDD)

多租户技术或称多重租赁技术,简称SaaS

架构设计案例

大型电商平台微服务设计入门案例
张传波 软件设计是怎样炼成的---实际操作的步骤 凤凰架构---构建可靠的大型分布式系统 周志明 周志明的软件架构课 为什么这么设计---程序设计决策
高并发架构的整体思路
企业总体架构要如何做?小白也能快速领悟的设计** 架构师是怎样炼成的
MVC设计架构落地案例---看完这篇,别人的开源项目结构应该能看懂了 MVC架构杂谈
阿里巴巴公司中优秀的代码都是如何分层的? java web开发中的各种层 一文教会你如何写复杂业务代码
面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,结合实际的业务场景,我沉淀了一套“如何写复杂业务代码”的方法论,一文教会你如何写复杂业务代码
应用架构之道:分离业务逻辑和技术细节 用架构方法实现业务架构与应用架构对准
业务-应用-数据-技术架构的正向设计方法 解剖实体框架
我是怎么画架构图的
架构设计实践五部曲(一):架构与架构图 架构设计实践五部曲(二):业务架构与产品架构设计实践 架构设计实践五部曲(三):从领域模型提取数据架构
架构设计实践五部曲(四):单体式与分布式的应用架构 架构设计实践五部曲(五):技术架构的战略和战术原则
国内主流在用的10大后台UI框架,私活必备
都说软件架构要分层、分模块,具体应该怎么做之一 都说软件架构要分层、分模块,具体应该怎么做之二 业务架构实践:一步一步画出业务架构图
需求分析挑战之旅——疯狂的订餐系统

架构设计的六大原则

架构收藏必备:架构设计的六大原则 架构设计:微服务架构如何划分?这6个标准原则让你一目了然

软件架构模式分类

软件架构入门 程序员必知的几种软件架构模式
软件开发模型的演化 十种软件架构设计模式(Architectural Pattern 四种软件架构演进史,程序员会一种就很牛了
项目经理小姐姐非要给我讲一讲,项目开发规范和流程!---项目开发的工具
耦合到底意味着什么呢 Software Design Tutorial #1 Software Design Tutorial #2
软件架构设计模式(Architectural Pattern)不同于设计模式(Design Pattern) Java架构:一文读懂微服务架构的重构策略
程序员转型架构师,推荐你读这几本书

软件测试

架构常用的设计图

UML学习入门就这一篇文章 活用类图——分析业务概念模型(图文)

目录

我做的项目中通常每个项目至少需要1份架构设计文档、1份数据库设计文档、0到多份模块设计文档和1份用户体验设计文档

软件架构设计为什麽难?因为它是跨越现实世界(问题领域)到计算机领域(解决方案)之间的一座桥,需求分析是明确“问题领域”,将要解决的问题以 "功能 + 质量 + 约束"的形式定义下来,但需求不管做得再细,也没有打破“系统是黑盒子”这一点,软件架构设计就是完成从面向问题领域到面向解决方案的转换 (进入系统黑盒子)


软件架构视频

参考的资料

综合性软件设计文档示例

software-architecture-design's People

Contributors

stevenli91748 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.