软件架构设计分享

简介:
去年由于项目的需要,有时间看了看软件架构设计,读了些书和论文,以前认为架构师做的工作不太多,看完之后,感觉自己和架构师还有一段路程,笔者认为架构师不仅要熟悉技术,业务和管理,更重要的是要有自己的思想,架构设计在我看来,他不是技术,而是一种艺术。我喜欢艺术,我热爱架构,以前在自己的学习道路上总是渺茫,似乎现在找到了方向。
通过一段时间的学习让我认识了互联网软件架构,企业应用软件架构,嵌入式软件架构和有线或无线网络架构。以及在一个方面的各种架构,比如我们经常忽略的安全架构。
希望 blog 友推荐一下,在架构方面如何进一步学习的方法,如何把自己塑造成一个名副其实的架构师。
自己也整理了一个 ppt ,里面有以前公司产品线架构图(自己回忆画的,如有产权问题请及时通知)

/Files/Jack2007/jackwang.pdf

优库上的视频,有时间看看,挺好的!
http://v.youku.com/v_playlist/cz00f1701561o9p0.html

高焕堂老师的视频------如何成为一个合格的架构师,非常棒!!!
http://live.csdn.net/Issue518/LivePlay.aspx

架构笔录:

1、网站流量影响整个网站架构的设计
2、网站架构的设计是一种平衡的设计,没有完美的架构,架构的设计要简单灵活,便于扩充,因此找出平衡点是关键
3、网站架构的设计不要过渡,考虑到1~2年内的用户需求即可
4、小网站与大网站的区别在于,当数据量达到一定级别,小问题会变成大问题
5、大的网站架构不适合做小事情,小架构也做不了大事情
6、即使通过硬件的扩充,架构的负荷已经超过设计负荷的5~10倍,就要考虑重新设计系统的架构,举例来说就是一个研发团队是10个人以内,可以采用家长式管理,而到100人以内,管理方式必须变化,因此架构也要根据负荷情况不断变化
7、要通过网站的监控分析,来找到系统瓶颈的临界点
8、任何一个网站的开发都会是从集中式-分布式-高级分布式的方向过渡
9、Google可以通过机器的扩充来达到网站扩展的要求,依赖的是系统架构设计中的线性可扩展性
10、中国的网站架构和运营要考虑自身的网络运营环境如网通和电信网络的区别
11、网站架构的设计也要考虑运营成本的问题,能得到的资源往往比预期的要少
12、架构的设计要考虑安全性和恶意客户的攻击
13、网站的负载要通过测试来验证,并通过监控系统进行分析,并且要做好风险的应对,系统的负载永远不要超过80%
14、架构的设计中无时无刻不存在折中的情况,痛苦的取舍是必须作出的抉择
15、架构设计中要充分考虑团队、领导和用户间的沟通,龙的那片不能动的鳞也要有策略的动一动
16、架构设计要充分分析数据的特性,读和写哪个更重要,例如Google的搜索根本不用数据库,甚至连文件系统都进行重写,以达到最快的数据读取效果
17、网站架构的设计要考虑API接口的开放性
补充1:
1、网站架构是一门平衡艺术,永远在性能和需求之间寻求平衡
2、Taobao在生态圈上考虑了很久,很有可能会推出重量级的OpenAPI,具体是什么,值得期待
3、腾讯产品在产品稳定性要求很高,单组服务产品的压力测试非常严格,最终把大访问问题转化为添加服务器问题
4、完美的缓存机制需要考虑稳定性、事务处理和分布式,memCache是其中较简单的实现
5、监控程序实时报警,比如同期超过5%的正常波动
6、产品经理要溶入技术团队,避免过度设计

7、用户每上一个台阶,架构设计将迥然不同

本文转自BlogJava 新浪blog的博客,原文链接:软件架构设计分享,如需转载请自行联系原博主。

相关文章
|
6月前
|
Devops 测试技术 项目管理
软件体系结构 - 需求工程
【4月更文挑战第3天】软件体系结构 - 需求工程
73 11
|
消息中间件 架构师 安全
重新认识架构 — 不只是软件设计
通常情况下,人们对架构的认知仅限于在软件工程中的定义:架构主要指软件系统的结构设计,比如常见的 SOLID 准则、DDD 架构。一个良好的软件架构可以帮助团队更有效地进行软件开发,降低维护成本,提高系统的可扩展性和可维护性。这里的架构定义有更多元化的理解:架构不仅是对软件开发设计和流程规范的定义,也包含了参与架构设计的人员、以及项目过程中和架构有关的活动,都可以称为架构。 从广义角度来理解架构,意味着更全面的思考和新的融合。
50 0
|
6月前
|
存储 设计模式 编译器
软件体系结构 - 复杂指令集架构 (CISC)
【4月更文挑战第18天】软件体系结构 - 复杂指令集架构 (CISC)
239 6
|
6月前
|
存储 缓存 数据处理
软件体系结构 - 哈佛架构
软件体系结构 - 哈佛架构
120 0
|
6月前
|
敏捷开发
软件设计中常用的开发模型
软件设计中常用的开发模型
124 1
|
消息中间件 架构师 安全
重新认识架构—不只是软件设计
结合自身经历阐述架构师定位、架构活动如何保障企业、组织实现商业价值。
重新认识架构—不只是软件设计
|
6月前
|
存储 关系型数据库 uml
00003.七大软件架构设计原则
00003.七大软件架构设计原则
77 0
|
开发者
构建可持续性软件架构:六大设计原则
构建可持续性软件架构:六大设计原则
273 0
|
存储 算法 程序员
25【软件基础】面向对象分析与设计思想总结
`面向对象的本质`:通过对象之间的协作完成功能。
657 0
|
敏捷开发 前端开发 测试技术
软件架构编年史:EBI架构
软件架构编年史:EBI架构
软件架构编年史:EBI架构