
架构
文章平均质量分 92
wishfly
这个作者很懒,什么都没留下…
展开
-
构件化与SOA,推进软件生产力
引子: 伴随福特流水线模式的百周年,回顾软件业也已经走了近四十年的光景。而全球软件行业似乎已进入到了中年期,成熟的商业模式,缺乏雨后春笋般的创新型小公司,大公司增长乏力进而带来诸多的并购等。这些都让我们感受到软件行业早已今非昔比,大部分的软件公司都变成了鸡肋。软件从业人员也都从梦想的憧憬回到了实际的运营成本控制中。即使近几年炒得火热的SOA也无法为软件公司带来多少的利润和股价提升。难道软件业转载 2008-01-05 08:22:00 · 1942 阅读 · 2 评论 -
Google Android系统解析
一个小小的机器人,造就了一套全新的手机系统,Android在全球手机市场乏善可陈的时候,为其带来了全新的血液。而为了开发这个小小的“机器人”,却让人们煞费苦心,看看Android背后的开发团队:Google、HTC、摩托罗拉、T-Mobile、高通、德州仪器(Ti)、英特尔(Inter)、Nvidia、三星……哪一个不是如雷贯耳。如此强大的开发团队到底带给我们的是什么呢?转载 2009-03-25 10:24:00 · 2239 阅读 · 0 评论 -
操作系统 之哲学原理
当你在电脑上玩游戏的时候,当你在电脑上与朋友聊天的时候,当你编写了一个程序并加载运行的时候,你有没有一种像观看魔术的感觉?一个人编写的程序能够编译运行,计算出结果,并显示或打印出来。你有没有觉得它很神秘? 如果想揭开这层神秘的面纱,你就得学习操作系统。 因为操作系统是掌控计算机运行的系统,学习它将为读者展示程序在计算机上运行的全景,或者是我们所认为的全景。之所以这么说,是因为精确转载 2009-04-16 07:32:00 · 2031 阅读 · 0 评论 -
计算机模型与体系架构的发展——从图灵机到云计算机1
按照图灵(Alan Turing)给出的计算机模型,计算机是由一个有限状态读写头和一个存储器构成。有限状态读写头从一个初始状态开始,对存储器上的(输入)数据进行读或写操作,经过有限步操作之后停机,此时存储器上的(输出)数据就是计算结果。这样的计算机模型叫做图灵机。下面是一个非常简单的图灵机例子:它会从左至右扫描一串二进制数字,如果该数字能够被3整除(是3的倍数)则在该数字串的末尾写出Y,否则写出N转载 2009-04-08 14:35:00 · 1459 阅读 · 0 评论 -
计算机模型与体系架构的发展——从图灵机到云计算机2
图灵机模型从来就不考虑通信在计算中会有什么用处。正相反,图灵还就是偏偏提到过如果把两(多)部机器相连接使之互相通信,则连接好的机器与单个一部机器没有任何两样!所谓没有任何两样是指单个机器与两(多)台互相通信的机器要么都可以计算某个问题,要么都不可以。所谓可以计算是指图灵可计算概念。它在乎一个问题是否可以由一个图灵机在有限步数内完成,而不是在乎计算效益。比如我们可以很容易写出一个图灵机完成以下转载 2009-04-08 14:36:00 · 798 阅读 · 0 评论 -
操作系统之哲学原理连载之二
操作系统之哲学原理连载之二 第1篇 基础原理篇序对于任何一门课来说,首要探讨的问题就是这门课的主题到底是什么?对于刚接触到操作系统的入门者来说,一个自然的问题当然也就是操作系统到底是什么东西。回答这个问题是本篇的职责。此外,操作系统作为计算机的核心控制系统,它在计算机运行过程中扮演什么角色?它的来历是如何?它有一些什么基本概念?我们应该如何看待操作系统?它是如何参与到程序的执行转载 2009-04-17 10:00:00 · 1500 阅读 · 0 评论 -
Visual Studio 2010开发部署64位程序
Visual Studio 2010将于2010年第一季度发布,今天我们将探讨的是Visual Studio 2010开发部署64位程序。通常来说,采用64位的应用程序与操作系统能够在很大程度上改善性能。这主要是因为其可以提供更大的内存访问。如普通的32位应用程序,内存最多只支持4G,这包括操作系统运行所需要的内存。为此如果应用程序所占用内存的增加势必以减少操作系统所占用的内存为代价。因为总的内存转载 2009-12-25 19:21:00 · 2086 阅读 · 0 评论 -
各种数据库的连接串
第一种 - 这种方法用在ACCESS中最多 strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("aspfree.mdb") set conn = server.createobject("adodb.connection") conn.open strconn 第二种-这种方法用在SQL SER转载 2010-01-04 20:30:00 · 885 阅读 · 0 评论 -
Chrome源码剖析【二】
Chrome源码剖析【二】 【二】Chrome的进程间通信1. Chrome进程通信的基本模式进程间通信,叫做IPC(Inter-Process Communication),在Chrome不多的文档中,有一篇就是介绍这个的,在这里。Chrome最主要有三类进程,一类是Browser主进程,我们一直尊称它老人家为老大;还有一类是各个Render进程,前面也提过了;另外还有转载 2008-10-11 12:24:00 · 1912 阅读 · 0 评论 -
UML(统一建模语言)正在死亡
Little Tutorials的一篇文章断言:UML(统一建模语言)正在死亡:1.由一个委员会设计; 2.他们老想着把UML转化成金钱; 3.试图统一所有的东西包括厨房水池(规格文本大于800页); 4.想要一步登天,违反了程序员的认知; 5.观念膨胀; 6.总是在追赶新的语言和新的概念; 7.UML试图成为一个程序语言; 8.需要昂贵的工具; 9.模式不清晰;转载 2008-06-05 21:54:00 · 1514 阅读 · 0 评论 -
Linux手机研发要过五大难关
Linux手机研发要过五大难关转载时请注明出处和作者联系方式作者联系方式:李先静 Linux手机的前途似乎很少有人怀疑过。曾经做过的,现在正在做的,即将打算做的,在国内估计不下数十家公司。大家都想从中淘一桶金,不过大多是乘兴而来败兴而归,少则损失几百万,多则数千万,有的甚至整个公司因此一厥不振。在真正意义把Linux手机做成功的,在国内可以说曲指可数。本来以为可以靠开源软件与国外大公司站在同一起跑转载 2008-05-06 11:33:00 · 818 阅读 · 0 评论 -
E-development:一场软件开发方法的革命
E-development:一场软件开发方法的革命作者:贾育email: jia_yu@263.net 一、软件开发面临的新挑战纷繁复杂的数字化世界(e-world)呈现出分布性(distributed,)、并行性(concurrent)和协同性(connected)三大态势[Jim00]。海量信息散落在世界的各个角落,一台主机集中控制一切的时代一去不复返了;虽然用户面对的是一转载 2008-01-06 10:34:00 · 1739 阅读 · 0 评论 -
业务框架上消息、异常、Log的实现重点
一、消息体系的实现重点 1、消息必须支持嵌套,应该实现自己的消息对象 2、异常和log必须只支持系统实现的消息对象 3、应该有自己的消息访问对象,可以在其中设定Locale和做一些必要的判断(如MessageID的判断)二、异常体系的实现重点 1、必须有一个共同的父类,用来支持自己的消息对象 2、异常的父类中必须有个属性标志,是否能够继续处理。当发生DB中断异常的时候转载 2008-01-08 08:30:00 · 644 阅读 · 0 评论 -
业务框架中Exception的设计
一,Exception的设计1、uncheck Exception的使用 服务器的framework中,所有的Exception都有框架来处理,业务不需要处理Exception。所以服务器端全部使用uncheck Exceptino。服务器端的uncheck Exception分为三种: SystemException DBException Busin转载 2008-01-08 08:32:00 · 1160 阅读 · 0 评论 -
业务框架中log的设计
这个项目由于我们公司设计经验不足,导致现在到后期需要花大量的时间来弥补。这几天在做项目中的Log整理和统一,觉得非常有必要在业务框架中调整相应的功能。 一、log分类 1、框架信息log 如:Action[{0}]处理开始,Action[{0}]处理成功,Action[{0}]处理异常等,与业务数据无关的log。 2、业务信息log 上篇《业务框架中Messag转载 2008-01-08 08:33:00 · 1300 阅读 · 0 评论 -
业务框架中Message的设计
这个项目由于我们公司设计经验不足,导致现在到后期需要花大量的时间来弥补。这几天在做项目中的消息整理和统一,觉得非常有必要在业务框架中加入相应的功能。一、消息分类 1、成功消息:{0}处理已经成功。 {0}中填入处理的名称,应该是各种按钮的名称。 2、输入check错误消息:{0} 输入check的错误消息没有统一的格式,由各个check贵 2、处理失败消息转载 2008-01-08 08:34:00 · 913 阅读 · 0 评论 -
软件架构师
软件企业中有一个角色叫做软件架构师,不同公司或者不同的环境下,对该职位的定位可能不尽相同。微软首席架构师Ray Ozzie 对自己职位的一些看法,倒是给人很多启发:1. 不管是设计一座桥梁还是一幢大厦,你是在特定的情况下应用各种设计模式2. 在做程序员的时候你要花时间让自己理解各种不同的模式,并能够认知那些设计良好的系统的特性,来提高自己对更高层次抽象的能力。3. 从不同系统中学到的越多,你就越能转载 2008-01-09 13:23:00 · 960 阅读 · 0 评论 -
代码分成两种类别——声明性代码和行为性代码
摘要:代码也分种类?哪种代码能够自动生成?自动生成代码会不会让程序员没有饭吃?或者会颠覆现有的编程模式?写在前面 学习编程,再加上实际开发,写代码也有7个年头了。虽然不敢说有多少多少经验,但思考总是有一些的。这两年慢慢发现,原来代码和代码也是不同的。 编程越来越趋于自动化,尤其在微软的产品里,程序员总是可以很懒惰。但懒惰之余也有顾虑,35岁的年限让很多人从25岁就开始焦虑,就开始“转载 2008-01-14 21:32:00 · 2973 阅读 · 1 评论 -
层与层之间关系
PocketSetupCreator Create a stylish installer for your Windows CE apps Summary PocketSetupCreator is an easy to use utility that wil转载 2008-04-08 15:00:00 · 2408 阅读 · 0 评论 -
一个程序的几个阶段
http://blog.163.com/lyzaily@126/blog/static/42438837201002721510736/?latestBlog转载 2010-07-03 11:47:00 · 1597 阅读 · 0 评论 -
Google云计算核心技术大揭秘
http://cloud.youkuaiyun.com/a/20100607/267313.html转载 2010-06-09 17:49:00 · 1590 阅读 · 0 评论 -
品质在于构建过程吗?
今天在微博上看到几位敏捷爱好者(本着讨论问题的态度故隐其名)探讨敏捷测试和质量保证问题,我忍不住也加入了讨论:Z先生原帖:我刚才看到一个大会演讲稿,谈到敏捷测试六大指导原则:1.仅靠测试人员不可能获得高质量的软件,质量是整个研发团队的责任;2. 场景是不可转载 2011-10-17 15:24:13 · 753 阅读 · 0 评论 -
好程序需要至少写两遍
导读:本文是从《Great code is written twice (or more)》这篇文章翻译而来。文章内容如下:最近这些年,越来越多的人开始转向敏捷开发。各种敏捷开发技术并不新鲜,大多是在80和90年代发展形成。但只是在最近这些年,程序员和(更重要的是)一些商业顾问,架构师,客户开始变得喜欢和拥抱敏捷开发。进化中的需求现在的一种普遍的认识是,在开始编码前,你不可能把所有转载 2011-11-01 11:28:10 · 801 阅读 · 0 评论 -
深度解析:清理烂代码
猜猜看怎么了!你正”继承“(接收)了一堆混乱的旧代码。恭喜你!现在都是你的了。混乱的代码可能来自任何地方。中间件,网络,可能来自你自己的公司。你知道在一个角落里有一个家伙,没有人过去管他在做什么。猜猜看他一直在做什么?辛辛苦苦写出了代码,却是一堆烂代码。你还记得这个模块是一个家伙几年前写的,在他离开公司之前。这个模块已经有20个不同的人加过补丁,进行过代码修复,而且他们也并不理解代码到底是转载 2013-07-04 09:32:10 · 882 阅读 · 0 评论 -
低质量软件编程产生的成本价格细目表
注意:下面这个清单里描述的事情并不是你绝对不能做的,它只是用量化的方法来让你知道编程上的这些做法将会产生的负面代价。这些费用是在代码审查时你将要付出的。不遵守编码风格费用: $0.02代码库中的程序编码风格一致虽然不是很重要,但值得你去遵守。在提交代码的说明信息上偷懒费用: $0.50这主要是为了以后的查找。请细读这篇代码提交说明信息指导(英文)。使用局部变量费转载 2013-09-05 21:04:53 · 884 阅读 · 0 评论 -
大家是怎么做Code Review的?
先说说我们公司现在的做法,一个团队被人为地分为两个阵营:Senior Developers和Junior Developers,比例差不多是1:1,Senior Developers就担负着对Junior Developers的代码进行Review的职责,每天Review一次,对有问题的代码写上comments,然后也check in到代码库中。这种comments有特殊格式(比如//\\Code转载 2013-09-11 17:58:41 · 5366 阅读 · 1 评论 -
术团队新官上任之基层篇
技术团队的管理人员身负技术和管理的双重使命,有着与众不同的成长路线。绝大多数情况下,在成长路线的第一步,是“技而优则管”,亦即由于表现出了出众的技术交付能力,优秀的技术人员被提拔到了基层管理岗位以承担更加重要和关键的交付任务。众所周知,这并不是技术人员的唯一职业成长路线,大多数人都会在所谓的个人贡献路线上持续发展,走到管理岗位的转折点是少数人的路线。这条路并不好走:一方面,一旦承担了管理使命,转载 2013-09-05 22:39:47 · 836 阅读 · 0 评论 -
高效代码审查的十个经验
代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。 1. 代码审查要求团队有良好的文化 团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。 “A的代码有个bug被B发现,所以A能力不行,B能力更好”,这一类的陷阱很容易被扩散从而影转载 2013-09-12 15:39:39 · 1007 阅读 · 0 评论 -
敏捷软件开发模型--SCRUM
敏捷软件开发模型--SCRUM一 什么是Scrum?Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。Scrum的基本假设是:开发软件就像开发新产品,无法一开始就能定义软件产品最终的规程,过程中转载 2011-08-21 20:02:49 · 812 阅读 · 0 评论 -
ThoughtWorks架构师Neal Ford:演化架构和紧急设计经验谈
导读:Neal Ford是全球IT咨询公司ThoughtWorks的软件架构师。除了常规工作,他做的事情还包括设计和开发应用程序、教学材料、杂志文章、课件和视频/DVD演示,同时还是各种技术书籍的作者或者编辑,其中包括最近的新书The Productive Programme转载 2011-09-02 09:25:11 · 891 阅读 · 0 评论 -
关于软件开发、领域知识、职业危机以及UML的计算主义思考
最近无聊时候,常常在琢磨领域建模相关的问题,比如医学图像处理领域,一致性显示流程算不算领域知识?那卷积反投影呢?它们都可以放到模型里面去吗?这样的模型,对你最终的服务对象,产品定义和软件设计人员有用吗?对这些问题思考得越深入,往往就会离题越远。--21世纪,软件已经渗透进人类生活的每一个领域,从指头大小的音乐播放器到遍布全球的互联网络。为了开发出真正有用的软件,程序员要不断地学习不同领域的转载 2011-06-22 10:39:00 · 878 阅读 · 0 评论 -
高内聚,低耦合
http://topic.youkuaiyun.com/u/20110101/19/6ab1e45f-2387-4f34-bd13-132bbbeea660_2.html原创 2011-01-05 11:47:00 · 1100 阅读 · 0 评论 -
自己动手做计算机-计算机科学的本质
http://blog.youkuaiyun.com/dog250/archive/2011/02/19/6195367.aspx转载 2011-02-25 11:28:00 · 899 阅读 · 0 评论 -
"架构"到底是个什么东西?
http://topic.youkuaiyun.com/u/20110206/19/a3ce3fd9-d768-4f27-820c-70dd034f377f.html原创 2011-02-13 14:25:00 · 1045 阅读 · 3 评论 -
Google Megastore分布式存储技术全揭秘
http://cloud.youkuaiyun.com/a/20110216/291968.html转载 2011-02-18 10:45:00 · 1072 阅读 · 0 评论 -
怎样成为优秀软件模型设计者
http://sd.youkuaiyun.com/a/20110224/292464.html转载 2011-02-24 14:00:00 · 786 阅读 · 0 评论 -
谈谈对于企业级系统架构的理解
http://sd.youkuaiyun.com/a/20110512/297671.html转载 2011-05-12 15:55:00 · 736 阅读 · 0 评论 -
计算机技术发展时间表(1940-2010)
<br />如果你是一个电脑怪人,收藏达人,或者一个IT沉迷者,你绝对有必要按图索骥。你所拥有的最老的计算机设备是什么?一台386的电脑?或者一个Windows 3.x的系统安装盘?你还未够班,了解一下计算机技术发展时间表(1940年---2010年)吧。<br />仍然是纠结的“大图”,分为若干个世代。从最原始的类似“打字机”的东东;到最新的ipad;包括IBM的最早产品,都不属于初号机世代;原来,所谓的操作系统,是从1984年才有的,等等。<br /><br />原文出自:cnbeta转载 2011-05-16 15:04:00 · 1575 阅读 · 0 评论 -
Hadoop分布式文件系统:架构和设计要点
http://www.iteye.com/topic/200508转载 2011-04-23 12:10:00 · 725 阅读 · 0 评论 -
产品有统一的错误处理机制和报错界面
产品有统一的错误处理机制和报错界面最好能有统一的error message,然后每个error message都带一个error number。这样,用户可以自己根据error number到user manual里面去看看错误的具体描述和可能原因,就像SQL Server的错误那样。同样,ASP.NET也要有统一的Exception处理。可以参考有关的Application Block。转载 2007-12-29 11:37:00 · 1057 阅读 · 0 评论