架构设计

SHH.软件架构设计

穿精又带淫゛_ 提交于 2019-12-02 22:46:49
1、《软件框架设计》word版.doc_人人文库网.html( https://www.renrendoc.com/p-13271106.html )  软件架构设计---软件架构概述 - hu19930613的博客 - CSDN博客.html( https://blog.csdn.net/hu19930613/article/details/82749302 ) 2、 3、 4、 5、 来源: https://www.cnblogs.com/DrMess/p/11765628.html

从初级“码农”到高级“架构”,我的成长之路(Java向)

匿名 (未验证) 提交于 2019-12-02 21:53:32
我是如何走上技术这条路的? 2008 年大学毕业,我离开了母校武汉理工大学,在院长老师的推荐下,我来到了上海,这个对于我来说非常陌生的地方。我有幸加入了一家创业公司,刚开始工作的时候我学习了什么是云计算?什么是 SaaS、PaaS、IaaS?我们花了三年时间开发了一款PaaS 平台,让用户可以在该平台上量身定制自己的软件,最终为客户提供基于 SaaS 的产品。确实很骄傲,那时我们已经在做云了,只是没想到后来云会在中国得到这么好的市场。 在 2008 年,我为公司拿回了“第一桶金”,这也是我从程序员转向项目经理的里程碑。当时我带领团队远赴深圳,为国信证券公司开发经纪人管理系统,这个项目对于我个人而言却是一笔至高无上的财富,我开始学习如何与人打交道,如何做需求分析,如何将需求转变为技术,如何带领团队小伙伴一起工作。学到了太多太多,但我依然选择在我工作第四个年头里离开了公司,我刚加入的时候,公司只有 5 个人(包括老板和前台),当我离开的时候,公司已经有 200 人左右了。感谢老板!我在他身上学到了很多,他的思想和态度直到今天都还在影响着我。 我的第二份工作还是选择了我最熟悉的证券金融行业,同样也是一家创业型公司,在这家公司里我担任了技术经理,管理了整个技术团队,从项目的售前到售后,我都亲自带领团队来完成。虽然在这家公司我只做了两年,但在这短短的时间里,我学会了如何提高开发效率

从初级“码农”到高级“架构”,我的成长之路(Java向)

匿名 (未验证) 提交于 2019-12-02 21:53:32
我是如何走上技术这条路的? 2008 年大学毕业,我离开了母校武汉理工大学,在院长老师的推荐下,我来到了上海,这个对于我来说非常陌生的地方。我有幸加入了一家创业公司,刚开始工作的时候我学习了什么是云计算?什么是 SaaS、PaaS、IaaS?我们花了三年时间开发了一款PaaS 平台,让用户可以在该平台上量身定制自己的软件,最终为客户提供基于 SaaS 的产品。确实很骄傲,那时我们已经在做云了,只是没想到后来云会在中国得到这么好的市场。 在 2008 年,我为公司拿回了“第一桶金”,这也是我从程序员转向项目经理的里程碑。当时我带领团队远赴深圳,为国信证券公司开发经纪人管理系统,这个项目对于我个人而言却是一笔至高无上的财富,我开始学习如何与人打交道,如何做需求分析,如何将需求转变为技术,如何带领团队小伙伴一起工作。学到了太多太多,但我依然选择在我工作第四个年头里离开了公司,我刚加入的时候,公司只有 5 个人(包括老板和前台),当我离开的时候,公司已经有 200 人左右了。感谢老板!我在他身上学到了很多,他的思想和态度直到今天都还在影响着我。 我的第二份工作还是选择了我最熟悉的证券金融行业,同样也是一家创业型公司,在这家公司里我担任了技术经理,管理了整个技术团队,从项目的售前到售后,我都亲自带领团队来完成。虽然在这家公司我只做了两年,但在这短短的时间里,我学会了如何提高开发效率

高并发web网站架构设计

谁说我不能喝 提交于 2019-12-02 17:55:31
千万级 PV 规模高性能高并发网站架构 高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。 如果把来访用户比作来犯的"敌人",我们一定要把他们挡在 800 里地以外,即不能让他们的 请求一下打到我们的指挥部(指挥部就是数据库及分布式存储)。 如:能缓存在用户电脑本地的,就不要让他去访问 CDN/cache。能缓存 CDN/cache 服务器上 的,就不要让 CDN/cache 去访问源(静态 web 服务器)了。能访问静态 web 服务器的,就 不要去访问动态服务器。以此类推:能不访问数据库和存储就一定不要去访问数据库和存储。 高性能高并发高可扩展网站架构访问的几个层次: 第一层: 首先在用户浏览器端,使用 Apache 的 mod_deflate 压缩传输,再比如: expires 功 能,deflate 和 expires 功能利用的好,就会大大提升用户体验效果及减少网站带宽,减少后端 服务器的压力。 提示:有关压缩传输及 expires 功能 nginx/lighttpd 等软件同样也有。 第二层: 静态页面内容缓存,如图片/js/css 等或静态数据 html,这个层面是网页缓存层,比 如 CDN(效果比公司自己部署 squid/nginx/varnish 要好,他们更专业,价格低廉,比如快网 /CC 等,而且覆盖的城市节点更多)。 自己架设 squid

高并发大型网站架构设计思路(待补充)

感情迁移 提交于 2019-12-01 16:35:02
一个大型的网站网站应该由如下6个子系统组成 负载均衡系统 反向代理系统 Web服务器系统 分布式存储系统 底层服务系统 数据库集群系统 为什么要做高并发系统设计? 事实上,针对于任何单一的网络服务器程序,其可承受的同时连接数目是有理论峰值的,通过C++中对TSocket的定义类型:word,我们可以判 定这个连接理论峰值是65535,也就是说,你的单个服务器程序,最多可以承受6万多的用户同时连接。但是,在实际应用中,能达到一万人的同时连接并能保 证正常的数据交换已经是很不容易了,通常这个值都在2000到5000之间,能达到上万已经很不错了。目前的门户网站动辄几千万的访问量,所以,高并发的 系统架构在所难免。 整体架构 真实中的网站架构也许并不如此也可以实现高性能。但是高性能的网站莫不过如此。如下图所示。 第一 负载均衡系统 负载均衡系统分为硬件和软件两种。 硬件负载均衡效率高,但是价格贵,比如F5等。 软件负载均衡系统价格较低或者免费,效率较硬件负载均衡系统低,不过对于流量一般或稍大些网站来讲也足够使用,比如lvs。 第二 反向代理系统 目前普遍使用Squid或者nginx,或者Lighttpd,Varish。 这四者又各自有很大的差异。 Squid:主要用来做反向代理,使用内存+硬盘 Nginx:可以反向代理+负载均衡+WWW解析 Lighttpd:反向代理能力一般

程序员转型架构师,推荐你读这几本书

随声附和 提交于 2019-12-01 15:24:41
从CRUD的程序员,到系统的架构师,进阶推荐读这几本书。架构师书单分为两部分,第一部分是关于系统架构的方法论,包括领域驱动设计,微服务,整洁架构,第二部分介绍各大互联网大公司是如何做系统架构落地实践。 程序员书单会做成一个系列,会推荐面试,职业规划,软技能等不同主题的书单,同时我会在博客和公众号「架构进化论」中,对书单中推荐的好书做解读,欢迎持续关注。 一、方法论 《领域驱动设计》 这本书可以帮助我们理解用代码呈现真实世界的重要性,并且告诉我们如何更好地进行建模。 简而言之,这本书提供了深入的架构洞察力,并帮助你在不断变化的环境中创建强大的系统,最重要的是,Eric Evans用开发人员可以理解的语言来描述,非常难得。 书中给出了领域驱动设计的系统化方法,并将人们普遍接受的一些实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计新实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。 《架构整洁之道》 来自传奇人物Robert C. Martin的实用软件架构解决方案,作者还有另外一本非常经典的书《代码整洁之道》。 干净的架构对于每一个软件架构师、系统分析师、系统设计师和软件管理人员来说都是必不可少的,想要成为软件架构师,这本书一定是必不可少的。 《微服务设计》 这是一本了解现代分布式软件设计和体系结构的好书,特别是微服务,如Uber,Facebook

SpringMVC架构设计分享

与世无争的帅哥 提交于 2019-12-01 09:13:18
根据大神的博客 SpringMVC深度探险系列 跟开涛学SpringMVC 消息转换器HttpMessageConverter 我自己的SpringMVC源码分析 这里的不全,可以到之前的地方查看 SpringMVC源码分析 加上自己看的源码,整理了一份SpringMVC架构设计的分享ppt,下载地址如下: SpringMVC架构设计的分享 来源: oschina 链接: https://my.oschina.net/u/2287728/blog/398853

完整开发流程管理提升与系统需求分析过程 随堂笔记(day 1) 【2019/10/14】

三世轮回 提交于 2019-12-01 08:19:53
Top12原则: 主要资源,重要功能,依据需求重要度进行资源分配, 项目100功能 1 day -> 100Task -> 10 Dev 20% 80% 开发各阶段流程及规范      需求、架构、设计、开发、测试等阶段流程及规范                      需求是基石      总流程 :战略规划 3-4年->产品立项-> 用户调研+竞品分析->业务信息 -> 需求分析 -> 指导 开发 与测试规范 -> 标尺【功能清单 + 4 要素: 界面 + 逻辑 + 交互 + 数据】-> 架构过程 -> 主体结构【系统模块/接口/分层/框架】-> 项目管理分工->详细设计【模块代码 结构定义】-> 代码实现 -> 迭代开发 + 迭代测试 + 持续集成 -> 系统测试 -> alpha test -> 用户验收测试 -> Beta Test -> 商用 产品效率质量 =团队能力 + 写作流程 改进收益: 需求>测试>架构>编码 软件研发完成过程 -> 迭代画开发 ->敏捷开发 敏捷开发过程 : REQ ->Architecure -> Iteration[Desing + Coding + Test] -> System Test 迭代过程 ex :24month project HLR(高阶需求,只列出功能列表) 5% 2 week 400 Feature->

细谈八种架构设计模式及其优缺点概述

无人久伴 提交于 2019-12-01 00:33:26
一、什么是架构 我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是 骨架 ,如下图所示: 人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤。架构对于软件的重要性不亚于骨架对人类身体的重要性。 二、. 什么是设计模式 这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是 设计经验 ,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提高工作效率。 作为一个工作10年以上的老码农,经历的系统架构设计也算不少,接下来,我会把工作中用到的一些架构方面的设计模式分享给大家,望大家少走弯路。总体而言,共有八种,分别是: 单库单应用模式 :最简单的,可能大家都见过 内容分发模式 :目前用的比较多 查询分离模式 :对于大并发的查询、业务 微服务模式 :适用于复杂的业务模式的拆解 多级缓存模式 :可以把缓存玩的很好 分库分表模式 :解决单机数据库瓶颈 弹性伸缩模式 :解决波峰波谷业务流量不均匀的方法之一 多机房模式 :解决高可用、高性能的一种方法 三、单库单应用模式 这是最简单的一种设计模式,我们的大部分本科毕业设计、一些小的应用,基本上都是这种模式,这种模式的一般设计见下图: 如上图所示,这种模式一般只有一个数据库,一个业务应用层,一个后台管理系统

系统架构设计师 - 论文主题汇总

我怕爱的太早我们不能终老 提交于 2019-12-01 00:13:08
0. 题型 0.1 内容要求 摘要字数在 400 字以内,可以分条叙述,但不允许有图、表和流程图。 正文字数为 2000 字至 3000 字,文中可以分条叙述,但不要全部用分条叙述的方式。 0.2 题目 第一题 介绍主题相关的项目 可以包含以下内容 开发背景 总体需求 采用的技术体制 (使用该技术/方法的、该项目的)动机与期望 介绍担任的主要工作 第二题 理论描述,因主题而异 第三题 如何应用到项目中的,比如用到里理论中提到的哪些概念,又是如何实现的,实施效果又如何。 遇到了哪些问题,又是怎么解决的,实施效果又怎么样? 0.3 注意 细心审题,问的是什么 备考阶段要专心于自己最熟悉、最复杂、最高级的系统或项目,因此这个系统或项目中自己不熟悉的部分就不要准备了,免得到时候瞎扯。所以后面这种都加上了 删除线 。 1. 软件架构(体系结构)设计 2018,论软件体系结构的演化 软件体系结构的演化是在构件开发过程中或软件开发完毕投入运行后,由于用户需求发生变化,就必须相应地修改原有软件体系结构,以满足新的变化了的软件需求的过程。体系结构的演化是一个复杂的、难以管理的问题。 概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。 软件体系结构的演化是使用系统演化步骤去修改系统,以满足新的需求。简要论述系统演化的6个步骤。