共计 16 篇文章

继承与混合,略谈系统的构建方式

这两天在读kissy的源代码,从一开始我就对它的mix()函数充满了敌意。因为无论从哪个角度来看,那都是一个极其低效的实现。不过深入了解这个框架之后,我对kissy中的新的系统构建的模型产生了兴趣,而这种系统构建的方式,也正是由mix()所带来的。 一、对象系统 我们先了解一下对象系统。在《JavaScript语言精髓与编程实践》中谈到过,面向对象系统有三种对象的继承方式,即原型、类和元类。这三种方式都可以构建大型对象系统。在后续讨论之前,我们在名词概念上做一些强调,所谓“对象系统”,是指由“一组对象构成的系统” ...

关于我到支付宝,答朋友们问

在博客里写了《一个程序员的迷离人生》,便总有人说我太娇情:要是那周爱民都迷茫无知了,不知道别个又该如何活下去。这样的话题,原本我是不放在心上的,也没想着要去回复。后面再写《感受支付宝》,大概这种“迷离”是看不到了,却又没几个朋友看明白我在写什么。 算了,不管这些吧。我原本没打算再谈这些话题的,于是缩了身形儿,准备“掩了柴门”消停一段时间。但是又有朋友在MSN上找我说:爱民爱民,快去看看呀,大富翁(delphibbs) ...

VCL已死,RAD已死(6) - 结语与预测

<< 第五节:后RAD时代:领域的成熟 六、更远的将来(有限无责任预测) 再接下来,更为迎合这种面向领域组织团队并开发的工具便会出现。但这种工具不再期望整合各个领域的实现技术(注意我不是说“开发技术”),而是提供领域间的交付标准。或者更为直接地提供交付物。更多领域专精的公司受到关注(例如现在的macromedia),大厂商开始购并更多的专属领域的公司,以整合他们的业务。 更大的平台化产品会出现,远程的、分布的、可迁移的运算理论和解决方案被普及,而与此同时的,更细分的领域带来了更多的专属工具和专精人才,项目的整体规模扩张, ...

VCL已死,RAD已死(5)

