| Profilo di Yin浮云BlogElenchiAmici | Guida |
|
28 agosto 博客搬家最终决定把腾讯的QZone作为我唯一的博客。以后我写的东西都会放到那上面,不会再更新这里。两个博客看来真的没有必要。有些东西就如老婆,一个就够了,再多便要伤脑筋。我还不至于无聊到把同一篇帖子在两个博客上分别发一次。至于为什么选QZone?恐怕是因为它够简单。对,就是简单,随便从主页点一下链接就可以开始写,不像MSN,要写个文章还让我找半天链接。也许QZone显得比较孩子气,博客地址也比较难记,而MSN更“专业”一些,但说实话我已经被这种“专业”郁闷了许久。或者是因为这是外国人做的模板吧,实在不适合我这种善于偷懒的中国人用。转两篇文章到新家,大家不反对吧?既然决定要搬家,好的家具还是要带走一些的。顺便公布一下新家的地址:http://28230247.qzone.qq.com/ 18 aprile 红酒的潜质红酒的潜质就是他的窖藏能力。常识上来说,年份越陈的酒质量就越好。但是红酒与白酒不同,并不是每一瓶红酒都可以随随便便就放上十年二十年。每一瓶红酒的潜质都不尽相同,这是由很多因素决定的。 每一瓶红酒都会经历上升期、适饮期、衰退期三个过程。上升期过程中,红酒在瓶中继续发酵。这个过程中,酒中成份不断变化,逐渐变得完美顺口。一般来说,绝大多数新世界的酒,在上市后可以立即饮用。而一些旧世界的酒,上升期比较明显,口感不够平衡,往往要经过几年在瓶中继续发展,才能变得完美。适饮期是红酒变得相对完美顺口的阶段,其中发展到最好最平衡的时期就是巅峰期,之后,红酒的品质就开始走下坡路,失去香气并且口感逐渐失去平衡,进入衰退期。 对于旧世界红酒来说,每一瓶红酒的发展期都是不太一样的。在发展期时候的红酒,就是一个逐渐被氧化的过程。红酒的木塞可以缓慢渗入氧气,这就使得红酒得以逐渐继续发酵。这是一个缓慢的过程,恶劣的环境会加速这个过程,但是因为红酒成熟得过快,将使酒的品质变得粗糙。总体来说,相对长时间的发酵能提高红酒的品质。但是很可惜,就算在最理想的状态下,每一瓶红酒的都有自己适合的发酵时间。换句话说,每一瓶红酒都有自己的“陈年能力”,能力越强的红酒,可收藏的时间就越长,到了适饮期的时候口味也就越好。在酒中所含的物质“单宁”对这种能力的强弱起了相当重要的作用。单宁是一种抗氧化剂,单宁含量较高的红酒,收藏时间也就比较长。同时,单宁在氧化过程中,和酒内的其他物质也发生反应,生成新的物质,而这些物质,则让酒的味道更加丰富多样。 红酒的原料就是葡萄,所以原料会对酒的品质和窖藏产生很大的影响。如果某个年份多雨潮湿,这个年份的葡萄就皮薄水多,这样年份的红酒一般比较快熟。而炎热干旱的年份,葡萄皮厚,酿成的酒中单宁含量较高,则可以收藏较长时间。而葡萄的品种和产地,也使得酿出的红酒中单宁含量不一,相应影响红酒的陈年能力。所以可以说,每一瓶红酒都是独一无二的个体,其中的滋味,需要慢慢去品才能体会。 Riesling:德国QmP等级以上都有不错的陈年能力,一些BA,TBA等级的Riesling能够陈年相当长的时间。法国的Alsace出的Riesling干白也可以陈年10年以上的时间。Alsace除了Riesling外,另外几个贵族品种Muscat, Pinot Gris, Gerwuztraminer也可以陈年较长时间,有时可以超过10年 Sauvignon lanc:多数的Sauvignon是要尽快喝掉的,不管是来自法国Loire河谷还是新西兰,加州等等。只有波尔多的干白酒,是Sauvignon与Semillon混合的,能够陈年一定的时间。 Chardonnay:霞多丽能够陈年的时间相对于Sauvignon要长一些,勃艮第的Grand Cru和Chablis的Grand Cru能够陈年10年以上。 Cabernet Sauvignon:作为广泛种植的葡萄品种,赤霞珠有着很好的陈年能力,不管是在新世界还是旧世界。当然作为让世界认识到Cabernet Sauvignon的地方,法国波尔多地区,上等酒需要较长的时间成熟,达到适饮期,象Chateau Latour这样的酒可能需要长达15—20年,Chateau Montrose可能更长。在新世界这样的问题比较少,即便是顶级酒,刚上市时也基本上不需要陈年就可以饮用,但是还是依然可以陈年较长的时间。 Syrah/Shiraz:也是可以陈年的品种,不论来自北隆河的Hermitage,Cote Rotie还是来自南澳顶级的Shiraz。 Tempranillo:是Rioja红酒的主力,能陈年的品种,一些Rioja Gran Reserva上市以前已经经过将近10年的陈年,而上市后,依然可以继续陈年10年以上。 Nebbiolo:意大利北部Piemonte的贵族品种,此品种酿造的Barbaresco和Barolo都可以陈年10—15年。 Pinot Noir:是勃艮第的主力品种,但是世界各地都有种植,这是一个薄皮的品种,成熟的速度也比较快。只有勃艮第的Grand Cru才能够有超长的陈年能力。 Gamay:几乎是最不能陈年的葡萄品种,薄若莱新酒需要3个月内喝掉。只有少数几个Beaujolais Cru能够陈年较长时间,如Moulin a Vent, Morgon等 20世纪以来比较好的年份: 法国波尔多:2000/2003/2005;法国勃艮第:2002/2003/2005;意大利托斯卡尼:2001;西班牙里奥哈:2001;美国加州:2001;澳大利亚:2002;南美:2001/2003 2006年波尔多干白葡萄酒是一个上好的年份,而红酒尚好,比2005年份略有下降,总体水平尚可。2007年对波尔多来说是个多雨的年份,气候关系使得红酒不尽如人意,但是干白还是有较高的品质。 11 aprile 弱水三千“弱水” 始见于《尚书·禹贡》:“导弱水至于合黎。”孙星衍《尚书今古文注疏》:“郑康成曰:‘弱水出张掖。’”按古籍言弱水亦见于《史记·大宛传》、《汉书·地理志》、《后汉书·东夷传》与毕沅注《山海经》等。古时许多浅而湍急的河流不能用舟船而只能用皮筏过渡,古人认为是由于水嬴弱而不能载舟,因此把这样的河流称之为弱水。《山海经》载的昆仑之北有水其力不能胜芥故名弱水说的就是这个意思。有些称谓流传到现在还在用,比如甘肃省现在的地图上还有一条弱水河。后来的古文学中逐渐用弱水来泛指险而遥远的河流。《西游记》第二十二回唐三藏收沙僧时有诗描述流沙河的险要:八百流沙界,三千弱水深,鹅毛飘不起,芦花定底沉。这是第一次正式的弱水三千的提法。《红楼梦》第二十五回中也有提到:那道人又是怎生模样:一足高来一足低,浑身带水又拖泥,相逢若问家何处,却在蓬莱弱水西。这里“弱水”是指遥远的意思。再到后来弱水引申为爱河情海。这便是我们现在口边的弱水三千的意思。第一次正式的提出在《红楼梦》第九十一回纵淫心宝蟾工设计布疑阵宝玉妄谈禅。黛玉道:“宝姐姐和你好你怎么样?宝姐姐不和你好你怎么样?宝姐姐前儿和你好,如今不和你好你怎么样?今儿和你好,后来不和你好你怎么样?你和他好他偏不和你好你怎么样?你不和他好他偏要和你好你怎么样?”宝玉呆了半晌,忽然大笑道:“任凭弱水三千,我只取一瓢饮。”黛玉道:“瓢之漂水奈何?”宝玉道: “非瓢漂水,水自流,瓢自漂耳!”黛玉道:“水止珠沉,奈何?”宝玉道:“禅心已作沾泥絮, 莫向春风舞鹧鸪。”黛玉道:“禅门第一戒是不打诳语的。”宝玉道:“有如三宝 。” 从此男女之间信誓旦旦就开始用弱水三千只取一瓢的套话了。
“三千” 盖出于佛家三千大千世界。“大千世界”原为佛家用语,现在用来泛指广阔无边的世界和宇宙。在佛教中,有大千世界,中千世界,小千世界之分。小千世界包含了一千个世界,中千世界则为一千个小千世界,而大千世界为一千个中千世界。因为大千世界为三个千的连乘,所以又称为“三千大千世界”。此处的“三千”也就是一个代称。 09 aprile FootstepThousand people pass me I can tell who you are Their feet are on the floor But you step into my heart 21 febbraio 无题博客又是N久都没有更新了,归根到底还是因为自己懒散。另外也觉得似乎没有什么可以记载的大事。每天都是上班、回家,生活很简单,很平凡。每次打开这个页面,想要写点东西,脑子里浮现的尽是些千篇一律的琐碎,结果连一个合适的题目都找不到。年纪越大,感触却越少了,只觉得生活本该如此,清澈如泉,平淡似水。因此往往写了数行,就无话可说。高中时候挥笔而就千字文,还要讲究文法、结构、呼应、中心明确,现在看来真是了不起的奇迹。
懒得去想这篇文的题目是什么了,依稀记得有一个很著名的,很通用的题目叫“无题”,于是顺手拿来写上,骗骗系统,好让这文能发出来。 05 luglio [转]伟大架构师的秘密伟大架构师的秘密发布日期: 10/13/2004 | 更新日期: 10/13/2004
By Don Awalt and Rick McUmber 摘要:所有伟大的架构师都掌握了在抽象的不同层次上概念化解决方案的技能。通过将解决方案组织到离散的层次,架构师可以专注于解决方案的单个方面而忽略所有剩余的复杂性。展示将抽象层次应用到 IT 解决方案的技术,并将其与其他工程学科相比较。 本页内容
将抽象层次应用到 IT 解决方案企业架构师正受到其所面临的大量复杂性的挑战。开发一个能够自动处理企业任务的独立的部门应用程序是一回事。而设计并组成一个支持上万 IT 使用者的满是应用程序、服务器和数据库(全都支持多种企业活动)的 IT 实验室全球网络,则完全是另外一回事。要组合这些复杂性,IT 网络必须随时可用、响应迅速并保护企业宝贵的信息资产。除所有这些之外,IT 网络还必须足够灵活以支持企业永远变化的需要,并且采用出现的新技术。 一些架构师在这种复杂性方面明显非常出色,而且在不断进步。在我们的职业生涯中,能与一些真正伟大的分析师和架构师并肩工作是非常幸运的。反思这些经验,我们已经分析出是什么造就了杰出的架构师。 无一例外,所有伟大的架构师都掌握了在截然不同的抽象层次上概念化解决方案的技能。通过将解决方案组织到离散的层次,架构师可以将精力集中在解决方案的单个方面而忽略所有剩余的复杂性。他们一旦稳定了解决方案的某个部分,接下来就能继续处理其他方面,从而不断地将层次发展并完善到最终可以被实现的粘合模型中。 大多数软件开发人员懂得应该将解决方案分解到抽象层次。但是在实际的项目中,这是非常难于付诸实践的。当遇到第一个困难时,在急于开始编码时是很容易放弃这些层次的。伟大的架构师会经受这些挑战并在整个项目的生命周期中严格保持这些层次。他们意识到,如果不这样做,最终将淹没在复杂性中。 本文展示了将抽象层次应用到 IT 解决方案的技术。首先,我们会通过一个简单的示例演示此方法,然后提出一个基于正式抽象层次的系统产品的结构。 抽象层次:所有工程师的强大武器其他的工程学科,比如土木工程师,几个世纪以来一直利用抽象层次复制复杂性。让我们学习一下其他更成熟的工程学科是如何应用抽象层次的,就从电子工程师开始吧,他们设计每次更新换代都变得更加复杂的计算机系统。 硬件工程师系统设计师使用抽象层次为计算机系统建模。每个层次都是定义完善的,并提供了该系统的一个不同角度。许多系统是在三个主要层次上设计的:系统、子系统和组件,如图 1 所示。 分层使工程师能够将庞大数量的复杂性集成到一个单一的工作计算机系统中。在其原子部分的层次上确切了解一台计算机是不可能的。在单独一块 Intel Itanium_ 芯片上有大约 25,000,000 个晶体管。 对 IT 相关学科来说,这种把复杂性分解到抽象层的方法当然不是惟一的。类似的方法被用于从航空工程到微生物学的无数其他学科。 应用抽象层次时的核心原则所有工程师在应用抽象层次时都遵循这套核心原则。当把抽象层次应用到软件时,这些原则也同样适用。 这些层次的数量和范围是定义完善的,以便工程师能够在复杂的系统上协作,所有团队成员必须共享对层次的同一理解。只要设计师做出设计决定,他们必须将那些决定归档到相应的细节层次。 三个抽象层次定义如下: 图 i. 定义的三个抽象层次 图 ii.抽象层次的一个简单框架 每个层次内的多个视图一个单个层次内的复杂性可以变得非常多,以至于使人无法一次全部掌握。在这种情况下,工程师通过多个视图将设计展现于单个层次内。每个视图展现设计的一个单独方面,但保持在相同的抽象层次上。举例来说,母板工程师为板的每个层创建一个视图,从而为每层的连接路径的设计建模。 ![]() 图 1. 计算机系统的抽象层次 必须保持层次间的一致性为了让系统按预期方式运行,每个后续的层必须是其父层的适当改进。如果计算机系统设计师从 IDE 总线切换到 SCSI 总线,那么所有设备的接口规范也必须切换到 SCSI。如果层次没有同步,那么系统就不会按预期方式在顶层执行。 将抽象层次应用到 IT 系统既然我们已经分析了其他学科是如何应用抽象层次的,现在就让我们将此技术应用于 IT 解决方案1。下列部分展示了应用抽象层次为典型 IT 应用程序的需求、设计和实现建模的技术。这些技术是通过一个针对假想零售商的简单的、指导性的在线定单系统示例来展示的。在我们的示例中,我们不仅包括了体系结构,而且扩展了范围以包括系统需求和业务环境 — 如同由零售业所定义的。 简单框架:四个抽象层次我们的简单示例定义 IT 解决方案的如下四个抽象层次:
在每个层次内,我们既展示了该特定层次行为的动态视图,又展示了其静态视图。动态视图为对象之间的消息建模,而静态视图为对象之间的结构和关系建模。 域抽象层次应用了上面的范围规则,零售商就会作为域层次中的黑盒子中心的演员。客户作为外部的演员。域层次是从客户的角度来建模的。只为购买交互建模。用于完成购买的通讯形式不包括在这个层次,但是会在业务处理层次引入。 ![]() 图 2. 关于从零售商处购买物品的域层次动态视图 ![]() 图 3. 关于从零售商处购买物品的域层次静态视图 动态视图域层次内的动态视图为客户和零售商之间的交互建模。下图汇总了域环境,并包含了简单的业务交互使用案例描述。 ![]() 图 4. 关于从零售商处购买物品的业务处理层次动态视图 静态视图域层次的静态视图为类结构和在使用案例中出现的它们的对象的关系建模。换句话说,它说明了在这个抽象层次上,为了完成购买交易客户需要了解什么对象。 图 5 展示了域层次静态视图的类关系图。 ![]() 图 5. 关于从零售商处购买物品的业务处理层次静态视图 客户是 Person 的实例。客户和零售商之间的关系被具体化为 Account。所有的 Purchase 都与客户的 Account 相关。Purchase 与每个被购买的 Item 相关。每个 Item 都与特定的 Product 相关,这里 Product 遵循元类模式。Product 的实例实际上本身就是类。将其他 Product 添加到 Catalog 完全是一个数据驱动过程,而且不会对类模型产生影响,因此将 Product 建模为一个元类会使我们的模型更加灵活。围绕这些类,每个 Payment 都与其 Purchase 相关。 如您可能看到的,这个层次的模型对大多数零售商(无论类型为在线或传统,大型或小型)来说是有代表性的。这说明了为什么 [Industry] 域模型确实应该将公司定义为黑盒子中心的演员。同一个行业中的公司倾向于支持带有其外部演员的同一套业务交互。此外,域模型排除了公司的特定业务处理,这是因为在同一行业中的公司之间它们会有相当大的变化。 域层次严格集中在从外部演员的角度看到的业务交互。对此我们必须注意,不要将用于完成交互的实现机制包括进来。这些细节属于下一个抽象层次。因此,在本例中,我们只为浏览、选择、购买和支付建模。我们不为如何完成这些交互(通过电话、美国邮政、电子邮件、Web 应用程序、亲自前往、支票、信用卡或现金)建模。 业务处理抽象层次下一个抽象层次为公司的业务处理建模,以实现在域层次捕获的交互。系统层次“内部缩放”公司的黑盒子,并标识为完成业务交易而协作的所有员工和系统。在这个层次,要开发的系统作为黑盒子中心的演员。 应用了系统层次的范围规则,在线定单系统就作为黑盒子中心的演员。客户和员工作为外部演员。系统层次是从客户和员工的角度来建模的。客户在线执行购买。支付是通过信用卡完成的。通过将物品运送到客户的收货地址履行定单。出货通知是由电子邮件发送的。 动态视图动态视图重演了域层次购买交易,这次公开了零售商的内部业务处理。图 4 汇总了业务处理环境,并包含了关于系统及其演员之间的交互的简单使用案例描述。 静态视图这个层次的静态视图对类模型做了改进,以捕获在业务处理层次使用案例中出现的对象。换句话说,“为了在线创建一个定单并履行该定单,客户和雇员需要理解哪些对象?”图 5 展示了业务处理层次静态视图的类关系图。我们修改域类模型以捕获在这个抽象层次上的角度。Person、Account 和 Company 抽象保持不变,Catalog 和 Product 也一样。但是,用 Order 替换了来自域模型的抽象 Purchase 事件。 Order 包括 LineItem,它与 Catalog 中的 Product 相关联。因为这个层次为公司的内部业务处理建模,所以我们需要获得现有的库存(最小库存单元 (SKU) 的一个属性,它表示在一个特定位置的物品的库存)。我们也为客户的 UserAccount 建模,它提供对在线系统的访问。Payment 是通过使用 CreditCardAccount 来完成的。Location 代表美国的一个地理位置,它作为账单邮寄地址,同时也作为 Order 的收货地址。Shipment 包含 Shipment 中包括的 Item。 我们在系统抽象层次创造方法来简化业务处理,因此该层次通常需要很多创造力。为此,通常使用业务处理层次上的若干不同形式来实现单个域层次交易。举例来说,一次购买可以通过在线、电话、邮件、传真一个定单表格或者亲自到零售店来完成。对于每一种形式,都需要在业务处理层次为其建模。请注意,尽管对零售商来说 Credit Authorizer 是一个外部演员,但是它还是在这个层次引入,这是因为只需要它实现在该层次首次出现的业务处理。 最后,请注意该系统是技术独立的。我们的在线购买系统可以用任何 Web 技术实现。在系统黑盒子内选择技术是一个体系结构决策。 逻辑抽象层次逻辑层在系统黑盒子内缩放,从而公开高级别的系统设计。架构师选择技术并定义高级系统结构。在我们的简单示例中,系统是由承载表示层、业务层和数据访问层的 Microsoft IIS/Microsoft ASP.NET 服务器和承载持久性数据的 Microsoft SQL Server 数据库服务器组成的。 动态视图逻辑层上的动态视图跟踪通过系统主要组件的消息流。如示例所示,在提交 ConfirmOrder Web 表单的时候,图 6 跟踪这一消息流。 ![]() 图 6. 从零售商处在线购买物品的逻辑层次动态视图 静态视图这个层次的静态视图也将我们的视角切换到系统内部。尽管业务处理层次为出现在业务处理中的真实抽象建立了模型,这个层次将抽象建模为其在系统中所要被表示的那样。在实际的系统中,架构师会为每个软件层(表示层、业务层和数据访问层)设计类。为了保持本文的简洁,图 7 只展示了业务层的静态设计,以便说明系统层抽象是如何针对设计进行改进的。 图 7. 从零售商处在线购买物品的逻辑层次静态视图 架构师对系统层类进行改进以设计业务层接口。 因为系统中的所有账户和客户都是零售商的,所以创建一个单一的 Company 实例并使其与所有账户相关联是不切实际的,因此该层次中省略了 Company。我们只是存储 Payment 所带的信用卡号和账单邮寄地址,并非为每个 CreditCardAccount 创建一个单独的实例。此外,对系统来说,为每个出售的 Item 创建一个实例是不切实际的,因此从模型中删除了 Item,并改为由模型跟踪 LineItem 中订购的物品数量以及在新 ShippedItems 类中附带的物品数量。 架构师还定义业务层公开的服务间隔。对于本示例,业务层为 Account、UserAccount、Order、Shipment 和 Catalog 导出了 Create、Read、Update 和 Delete (CRUD) 服务。椭圆形指出了 CRUD 间隔。 请注意,即使本层次的类不是业务处理类的合适超集,架构师也可以通过直接改进业务处理类、将视角由系统外部更改为系统内部来实现这个设计。 物理抽象层次物理抽象层次捕获系统实现的结构。系统作为一个节点的网络实现,每个节点都配置有硬件和软件。逻辑视图中的三个软件层(表示层、业务层和数据层)是以代码形式被物理实现,并部署到这些节点上。逻辑视图中的持久类物理存储在 SQL Server 数据库的关系表中。 动态视图动态视图跟踪经过物理配置节点的消息流。ConfirmOrder HTTP post 从客户的浏览器通过 Internet 通过零售商的防火墙流动到 Web 服务器,在那里 Microsoft Windows 将其转发到 IIS,IIS 又将其传递到 Microsoft ASP.NET,然后 ASP.NET 调度 ConfirmOrder.aspx。幸运的是,现代开发工具将我们与多数物理网络隔离开来。但是,架构师需要了解物理层以避免网络瓶颈和安全暴露。 静态视图静态视图(图 8)将逻辑视图中的持久类改进为其物理表示形式。在我们的零售示例中,业务层类存储在下列 SQL Server 表中。 图 8. 从零售商处在线购买物品的物理层次静态视图 映射到关系表和属性的类作为列实现。一对一关系和一对多关系使用一个外键来实现。开放式并发通过给每个被“凝结”的父类分配一个 datetime 字段来实现。 在设计逻辑层次时,架构师主要集中关注于实现系统功能。在确信包含了系统功能之后,架构师就能够专注于在物理层次优化实现。 通过迭代发展层次建立了这个框架后,架构师通过几次迭代对解决方案加以发展。每次迭代都合并额外的功能 — 发票、待交定单、亲自订购、电话订购等等。在每种情况下,架构师都更新适当的抽象层次,然后将这些更新改进到物理实现层。 重访抽象层次核心原则让我们对照核心抽象层次原则来测试我们的示例。
扩展层次以支持企业解决方案既然我们已经展示了带有四个抽象层次的简单示例,现在就让我们扩展这个方法来支持 IT 企业的解决方案。图 9 展示了一个 Rational 统一过程 (Rational Unified Process,RUP) 配置,它将项目产品组织到定义完善的抽象层次中。 表中的层次描述如下。 图 9. 将项目产品组织到定义完善的抽象层次中的 RUP 配置
优点将系统产品组织到离散的抽象层次有若干优点:
小结为了处理复杂性,所有工程学科都应用正式抽象层次。软件也不例外。为了实现抽象层次的优点,项目必须:
通过一个简单的示例,本文演示了如何应用抽象层次,然后将该方法扩展到支持企业 IT 解决方案。它提供了一个 RUP 配置框架,该框架将系统产品组织到定义完善的抽象层次。 自我评估
伟大的架构师本能地遵循这些原则。我们其余的人就必须有意识地应用抽象层次,并运用规则在整个项目生命周期中保持这些层次。 资源Cockburn, Alistair. Writing Effective Use Cases. New Jersey: Addison-Wesley, 2001 Kroll, Per and Kruchten, Philippe. The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP. Boston MA: Pearson Education and Addison-Wesley, 2003 DeMarco, Tom and Plauger, P J Structured Analysis and System Specification. Prentice Hall PTR, 1979 要获得 DoD 标准 2167A 的联机副本,请访问 http://www2.umassd.edu/SWPI/DOD/MIL-STD-2167A/DOD2167A.html。 脚注1 很多人已经成功地将抽象层次应用于软件。Ed Yourdon 和 Tom DeMarco 在 1979 年提出了结构化分析和结构化系统设计的概念。美国政府的许多分支机构标准化了 DoD 的 2167A 标准,它要求系统由有层次的硬件和软件配置项组成。DBA 社区经常应用细节层次为关系数据库建模。特别地,Bachman 工具集和 James Martin 的信息工程方法学 (Information Engineering Methodology,IEM) 先为数据库逻辑建模,然后再为其物理建模。在 Google 上键入“software levels of abstraction”进行搜索会返回若干个结果,但其中大多数来自于学术社区,而且其内容看起来集中在正式计算机语言方面。 关于作者Don Awalt 是 RDA Corporation 的创始人和 CEO,该公司是一家自定义软件工程公司,成立于 1988 年,在华盛顿特区、巴尔的摩、亚特兰大、费城和芝加哥都设有办事处。作为微软认证金牌伙伴 (Microsoft Gold Certified Partner),该公司专注于使用 .NET Framework 开发企业 Web 和富客户端系统。Don 目前是 Microsoft 华盛顿特区的区域总监,他以前曾经担任费城首任区域总监。Don 经常在行业活动中演讲,这些活动包括 Tech Ed、Developer Days、MSDN 活动和各种 SQL Server 及 Windows 活动。他是 SQL Server Magazine 和 PC Tech Journal Magazine 的特约编辑,并且也为其它出版物撰写稿件。Don 所擅长的技术领域包括 Web 服务、SQL Server、现代编程语言的发展,以及在 Microsoft 的 Prescriptive Architecture Group (PAG) 中可以看到的许多体系结构和处理工作。可以通过 AWALT@rdacorp.com 联系到 Don。 Rick McUmber 是 RDA 的质量和最佳实践总监。他为 IBM 和 Rational Software Corporation 一共工作了 11 年,致力于为美国运输部、国防部、NASA 和加拿大国防部开发系统。从 1994 年以来,他一直在 RDA 工作,致力于为其客户开发业务解决方案。可以通过 McUmber@rdacorp.com 联系到 Rick。 [转]十年编程经验凝结 与新人们分享有天和朋友聊天,朋友是国内一家大型互联网企业的一位技术主管,朋友把他将近十年研发工作积累的心血总结成两点,这两点朋友刚一提出来我并没有马上明白,只是大约有这么一个概念,我还没达到朋友在技术领域的那种高度,不能彻底领悟他深刻的思想。但我想与众多刚刚踏入IT技术研发领域的新人们分享一下这位朋友的思想,我尽全力来解释阐述朋友的话语,希望能给大家带来一些启发。
第一点是:不断抽象已知的东西。现实生活总是包括很多零散的东西,待解决的问题不会只有一面,所以抽取零散东西的共同属性,聚合不同角度的同一面向,成为从问题领域进入编程领域的第一步。抽象的层次越高,你架构设计就越简单。
第二点是:面对未知的东西用已有的抽象经验来模拟体验,从而不断调整直至达到可以控制未知东西的程度。有了上面第一点的基础,才可能到达这第二点的境界。现实问题总是不断变化着的推陈出新的,从未知到半知到已知,是人认识客观世界的一个过程,恰如人生从天真到懵懂到成熟的过程。
天才是什么?聊着聊着我们突然说到比尔盖茨,说到那些天才黑客,朋友和我都很兴奋。我问朋友,从他总结的两点来看天才是怎么实践这两点的?朋友想了一下说,天才就是生来就有那种抽象的能力,他并不一定局限于计算机领域的空间来看待问题,他拥有从这个世界其他领域来模拟体验计算机领域的天赋,他甚而可以抽象整个世界。
朋友的思想太博大高深,如我这般入行不久的初级程序员怎能领会?但我还是装作深有体会的不断点头,同时把朋友从山巅拉到山脚下。我说:“你说得太抽象了,不如你告诉一个起步阶段的程序员应该怎么慢慢通过实践来逐步达到这种境界吧。”我知道朋友在这方面颇有体会,他以前曾跟我提起他毕业后在第一家公司是怎么接受锤炼的。果然朋友很快开始阐述:“很简单,起步阶段就是专心的模仿。切记不要被那些乱七八糟的东西晃花了眼,什么j2ee与.net之争,什么soa的革命等等,你不要去关心这些东西。当你在公司上班时,会有这样一个矛盾,当你完成公司交待的一个任务时,你可能为了尽快完成任务用了很多别人现成的框架。这本身没问题,但何谓专心的模仿?就是说你在工作之余,需要来研究这些框架,你可以不用这些框架,而是用最原始的方式来写,你会慢慢体会到框架的约束,进而有对框架进行改进的欲望。但是最终你也会发现:其实任何一个框架都比你自己写的要好。然而在你不断模仿的同时你就得到不断的提高。”朋友越讲越起劲,又开始分析高手和低手在起步阶段的差异,“其实所谓学得快,所谓高手,就是说他在模仿的过程中不断比较自己写的东西和框架本身的差异,不断发现问题,想尽办法解决问题,思考得越多,你碰到的问题就会越多,这是一个正向循环,最终你的技术能力就会螺旋式的上升;而低手只会被动的等待问题,一旦问题自己觉得解决得差不多就放下了,这样自然就不会产生更多的问题,最终技术能力就始终停留在那个菜鸟阶段。”
朋友的话让我惭愧不已,我就是典型的不求甚解啊,问题解决得差不多就行,能运行就万岁,总是不去深究,这样给系统留下多大的隐患啊,而且也是对自己极大的不负责任。
聊完了技术方面的东西,我们想聊点轻松的,但是话题仍然离不开那些搞技术的新人们。朋友正好最近替公司招聘人才,面试了很多名校的计算机相关专业的一些毕业生。朋友说他们技术功底不够扎实,我说他们除了这个,心态也很浮躁,恨不得一参加工作就拿大几千的工资,一进公司就做项目经理,太眼高手低。朋友也深有同感,说面试的时候就有一种怪怪的感觉,而且朋友进一步将这种心态问题提升到编程提升到认识论的高度,“其实我觉得他们本质上是一个不能够正确认识自己的问题。认识论其实很简单,首先认识问题,然后解决问题。你说你想做项目经理,那么你需要具备哪些技能,技术上的,管理上的等,你需要多长时间来磨炼这些技能等。编程不也就是这样嘛,认识问题,抽象问题,进行设计编码最终解决问题,其实做所有的事情都是如此。”
跟朋友的这番聊天让我受益匪浅,而让我感受最深的不是上面提及的这些关于编程和心态两方面的道理,而是我体会到:技术人员并不像人们想象中的那么呆板,每个人都在以自己的方式活着,不断参悟人生的玄妙,而技术人员以一种更为奇特的方式和电脑搏斗,付出了更多的心血,当然体悟得也更加深刻,然而最终每个人都会殊途同归。
==========================================
by lic3046
07 giugno 爱之交集为零寻寻觅觅,男人并不是不想结婚,只是没有碰到他们心中认为合适的。每个男人都认为自己的要求并不高,但是为何处于所有要求的交集的女人却难以碰到?其实,这个世界上,没有哪个女人是事先为你准备的。上帝造人,并不是为了特定的他,而造出了完全适合他的她。所以,每个女人,几乎都有不适合你的地方,然而爱一个女人,则要爱她的全部。都说老婆如衣服,但是可惜这套衣服不能量身订做,她不可能像牛仔裤适合你的臀部那样适合你。上帝做好了衣服,就摆在那,每样只有一件。这意味着两件事。其一,每件衣服都是独一无二的,被别人选走,你就无法再选;其二,每件衣服都不是为你订做,你可以选,但是一旦选好,你就要接受整件衣服,包括合适和不合适的。如果要说选择的话,你只有两个选择:接受并留下,或者无法接受并离开。
并不是每个男人都明白这点,就算明白,并不是每个男人都可以接受这点。所以,多少人还在寻觅,多少人还准备离婚,也有一些人放弃了婚姻。爱情,还是盲目些的好,婚姻是因为爱而不是合适。 02 maggio 新家搬家快一个月了,生活算是重新安定下来。该买的都买了,该收拾的也收拾了。一阵折腾以后,一切重归正常化。
新家确实没老地方来得好,但是这是我能够找到的最划算的房子了,现在收入还太少,还是忍一忍,尽量将钱省一些。我将在这里住上一年,之后应该还会搬家,希望到时候经济条件有所改善。国外毕竟是国外,很多时候,会觉得自己好像浮萍一样,飘来荡去。我的根依然在中国,虽然在外面闯荡了6年多,还是觉得自己只是过客。
叶落总要归根的。 31 marzo 长大了的爱爱情是什么东西?18岁向前看,那是一颗璀璨的钻石,看到的是令人陶醉的光芒;28岁回头再看,钻石还是钻石,只是看到的不再是它的璀璨,而觉得那是一种奢侈品。人越大,就变得越实际,实际到迷了眼睛,再也看不到爱情的光芒;人越成熟,就变得越胆小,胆小到没了勇气,再也不敢打开那扇窗,去触摸另一个心灵。
画龙点睛。男女之间的关系,就如同那只缺了眼睛的龙。没有去点那眼睛,它永远无法飞走,但是还有飞走的机会;点了眼睛,但是没点好,那龙就永远也无法飞走。每一个人,都想去让龙一飞冲天,但却不敢去点那只眼睛,生怕没有把握好这唯一的机会,就永远失去了这个机会。头一次去表白的人,正所谓初生牛犊不怕虎,大都有荆轲刺秦,一去不返的气概,又感觉自己正在做一次豪赌,成则飞黄腾达,输则一败涂地。
其实爱这东西有时很简单,简单到只要一秒,你就能够掉到里面。但是,知道自己是否真正爱一个人,也许需要一天、一年、一辈子。,佛家管这东西叫缘,每个人都有每个人的缘分,但是未必每个人都能够悟到这份缘分。年纪渐长,考虑的东西也就越来越多,也许明知道自己喜欢一个人,却在不断思考该不该喜欢,能不能去爱。
天下不如意事十之八九,寻寻觅觅,终此一生也未必有一份完美的爱情。得失之间如何取舍,全在于心。还是那个字——悟 19 marzo 恋爱是种艺术恋爱,可以说是世界上最简单,也是最复杂的关系。说它简单,真的非常简单。两个人是不是在恋爱,明眼人一看就明白,连昭告天下的功夫都省下了。说它复杂,真的是非常复杂,要用心、用情、用金钱、用脑子——用你所能用到的一切,来保持两人的恋爱关系。从某种角度来说,恋爱也可以称之为一种艺术。首先要分清楚恋人、情人、爱人。谈恋爱的的称之恋人,被人宠的则是情人,结了婚的乃是爱人。
谈恋爱之人,一个恋字,表示了仰慕之情;一个爱字,包含了心许之意。两人皆心属对方,却因为还没有红地毯上的宣言,而存了若即若离、患得患失之心。他们互相关爱着,也同时被对方的一颦一笑,一嗔一喜挑动着神经。所以投之以桃,报之以李。他们在不断付出关心的同时,更渴望对方给予的爱。就如向湖内投入一颗石子,就是为了欣赏涟漪。没有人会把石子投入泥塘,因为它没法给你想要的涟漪。
情人是被宠爱的一族。他们(她们)享受着时刻被人宠爱的优待,而他们给予的回报,往往不是爱,而是精神、或者是肉体上的慰藉。
爱人是已经步入了婚姻殿堂的夫妻,关系对他们来说,已经不再是一个值得去讨论的话题,取而代之的,家庭成了他们维持的中心。
如果用行星系来表示,恋人就是双子星,如果少了一方的引力,另一方也会随之而陨落;情人是卫星,他围绕的行星不需要依靠卫星的引力而存在,却需要有足够的引力来拉住卫星;夫妻是行星,两人合二为一,共同在宇宙中运行。
三种关系中,又以恋人的关系最为复杂和扑朔。初遇之时,不知对方之心,难免忐忑,便找机会一次次去试探,却又生怕过了火,如对方心不属己,反弄得大家尴尬。这个度的拿捏,着实让人为难。处理得好了,就算开始并无好感,也许仍可情芽渐茁;反之,就算开始有些好感,也许也会烟消云散。正如那好文,“增之一分则长,减之一分则短”,便须“恰到好处”,方可现其中之妙。此时如何交往,便体现了一种高度的沟通技巧和艺术。到得互述衷情,俩俩相依,则会在意于如何取悦于对方。此时之交往则犹如挠痒,需得挠着痒处,方可建功。而挠轻挠重,也有学问,轻则如隔靴搔痒,不得其道,若是重了,则过犹不及,由痒变痛,一般地不舒服。又如按摩,善此道者,位置、力道、手法配合无间,令人浑身舒泰;反之,就算用尽蛮力,仍是不得其门。此时的交往,则变成了一种相处的艺术,须不急不躁,一张一弛。急者,如大火煮粥,水开而米不化;躁者,如揠苗助长,功未成而根已断。不急不躁者,循序渐进之意也。张者,乃心之所系也,心弦不张则无情,既无情何以爱;弛者,乃心之所信也,不信则生疑,即生疑何以相处?一张一弛者,念之信之也。
恋爱如同打一场仗,情场如战场。不同的是,在这个战场里,只有双赢或者是双输——踏上红地毯,或者分开。 16 marzo 浪漫与缠绵如果说钢琴是气质和浪漫的结合,那么萨克斯就是野性和缠绵的结晶。悠扬的乐音震动着耳膜,也震动着心。不同于长笛的悠扬,那是带着野性和沙哑的磁性的声音,仿佛是情人间最深的吻,荡人心魄,引人遐思。高音如潮水般热烈,低音似耳语般温柔。忽高忽低间,仿佛就是爱情的滋味,热烈中还带了一分的羞涩,一分的腼腆。而有声无声之间,更让人感觉到了无声胜有声之入骨的销魂。
钢琴是泉水,流畅、清澈、动人心扉。黑与白之间,每一个音符都是天籁,每一段乐章都让你感到了浪漫在空气中流动。萨克斯不同,它是大海,澎湃、宁静、不可捉摸。那声音,如海潮般,来时汹涌,一浪高过一浪,去时却安静得如最内向的少女。这只让人觉得空气停止了流动,而缠绵在不断扩张,直至充塞天地之间。那种感觉,仿佛是被情人拥抱,热烈、充实而又温柔。 10 marzo 商人的智慧有个年轻人决定凭自己的智慧赚钱,就跟着人家一起来到山上,开山卖石头。 别人把石块砸成石子,运到路边,卖给附近建筑房屋的人,这个年轻人竟直接把石块运到码头,卖给杭州的花鸟商人了。因为他觉得这儿的石头奇形怪状,卖重量不如卖造型。就这样,这个年轻人很快就富裕起来了。3年后,卖怪石的年轻人成了村子里第一座漂亮瓦房的主人。 后来,不许开山,只许种树,于是这儿成了果园。当地的鸭梨汁浓肉脆,香甜无比。每到秋天,漫山遍野的鸭梨引来了四面八方的客商。乡亲们把堆积如山的鸭梨整车整车地运往北京、上海,然后再发往韩国和日本。 鸭梨带来了小康日子,村民们欢呼雀跃。这时候,那个卖怪石的年轻人却卖掉果树,开始种柳树。因为他发现,来这儿的客商不愁挑不上好梨,只愁买不到盘梨的筐。 5年后,他成了村子里第一个在城里买商品房的人。再后来,一条铁路从速儿贯穿南北。这儿的人上车后,可以北到北京,南抵九龙。小小的山庄更加开放搞活了。乡亲们由单一的种梨卖梨起步,开始发展果品加工和市场开发。 就在乡亲们开始集资办厂的时候,那个年轻人却又在他的地头,砌了一道3米高百米长的墙。这道墙面朝铁路,背依翠柳,两旁是一望无际的万亩梨园。坐火车经过这里的人,在欣赏盛开的梨花时,会醒目地看到4个大字:可口可乐。 据说这是五百里山川中唯的一一个广告。那道墙的主人仅凭这座墙,每年又有4万元的额外收入。 20世纪90年代末,日本某著名公司的老板来华考察。当他坐火车经过那个小山庄的时候,听到上边的故事,马上被那个年轻人惊人的商业智慧所震惊,当即决定下车寻找此人。当日本人寻找到这个年轻人的时候,他却正在自己的店门口与对门的店主吵架。 原来,他店里的西装标价800元一套,对门就把同样的西装标价750元;他标750元,对门就标700元。一个月下来,他仅卖出8套,而对门的客户却越来越多,一下子批发出了800套。 日本人一看这情形,顿时失望不已。但当他弄清真相后,又惊喜万分,当即决定以百万年薪聘请他。原来,对面那家店也是他的。 ===================================================================================== 前不久,富名扬四海的李嘉诚又狠狠地赚了一笔。和记电信将其在印度和记伊沙(HE)67%的股份拍卖了190亿美元,这相当于HE帐面净值的近14倍。当每个人都跃跃欲试,抢占印度电信市场份额的时候,他选择了退出。对他而言,这很正常。将盈利可观的资产在市场处于高潮的时候出手而换取惊人的利润,是他的一贯作风。每一个人都明白这点,就比如买股票,他永远买的是原始股,而在其上市后,就将其卖掉而获得惊人利润。但是并不是每一个人都可以做到,正如不是每一个人都可以买到原始股。能做到的人,就是第二个李嘉诚。 20 febbraio 最深情的男人与女人最深情的她与他,一旦成为爱情的俘虏,他们就都变成了同一种人:喜其所喜,悲其所悲,他们甘愿为了对方而奉献自己,却从来不知疲劳为何物。
然而,当最深情的她与他,被所爱之人所背叛,她成了干柴,而他成了石头。爱,就是那星星之火:干柴虽然冷酷,但是只要有火种,就会燃烧起来;而石头,就算被烤得再热,也会冷下来。
最深情的男人与女人的不同,就是在“背叛”面前,女人永远希望她的男人回头,而男人,从来不在乎女人是否回头——他心中爱已不在。 14 novembre 组建个人ASP.NET开发平台(续)远程访问SQLExpress数据库
当SQLExpress安装以后,系统默认只允许使用Windows验证登录(因为Microsoft推荐如此)。然而,在实际开发中,除非你的ASP.NET和你的数据库在同一台机子,或者至少是同一个局域网下,否则会造成无法访问远程数据库。在此,有两个方法可以解决。
方法一:比较简单但是也是比较不安全的做法
很简单,打开SQL数据库的远程登陆支持。打开SQL Server Management Studio Express,先用本地连接登陆到SQLExpress,地址“计算机名\SQLExpress”,使用Windows验证登陆。然后在Object Explorer里的服务器上点右键,选Properties,在打开的对话框中选Security,把Server Authentication选SQL Server and Windows Authenticaiton Mode,点OK保存,重新启动SQL Server(然后在Object Explorer里的服务器上点右键,选Restart)。系统默认sa帐号是关闭的,你可以激活sa帐号(见“组建个人ASP.NET开发平台”),或者新建立其他帐号。好了,到这里为止,你已经可以用ASP使用帐号密码登陆到数据库了,至于具体代码,则不在本文讨论范围内。
这样的做法存在一定的安全隐患。地球人都知道,ASP的数据库连接中,帐号密码都是文本明文,只要黑进服务器,看看源码,远程数据库就来去自如了。这也是微软不推荐此方法的原因。
方法二:比较复杂但是比较安全的做法
这个办法会复杂一些,就是先在服务器上建立ASP.NET的Web Services,Web Service使用Windows验证登陆来操作数据库,在Website和Web Services之间,使用XML通信,并遵循XML验证。XML部分的验证,可以通过口令(用户名和密码)、证书(Certificate)、加密(Encrypt)来确保信息在两者间传输的保密性和安全性。 枯木逢春一个月前,我种的黄秋葵结出了唯一的一个美人指,之后就变成了一根枯干。我天生带了点懒散,也就没有去管,已经变成枯枝一根,自然更加没有浇水的必要。一个月这样过去了,某天突然发现,那已经蜡黄的光秃秃的枝杆上,居然又冒出了绿叶。带着点好奇与惊讶,我给它浇了点水,没想到第二天,那些新生命是越发地蓬勃起来,仿佛是凤凰从灰烬中重生。 20 ottobre 组建个人ASP.NET开发平台微软最新推出的Visual Studio 2005系列中,终于出现了入门级的免费版本(Express系列),并且在官方网站提供下载。说实话,Express系列作为一个简化的版本,功能上当然比不过Professional系列,但是这个轻量级的免费开发环境,对于个人开发.NET,特别是ASP.NET已经是游刃有余,优而为之。对于初学.NET开发技术,或者只是写写小应用的人来说,省略了一些繁琐的设置和八辈子都用不到的一些功能,反而使得开发的界面更为简洁。下面就使用Visual Studio 2005 Express系列搭建个人ASP.NET开发平台做一个简单的介绍。 1. 下载
Visual Studio 2005 Express的每一个部分都是分开下载的。尽管如此,微软还是会保证每部分都可以分开安装并且在安装后能够正常使用。为了搭建ASP.NET平台,需要下载Visual Web Developer 2005 Express和SQL Server Management Studio。前者是用来开发ASP.NET,以及提供数据库支持,后者则是用于后台数据库的设计和管理。
以上列出的是英文版,中文版的话,大家有兴趣可以去微软的中国网站去找。不过,我更倾向于用英文版。主要是每次的Bug更新,都是英文版先更新后才轮到中文版。 2. 安装
首先,如果你有beta版本的Visual Studio 2005,必须先卸除,以保证程序的顺利安装,如果你有装了其他的.NET组件,比如.NET Framework系列,MSSQL Server组件,MSXML Parser组件,也请先卸除,以免造成版本兼容性错误。Express的安装是标准的傻瓜化。只要选择组件和安装目录,其他的设置,安装程序会帮你搞定。不过应该注意的是安装的顺序。应该先安装Visual Web Developer 2005 Express,再安装SQL Server Management Studio Express。安装Visual Web Developer 2005 Express的时候,必选SQL Server 2005 Express,至于是否安装MSDN,由个人喜好决定。我一般会装上,方便随时查询知识库。装好了以后,再装SQL Server Management Studio Express,同样傻瓜到底。安装完毕后,系统默认在你的系统中建立一个名为“计算机名\SQLExpress”的SQL Server Instance。以后在你的应用程序中,你可以使用这个Instance来访问数据库。现在你可以使用SQL Server Management Studio Express来访问这个SQL服务器了。第一次连接使用“计算机名\SQLExpress”作为数据库地址,Authentication用Windows,进去以后打开sa帐号(默认为关闭),或者建立新的帐号名,下一次就可以用SQL验证登陆了。 10 ottobre Company & OfficeCompany翻译成中文就是“公司”,Office则翻译成“办公室”。中国人习惯说“公司”,譬如“我回去公司了”,“我先去公司了”。直译成英文就是“I go back to the company”,“I go to the company first”。可是,实际上,在英文中,Company是一个商业的主体,而并不是指代一个特定的地点。如果要指代特定地点,则用Office来代替。于是上面的翻译就变成了“I go back to my office”,“I go to my office first”。而要说公司座落在何处,也是用“Where is your office?”,如果这里变成Company,就变成是问公司的注册地址(Business Registration Address)。 尽管知道如此,我还是很不习惯用Office,常常到了Company说出了口,才发现自己又口误。哎,骨子里的中国人。 05 ottobre 使用Yahoo!邮箱的POP3和SMTP功能其实Yahoo!的免费邮箱也是可以使用POP3接收和发送邮件的。当然,现在雅虎的邮箱已经扩容到了3G,实在不需要把邮件下载。但是对于那些习惯在本地阅读邮件的人——比如我,还是颇有些用处的。废话少说,现在来看看应该如何做到。
要使用Yahoo!的POP3功能,就必须成为Yahoo! Delivers的成员,方法如下:
1、注册Yahoo!的ID一个(废话,没有ID如何登录)
3、用你的ID登陆
4、选择“网上阅读邮件和POP功能”
5、提交
恭喜你,你现在已经可以使用Yahoo!的POP3功能了,系统设置如下:
接收邮件(POP3)服务器:pop.mail.yahoo.com.cn
发送邮件(SMTP)服务器:smtp.mail.yahoo.com.cn
登陆:Yahoo! ID
密码:Yahoo! 密码 |
|
|