- 博客(26)
- 资源 (71)
- 收藏
- 关注
原创 架构师必看-架构之美第14章-两个系统的故事:设计之城(一)
形式永远服从功能。 —Louis Henry Sullivan “设计之城”软件项目表面上与“混乱大都市”非常相似。它也是用C++写的消费音频产品,运行在Linux操作系统上。但是,它的构建方式有很大不同,所以内部结构也非常不同。
2012-06-30 14:12:00 10784
原创 架构师必看-架构之美第14章-两个系统的故事:混乱大都市(一)
你们修筑、修筑,预备道路,将绊脚石从我百姓的路中除掉。 —《以赛亚书》第57章14节 我们要看的第一个软件系统名为“混乱大都市”。它是我喜欢回顾的一个系统—既不是因为它很好,也不是因为它让参与开发的人感到舒服,而是因为当我第一次参与它的开发时,它教给了我有价值的软件开发经验。
2012-06-30 11:22:07 12261
原创 架构师必看-架构之美第14章-两个系统的故事:现代软件神话(一)
架构是一种很浪费空间的艺术。 —Philip Johnson 软件系统就像一座由建筑和后面的路构成的城市—由公路和旅馆构成的错综复杂的网络。在繁忙的城市里发生着许多事情,控制流不断产生,它们的生命在城市中交织在一起,然后死亡。丰富的数据积聚在一起、存储起来,然后销毁。有各式各样的建筑:有的高大美丽,有的低矮实用,还有的坍塌
2012-06-30 10:37:52 8416
原创 架构之美第十三章-美丽的架构
所有前面的方法都有助于我们判断一个架构是否“足够好”—也就是说,是否有可能指导开发者和测试者构建一个系统,并满足系统的利益相关人的功能和质量关注点。在我们每天使用的系统中存在着许多好的架构。 但是,超越足够好的架构是怎样的呢?如果有一个“软件架构名人堂”,那会怎样?哪些架构会陈列在这个艺术馆的墙上?这个想法可能没有你想象的那么遥远—在软件产品线领域,这样的“名人堂”的确存在。(注1
2012-06-29 10:33:11 2794
原创 架构之美第十二章-好的架构
我们曾提到,架构师玩的是折中的游戏。对于一组给定的功能需求和品质需求,没有唯一的正确架构和唯一的“正确答案”。我们从经验中得知,应该对架构进行评估,确定它是否满足其需求,然后再投入资金来构建、测试和部署这个系统。评估试图回答前面小节中讨论的一个或多个一般关注点问题,或回答特定系统的具体关注问题。 架构评估有两种常见的方式(Clements、Kazman和Klein 2002)。
2012-06-29 10:07:55 2299
原创 架构之美第十一章-架构结构
那么,好的架构师如何来处理这些关注点?我们曾经提到过,需要将系统组织成一些结构,每种结构都定义了特定类型的组件之间的具体关系。架构师的主要关注点就是对系统进行组织,让每种结构有助于解答一个关注点所定义的问题。关键的结构决定将产品划分为组件,并定义了这些组件之间的关系(Bass、Clements和Kazman 2003; Booch、Rumbaugh和Jacobson 1999; IEEE 2000
2012-06-29 09:55:36 2169
原创 架构之美第十章-创建软件架构
到目前为止,我们已经讨论了一般意义上的架构,并分析了软件架构与其他领域的架构之间有何相似与差异。接下来我们将注意力转到“如何”设计软件架构。当架构师创建软件系统的架构时,她应该关注什么? 软件架构师的首要关注点不是系统的功能。 这是正确的—软件架构师的首要关注点不是系统的功能。 例如,如果我们请你来设计一个“基于Web的应用”,你首先问我们
2012-06-28 09:55:42 1729
原创 架构之美第九章-架构与设计
架构是系统设计的一部分,它突出了某些细节,并通过抽象省略掉另一些细节。所以,架构是设计的一个子集。关注实现系统组件的开发者可能不会特别关心所有组件如何装配在一起,而是主要关注少数组件的设计和开发,包括他们必须遵守的架构约束和可以应用的规则。因此,开发者和架构师面对的是系统设计的不同方面。 如果说架构关注的是组件之间的关系和系统组件外部可见的属性,那么设计还要关注这些组件的内部
2012-06-28 09:09:10 1350
原创 架构之美第八章-软件架构的含义
如果认为“架构”是一个简单的实体,能够用一份文档或一张图纸来描述,那就错了。架构师必须做出许多设计决定。要想有用,这些决定必须用文档记录下来,这样就能够进行复审、讨论、修改和批准,然后作为后续决定和构建时的约束。对于软件系统,这些设计决定包括行为上的和结构上的。 外部行为描述展示了产品如何与它的用户、其他系统和外部设备进行交互,这应该表现为需求。结构描述展示了产品如何划分为多
2012-06-28 09:04:44 1847
原创 架构之美第七章-软件架构师的角色
软件开发项目需要一些人在软件构建时扮演架构师的角色,就像构建或修复建筑时传统的建筑师的角色一样。但是,对于软件系统来说,从来就弄不清楚哪些决定属于架构师的职责范围,哪些决定要留给实现者。定义架构师在软件项目中做什么,比建筑师的类似定义更困难, 原因有3 个因素: 缺少传统、产品无形性和系统复杂性。( 参见Grinter[1999],其中描述了软件架构师如何在一个大型软件开发组织中实现她的职
2012-06-28 08:56:48 7071
原创 架构之美第六章-建筑师的角色
在设计、构建和修复建筑时,我们指定关键的设计师为“建筑师(architects)”,并赋予他们广泛的职责。建筑师准备建筑最初的草图,展示外观和内部布局,与客户讨论这些草图,直至所有相关方都达成一致意见,认为展示的就是他们想要的。这些草图是抽象:它们关注建筑中某些方面的适当细节,而忽略其他的内容。 当客户和建筑师在这些抽象上达成一致意见之后,建筑师会准备或监督准备更为详细的图纸,
2012-06-28 08:48:32 1556
原创 架构之美第五章-架构概述
建筑师、音乐家、作家、计算机设计师、网络设计师和软件开发者都在使用“架构”这个术语,其他人也用(你有没有听说过“食物架构”?),然而不同的用法其结果也不同。建筑与交响乐完全不同,但都有架构。而且,所有的架构师都在谈论他们工作中的美,以及因此而导致的结果。建筑师可能会说,一座建筑应该提供适合工作或生活的环境,而且它应该看起来很美。音乐家可能会说,音乐应该能演奏,包含能够辨明的主题,而且它应该听起来很
2012-06-27 16:12:17 1776
原创 架构之美第四章-架构与美
人们在生活和工作中发现美并创造美,软件开发和架构设计也不例外。 架构之美体现了关注点的分离与结合。在软件设计中,设计师需要考虑多方面的关注点。漂亮的架构设计让这些关注点尽可能分离,然后以最简单的机制结合在一起,从而得到高内聚、低耦合的系统。例如在Darkstar项目中,架构师们考虑的重点就是如何将多人在线游戏的游戏逻辑与系统的可伸缩性分离开来,让游戏的开发者只要遵守少量的规则,就
2012-06-27 15:46:00 2034
原创 架构之美第三章-美丽架构之道
我无法给架构下一个简单的定义,因为任何定义都会束缚你对架构的无限想象。不可否认,架构师早已出现在人类几千年前的各项生产活动中,比如建筑、音乐。而在计算机软件及Web领域,架构的设计直接影响着系统的生产,比如开发过程和效率、代码和组件复用性等,同时也影响着系统的可用性、可伸缩性、性能、容量可预测性等。 关注架构之美。美丽的架构同样无法定义,可它却一定是自然的、简单的、可复用的
2012-06-27 15:37:30 1707 1
原创 架构之美第二章-美丽架构的含义
古人形容美女之美:“⋯⋯增之一分则太长,减之一分则太短⋯⋯”,深刻地揭示了“恰到好处”的美丽含义。当我拿到《架构之美》书稿时,我发现美丽的含义如此相似。 美丽至简。美丽的架构应尽可能简单,但不要过于简单。书中通过多种例子表达了这个最基本的道理。我见过很多大型的软件架构,从大型的电信网络管理系统,到大规模应用的互联网架构,以及企业级的ERP软件,系统总是遵循从无到有,从简单到
2012-06-27 15:33:39 2017
原创 架构之美第一章-如何看到一滴水的美丽
【一】架构是一个过程,而非一个结果。【二】在大多数人的谈论中,架构是一个目标产物,而作为架构师的责任就是去生产它。所以无论如何,架构是可以“做”出来的,而且也应该有一些“做”的方法、技术、技巧。有人问过我:架构的最主要产出是什么?我的答案是:图。这里面有两层含义:一层含义是如同建筑师描绘的蓝图一样,用于引导实施者;另一层含义是架构师头脑中清晰的目标系统。如果架构师头脑中
2012-06-27 15:03:36 2585
原创 jquery插件系列之 - Slider滑块
概述 滑动条是一种简单的设置一定范围内参数的插件。 官方示例地址:http://jqueryui.com/demos/slider/ ·参数(参数名 : 参数类型 : 默认名称) animate : Boolean : false 设置是否在拖动滑块时执行动画效果。 初始:$('.selector').slide
2012-06-25 17:49:18 34191 2
原创 天气预报web服务使用
首先你在你的web项目下面的References,右击References,点击Add WebRefercenes 然后把http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx地址输入到URl文本框后面,然后点击后面的绿色箭头,再点击添加按钮,此时在web项目里会出现Web Refercens下面会出现一个命名空间,此命名空间里就是
2012-06-25 14:48:46 1522
原创 C#读取QQWry.Dat文件实现IP查询
QQWry数据库下载地址:http://download.csdn.net/detail/fwj380891124/4385554using System;using System.Collections.Generic;using System.Text;using System.IO;using System.Web;using System.Configuration;
2012-06-21 12:25:20 2969 1
原创 .NET读取QQWry.Dat 纯真版ip数据库格式数据源
最新版QQWry.dat下载地址:http://download.csdn.net/detail/fwj380891124/4385554外部调用: //测试地址搜索#region 测试地址搜索 IPScaner objScan = new IPScaner(); string ip = Request.UserHostAddress.ToString
2012-06-21 12:24:47 4169
原创 服务器防火墙的选择
关于服务器安全,新手最常遇到的一个问题就是:该选择哪种防火墙?面对种类如此繁多的服务器防火墙,在选择的时候,是考虑厂商的知名度还是防火墙本身的性能?是选择国内防火墙好还是国外防火墙?该使用收费的企业级防火墙还是尝试免费的防火墙?这些问题,都让人十分头痛。不同应用环境和不同的使用需求,对防火墙性能的要求各不一样。所以要真正找到一款合适的服务器防火墙,重点便是在选择服务器防火墙的时候,认真分析自身
2012-06-15 23:01:45 2797
原创 每天工作4小时的程序员
每个人都熟悉这种作息规律:早上9点去上班,坐在电脑前面,编一天的程序,下午5点下班回家。如今,非常感谢蒂莫西·费里斯 (Timothy Ferriss)的《每周工作4小时》,我开始重新思考应该如何工作,如何让自己变成更有效率的程序员。最近,我把我的从周一到周五的作息规律做了一次较大的调整。很长时间以来,我一直像所有其他程序员那样工作、休息。但就在2011年的下半年,我开 始了一项试验,想看看究
2012-06-05 15:14:51 38102 165
原创 软件设计模式之观察者模式
最近真的很抓狂,心态一直调整不好,严重影响了我学习的动力。 先回顾一下之前学习的知识:简单工厂模式,策略模式,单一职责原则,开发封闭原则,依赖倒转原则,装饰模式,代理模式,工厂模式,原型模式,模板方法模式,迪米特法则,外观模式,建造者模式。今天先到这,状态不好,实在没有办法写下去了,明天再写...
2012-06-04 23:19:24 1767
翻译 十招教你从程序员转向企业家
很多参加BarCamp的人都在痛苦的从程序员转型为创业者。虽然我从来都不是疯狂的码农(把自己关在地下室里一周,折腾出十万行代码这样),但我也曾经做过这样的转型。在创办HelpSpot的这些年中,我确实也总结出了一些经验,以及人们会什么会转型失败。1. 代码只占生意的5%我见到的最多、最严重的问题就是开发者被代码绑架,花费数不清的时间让一个功能变得完美,或者炫耀最新的技术。是
2012-06-04 13:23:09 1325 1
原创 经常出现1年以上的员工离职,怎样给员工未来的发展一个明确的定位?
马云回复《经常出现1年以上的员工离职,怎样给员工未来的发展一个明确的定位?》1年以上3年以下的员工离职,总体上从概率来说会多一点的,所以也不要太紧张,因为员工从充满激情和想法到发现不是那么回事,肯定会有一些想法的。公司的目标“3年内成为一家专业的互联网营销公司,7年内成为一家上市公司,10年内成为一家受人尊敬的公司”,这个目标比较空,比较假,不实在,员工要问:跟我有什么关系,员工真正关心的
2012-06-04 09:08:53 2255 5
原创 软件设计模式之模拟游角色选择(Darren建造者模式)
o(︶︿︶)o 唉,今天的状态不是很好,但是学习还是要继续的,今天和大家一起分享一下建造者模式,记得之前自己之前一直再想QQ秀换装是怎么是怎么是实现的,今天看了建造者模式我明白了... Darren又在每天的这个时候与大家见面了........伴随着家驹的《不在犹豫》今天的学习就这样展开了:首先回忆一下之前我已经学习的设计模式和原则:简单工厂模式,策略模式,单一职责原则,开放封闭原
2012-06-02 00:59:57 3963 5
CefNet.dll网页中文输入程序闪退bug修复
2024-04-17
这是使用C#开发的一个获取窗口文本以及所属进程的一个工具,方便我们可以快速定位到进程Id和进程里面展示的内容
2024-02-22
AvaloniaVS.VS2022
2023-12-01
C#版本的海康热成像系列相机测温实现
2021-07-21
HTML5 socket通信,C#版
2015-08-12
WPF全系列事例代码
2012-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人