<< 第四节:后RAD时代:界面可视,到界面可描述 五、后RAD时代:领域的成熟 从界面可视,到界面可描述的变化,使UI设计渐已成为一个相对独立领域。UI团队与UED团队之间并没有严格的、学术性区别,在不同的公司中它们的定义并不一样。一般而言,我们称前者为参与UI的全体,而UED则更关注于用户体验的这一部分。有些时候,我们也习惯性地称之为前端开发,或UI开发团队。 在这个领域中有一些明显的特点,例如界面开发过程中采用一种领域设计、开发语言(当然,XML力图成为“ ...

VCL已死,RAD已死(插播)

<< 第三节 RAD之死与系统的复杂性 这个插播,是Shaofei Cheng在MSN跟我的一段聊天记录。关于这个话题,我在会后休息的时候,与很多朋友都谈到过,但限于现场,无法记录。正好Shaofei Cheng与我又一次沟通了这个,得以形成记录,也能反映一些我在“VCL已死,RAD已死”这个论题中有关架构的思想。故此公众,大家可以狂批…… 建议整篇文章从头读起,在这里在这里 Shaofei Cheng 说: ...

VCL已死,RAD已死(3)

<< 第二节:分层,真的改变了你的思想了吗? 三、RAD之死与系统的复杂性 RAD在较小规模应用的开发上,具有相当的优势。同时,它具有两方面特性: 对于应付在各个模向分层上需求相对均势,并且在开发工具商提供的方案可应付的区间内的需求中,RAD以及使用RAD开发的团队具有极大的能量。例如早期的C/S模式下的数据库应用。 对于系统可以纵向切分(为多个子项目或独立模块),而且各个部分满足上述第一项的特性时,RAD在应付这类系统的规模增长上也具有极大的能量。例如群件、或中间件等。 对于上述两个特性之外的系统,RAD的团队难于组织、管理,也难于复制。 ...

VCL已死,RAD已死(2)

<< 第一节:从UI的变革到系统的复杂性 二、分层,真的改变了你的思想了吗? 分层思想提出来了——这在操作系统的设计上可以上溯到上个世纪50年代,但在应用软件开发上却并不太久。一个比较稳定的分层系统是“交互、业务和数据”三层,当然,与实际需要相关的还有更多层、更多更多层。 分层没有什么不好。正如我说WIMP没有什么不好一样。但是,厂商们开始掺合了。为了让我们的程序员成为RAD中的SuperMan,以及表明我们这些厂商直接就是超人学校,并提供超人道具。所以我们的开发工具加上了各种各样的RAD工具:数据库可以拖、 ...

VCL已死,RAD已死(1)

《VCL已死,RAD已死》         ——SD2C中未能尽言的话题 今年的SD2C,我匆匆去又匆匆还,因为有急事要处理,所以第三天的课程都没来得及参加。与此相同的是,我的那场话题,也讲得匆匆忙忙,有许多不清楚透彻的地方。其中之一便是这两个断言:“VCL已死,RAD已死”。 所以今次开贴重讲! 一、从UI的变革到系统的复杂性 UI怎么构成?在Windows及同期的Linux、Mac平台上,对UI的解构是WIMP(Windows,Icons,Menu,Point)。这个抽象具有相当的合理性, ...

内训资料公开:设计师的实战过程(3)

这是“设计师的实战过程”内部培训的第三节,第一、二节的信息在这里和这里。 这一节是这套培训的主体,也是源起。事实上最初的话题正是从“接口、分层设计与系统实现”来的,是在大型系统架构中的一个主要话题。然而这个话题相对来说过于宽泛,所以第一、二讲既是实战,也是对知识的补充。而第三讲,则讲的是大型设计中的思想与方法。 在这一节里,我回顾了工程的一段历史,主要是接口出现的历史。这其实是我个人思考中的一个被长期困扰的话题,我大概为这段历史而追寻了近一年之久,查阅各种资料等等。而追溯这段历史的路途中,我看到了工程中许多鲜为人知的事实。 ...

内训资料公开:设计师的实战过程(2)

这是“设计师的实战过程”内部培训的第二节,第一节的信息在这里。 在这一节里,我回顾了我在初入盛大时所做的一套数据架构。这套架构设计和实施约是在2005.10月,包括了完整的分析、设计,以及组织项目实施、交付的全部过程。这次培训录音以分析、设计为主,并讲述了项目过程中设计师的工作等内容。所以是一次比较完整完善的实战过程。 培训录音末尾还回顾了我在项目中的得失,以及一些感悟。因为事实上这是我进入盛大之后,历经的一次从(原来的)开发和项目管理,向架构与设计角色转化的过程,所以这次项目经验也就形成了我后期的架构风格,与基本的思想方法。对我而言, ...

内训资料公开:设计师的实战过程(1)

今天去CSDN做了一档节目(细节保留……呵呵),这勾起了我对在盛大工作的回忆。曾经,我在盛大做过一次内训,是关于设计师的实战的,这次内训大概是在2007年5月间。时间过去了一年多,如今我来看这些内容,仍然有许多可圈点之处。所以这里就把它公开出来,与大家分享,也欢迎批评。 这次内训讲了三讲,但非常遗憾的是,第一讲没有录完——中间的时候,我的手机内存被耗空了。这一讲一共讨论了“事务系统”中的5份文档,但只录了前三份。后两份则没录下来,但大体的思想,大家可以看得到了。 ...

旧文重发:做人、做事,做架构师——架构师能力模型解析

这篇文章发表于《程序员》2008.04期。其中有关模型图参见: 架构师的能力模型(图),有关该模型的另一个讨论参见:能力要成体系。 引子 究竟是什么让你在同一个位置上——例如程序员或技术负责人——工作了三年、五年或者更久,而仍然得不到任何的发展空间?你觉得自己已成为技术圈中的大牛,并信心满满地去拿明天就要颁发的某某大奖,然而却仍然停留在同样的技术职位上,去年到今年涨的薪水甚至填不平物价升幅?于是,你开始对老板不满,对员工不满,对昨天升职的那个同事不满……你开始计划明天就要跑单,或者准备考虑提出加薪却又心怀忐忑。 如果技术人员有发展的轨迹, ...

旧文重发:谈企业软件架构设计

这篇专访是ZDNET的李宁编辑在2007.03月期间做的。 [编者语] 最近在网上读到了“杀不死的人狼——我读《人月神话》”系列文章。是周爱民关于《人月神化》的读书心得。《人月神化》在软件工程里一本很有分量的书,讲述了Brooks博士在IBM公司 System/360家族和OS/360中的项目管理经验。周爱民在他的这一系列文章中用自己架构师经历为基础,从他的视角重新品读了这本书。而这也使我有了采访下他的想法,从中我们也许可以了解到中国企业内软件架构设计这个环节的现状。目前周爱民是盛大网络架构师。想与ZDNet技术专家一起分享你的智慧吗?请联系我leesbfpsj#hotmail.com. ...