系统架构设计
文章平均质量分 73
windshome
这个作者很懒,什么都没留下…
展开
-
使用J2SE进行服务器架构技术选型的变迁
虽然现在对大多数程序员来讲,基本不会再有使用Java开发一个服务器这样的任务,但是,这方面的技术研究一下,对自己的技术提高还是非常有帮助的。说不定啥时候能派上用场。 使用Java(J2SE)来设计服务器产品(不使用开源或其他已有产品)的架构,随着Java的不断发展,这几年也发生了很大变化。在JDK1.4之前,使用Java构建服务器应用本身就很少,所以这里也就不提了,我...2013-03-27 20:34:27 · 107 阅读 · 0 评论 -
架构师的“功夫在诗外”之二
继续上一篇未说完的话题,这一篇,提出一些问题,供有志于学习架构的朋友们参考吧。 走在大街上,去观察下面的问题 (1)超市一般选择什么样的外部格局和内部格局?政府办公楼呢?租给IT公司的写字楼又如何?给一般市民的住宅、豪华别墅等等等等? (2)超市买到的各类食品,一般在包装上的成本是多少?原材料的成本是多少?外形涉及、工艺又是多少?...原创 2013-02-18 17:14:20 · 120 阅读 · 0 评论 -
轻架构(一):缘起--架构的核心目标是什么
在现在这个时代,架构变得异常复杂,也异常艰深。轻架构这个概念,也就是让架构正本清源,回归本来面目。那什么是架构的本来面目呢? 架构的英文是Architecture,本身是一个从建筑行业学习来的词语,用在软件设计和开发这个领域,主要是指“系统在其环境中的最高层概念”(IEEE98),架构的任务指:建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。这样的决定是有...原创 2013-08-28 22:01:20 · 525 阅读 · 0 评论 -
从架构角度来分析Spring
对Spring,甚至Java世界目前的做法我抱慎重态度,但是又希望这个东西能越做越好。如果Spring能够抓住自身的重点,那么还是大有发展的。IoC和AOP是毫不相关的两个事情,揉到一个框架里叫Spring,有点白菜拌花生米的感觉,最好是分裂成两个框架来做。关于AOP我甚至觉得,Spring拿来了别人的AOP来搞,其实很没有意思,并且对AOP没有什么大的发展和贡献。只是因为Spring名气大,...原创 2013-09-06 09:41:41 · 140 阅读 · 0 评论 -
从丰田汽车暴冲事件看程序中有漏洞和bug应当承担什么样的责任
下面这个内容是转自“软件定义世界”群,博主自己的意见如下: 程序里有个 bug就有吧,有个漏洞就有吧。以后再去修正修补,已经不错了。这就是目前主流的做法。这是个荒谬的现状。软件、服务承载着承诺与契约,未能满足契约难道仅仅是修补修正就能让人满意吗?固然,从一开始就完美太难,但恶意留下漏洞,或粗制滥造,凑合着交差,不做认真的测试,欺瞒评测机构,这些行为难道合理合法吗?这样的情况,...2015-02-04 10:40:01 · 902 阅读 · 0 评论 -
架构师寄语:请学会正面分析问题
在这样一个IT世界里,作为系统架构师,经常要对各种产品、框架等等进行对比分析和评判。我们应当如何评判这些东西呢? 我发现现在一个很流行的做法就是把用户量和使用情况作为依据,这让我想起来一本很出名的书《走出思维的误区》,我觉得很多人的思维都走进了一个误区。 比如,我问,Tomcat好不好用?数据库连接池DBCP好不好? 很多人都会说,Tomcat很好用啊,很多人都在用啊。DB...原创 2014-03-24 20:30:26 · 145 阅读 · 0 评论 -
复杂系统设计开发的正道和关键
经常见到一些开发人员在讲,使用框架(例如Spring、ORM)是为了解决复杂度的问题,系统太复杂、业务太复杂,如果不用这些,做起来岂不是非常困难? 对此,我的看法是,期望工具解决系统复杂度的问题非常不现实,它们起到的是实现(代码)阶段的一些规范化和减少代码量,使程序员对于一些通用类型的模块和工具不再重复工作,但是对真正的系统复杂度,大体上是无能为力的。 复杂度的问题,我更赞...2015-04-15 09:30:39 · 243 阅读 · 0 评论 -
我们能使操作系统安全可靠吗?(一)
下文是美国电气与电子工程师学会计算机学会《IEEE Computer》2006年第5期的一篇论文“Can We Make Operating Systems Reliable and Secure”,作者Andrew S. Tanenbaum、Jorrit N. Herder、Herbert Bos。 长期以来微内核体系结构由于其性能较单核结构逊色而被人忽视。如今微核结构有可能由于...2015-05-14 11:22:01 · 484 阅读 · 0 评论 -
正式声明停止使用Spring的架构师
这是来自 JOHANNES BRODWALL 的一篇博文,他曾经在Dzone上发表谦卑的架构师一文引发了争论,在这篇博文中他正式声明停止使用Spring。下面是原文大意翻译:我对Spring和依赖注入框架的意见引起争论,我是挪威Spring最早的使用者之一,我们开发一个庞大系统,我们最终不得不考虑一些事情,如XML配置的重用机制,Spring的@Autowire和组件扫描功能帮我们...原创 2014-09-12 17:35:03 · 239 阅读 · 0 评论 -
分析某位高人对ORM的评价
其实,我认为,关系数据库与OO没有阻抗,这一观点是从外部(业务的角度)来看程序和系统,这样来看的话们我们把程序理解成一个故事,应当保存就保存,应当获取就获取,保存和获取是故事中的一些具体情节而已。 说到CRUD,就不是这个视角了,外部看,只有“将某个数据保存起来”和“取出来某个数据”而已。而这个“情节”,是永远需要的。但“CRUD”却不是永远需要的,况且,即便从内部看,很多大...原创 2014-09-15 16:16:03 · 191 阅读 · 0 评论 -
架构师的“功夫在诗外”
古人作诗,云“功夫在诗外”,这句话说得很有味道。开始也是不太清楚,在软件架构这个领域混了多年,对此有了深切的体会。一门心思深入在软件、计算机技术里,古人对软件架构有很多好处,能得到很多知识,增长能力,但最好是能把眼界放宽,从在在处处学习。我个人觉得这是一个更好的学习方法。 我读了一些计算机专业,讲架构的书,但是发现自己更爱读一些看似无关的书,包括《设计心理学》、《建筑...2013-02-17 17:26:08 · 176 阅读 · 0 评论 -
系统设计和开发中,方法论比技术更重要--兼谈怎样做Java服务器的性能分析和调整...
记得在前些年,有一次,在客户那里做系统的性能分析和调整时,也是一点一点的分析,也没有什么头绪。有一个客户那边的负责人,对我们当时的一些做法表示不理解,当时他说了一句话:“做性能分析和调整,首先你得有自己的方法论,然后再谈具体的技术手段”。当时我们还觉得这个客户对我们有意见,觉得自己的做法没有什么不对的。但是在后面这些年里,我深刻的感觉到,这句话真是金玉良言。 其实我并不大喜欢充满哲...2013-07-12 18:53:58 · 145 阅读 · 0 评论 -
架构是干什么的
现在“架构”这个词还是挺火的,什么理解都有,我也来谈谈我的看法。 我觉得架构首先完成一个系统的复杂度切分,架构本身不解决系统的任何问题,只是把系统的复杂度切分到不同的子系统或模块中。架构关系的是系统整体的耦合度。模块切分时的平衡、复杂度切分时是否合理。 这样来看,系统架构的重点是系统的整体。 一个好的系统架构,应该有下面的几种特征: (1)简单: ...2013-01-31 16:48:29 · 468 阅读 · 0 评论 -
Java 数据库连接池的技术选型都应考虑哪些要素
数据库连接池是一个牵涉面很广的话题,对于大型系统,数据库连接池的好坏,关系到系统的性能和稳定性,因此,选好数据库连接池,是系统在架构时期的一个重要任务。 一般来讲,Java数据库连接池的选择,有两个选择,一是使用现有的开源组件,二是自己动手开发。 使用现有的开源组件,有很多可选择: ProxoolBoneCPDBCPDruidC3P0...原创 2013-03-28 13:49:56 · 456 阅读 · 0 评论 -
关注产品和项目开发中的反模式
设计模式是一个被大家熟知的话题,但是熟悉“反模式”的人就很少了,其实,从字面讲,反模式也就是一些经过惨痛教训总结出来的,被公认为不是很好的方法和行为,请在你的开发实践中,尽量避免出现这样的问题,因为很容易导致失败和错误哦! 维基百科对“反模式”的定义如下: 在实践中明显出现但又低效或是有待优化的设计模式,是用来解决问题的带有共同性的不良方法。 反模式分为如下...原创 2013-04-02 15:43:27 · 186 阅读 · 0 评论 -
从诸葛亮的战败计看系统架构和项目管理
我之前文章里写了诸葛亮的“战败计",诸葛亮最长于形势不佳时尽量降低损失和伤害,这于我们架构师和项目管理者,是非常值得学习的。 对系统架构来讲,最应该谨慎的一件事,就是每一个假设,都可能会变化,每一个环节,都可能在变化的环境中,变化的条件下出错或失败。某一个环节失败,对整个的产品,会产生什么样的影响?要怎样处理?又应当怎样改进以避免错误? 《三国》里经典的一...2013-04-28 11:39:50 · 203 阅读 · 0 评论 -
UI设计的原则和禁忌
基本原则: 1、关注用户及其任务,而不是技术 2、首先考虑功能,然后才是表示 3、从用户的视角看问题,使用用户的词汇进行描述 4、不要向用户暴露实现细节 5、使常用的用户任务简单化,不要让用户解决额外的问题 6、保持一致性,引导用户的使用习惯 7、保持显示惯性,传递信息,而不仅仅是数据 8、设计应满足响应需求禁忌: 1、同一页面包含重复功能的链接或按钮 2、将复选框用作单选按钮 3...原创 2013-05-14 09:16:52 · 462 阅读 · 0 评论 -
什么是程序的本质?是数据结构+算法+设计模式吗?
有一阵子很喜欢JDon这个论坛,里边经常有一些深入的讨论,给人以启发,引发人的深层次思考。最近在上边看到一篇帖子,里边提到对程序本质的思考,由此我联想到著名的《编程之禅》,也想了很多。 在这篇帖子的开始,提到:什么是程序?结论是:程序=数据结构+算法+设计模式。 这也算是站在一个角度,从方法论的角度来思考程序的设计和开发,这里我想也提出一个观点:...原创 2013-05-20 12:17:29 · 1182 阅读 · 0 评论 -
ORM已经死了吗?我不喜欢ORM这东西
做开发这一行这么多年,Java开发也十多年了,我一直不大喜欢ORM这个东西,我觉得这个东西实际上是对思路的一种误导,这也和常见ORM的做法有关。 我做系统设计时,一般都是先不设计数据库,或是把数据库设计尽可能后延,先把系统业务逻辑中,各种对象的业务关系,使用UML、流程图或伪码、代码的方式来描述,来评审,而其中数据存取部分都是伪实现和伪设计,在设计期间,...2013-05-28 17:38:53 · 468 阅读 · 1 评论 -
对ORM的讨论,兼回复几位朋友
我觉得ITEye的回复管理不好用,或者是我用不好这个功能,所以如果回复内容较多的时候,还是单独写一篇吧。 首先要说的是 jinnianshilongnian你老兄太客气了,你觉得我的说法不对就直说,归根到底,我们只能根据已有的经验,说一说自己的看法,对不对,都需要多听取别人的看法,来完善自己的认识,所以说欢迎大家的指教,这是帮助我成长,改正我错误的观...2013-05-29 10:11:18 · 72 阅读 · 0 评论 -
是否应该使用存储过程?浅论架构中的粘合层
前一阵子看到网上关于是否该使用存储过程的一些争论,对我颇有启发,当初我们在做系统设计时,对是否该使用存储过程,也争论了很久,最后还是没有定论,留了一些存储过程,但是业务逻辑都在代码里,现在想来是一个明智的决定。这个争论使我想起一个架构设计时的词语“粘合层”,下面我把自己这方面的心得和感受详细的描述一下。 一般情况下,我做设计时,很有...2013-05-31 14:19:08 · 156 阅读 · 0 评论 -
Java/J2EE:这是一个概念横行满天飞的时代
这些年设计和开发领域里发展很快,但是给我的感觉,就是实际的东西比之从前,没有什么大的变化,或者说,变化很多,但是本质性的变化很少。我觉得这是符合一门技术、一门语言的发展规律的。但是不可思议的是,概念的增多却非常非常的块。再换句话说,本质的东西的变化和增加,远远没有概念增加的快。 看看这些年Java/J2EE领域的概念吧,比之雨后春笋,也不遑多让: Bean(我到现在都没...原创 2013-06-20 13:20:45 · 162 阅读 · 0 评论 -
ORM是一种很失败的设计,属于典型的反模式
作为Java和Ruby程序员与架构师的Yegor发表一篇博文:ORM Is an Offensive Anti-Pattern,认为ORM是一个可怕的反模式,违反了所有的面向对象原则,撕裂了对象,将它们变成哑巴和被动的数据袋,没有任何借口在任何应用程序中使用ORM,无论是成千上万的小型Web应用或企业级的基于数据表的CRUD操作系统(ORM包括Java的Hibernate/JPA,python...原创 2014-12-02 17:33:37 · 386 阅读 · 0 评论