VCL已死,RAD已死(3)

三、RAD之死与系统的复杂性
-----
RAD在较小规模应用的开发上,具有相当的优势。同时,它具有两方面特性:

1、对于应付在各个模向分层上需求相对均势,并且在开发工具商提供的方案可应付的区间的需
求,RAD以及使用RAD开发的团队具有极大的能量。例如早期的C/S模式下的数据库应用。

2、对于系统可以纵向切分(为多个子项目或独立模块),而且各个块满足上述第一项的特性时,
RAD应付规模增长的系统时,也具有极大的能量。例如群件、或中间件等。

对于上述两个特性之外的系统,RAD的团队难于组织、管理,也难于复制。显然,RAD对个体特性
的要求过高,不利于团队的成长。大公司的高人们,难道真的没有看到这一点么?

不是,他们看到了。VS.NET开始把产品做成产品线,发布开发产品的不同版本:设计师的、架构
师的、测试工程师的……等等这些。与此相同的,各家都开始这样切分产品。但是相同的产品线
名称迷茫了开发人员:大多数时候,我们要么选用不分这种版本的早期产品,要么选用这种产品
的最完整版本。而后者,正是大公司的销售经理最喜闻乐见的,他们会相互吹嘘自己买出去多少
个Site Suite版本,并同时拿Web Devleper版本的业绩来开涮。同时,大产商也不会无视市场的
价格而鼓吹单一版本,因为那样的结果是:“网页制作应该用macromedia的”、“图形设计应该
用adobe的”、“数据库得选Oracle的”、“服务器最好用Linux便宜”……

拆开来买的“大”产品,虽然不至于一文不值,但至少没大产品值价。这个与传统产品不同,其
根源在于开发工具的“大”产品没几家做得出来,而“精”却很多人能做得到。大公司可不会为
了理论上的正确性而无视于市场盈利。

所以大厂商对RAD工具的细分其实只是假象,用来说明他们的工具足够牛足够大和足够好的一个
旁证。这些“细分”的背后是极强的相互依赖性,结果是:整个解决方案还是一家独大。

我认为,系统的复杂性需要横向的切分来分解。因为横向的切分产生的是领域,与之对应的,就
是不同领域、产业的力量,而非某个个人或团队或公司的力量。不同领域、产业带来的,是整体
性的推动,而不是某个个体的畸形发展。同样的,他也带来了个体品质的提升,例如有了最好的
砖瓦匠和水电工,也带来了在更高分层上独立思考的可能性,例如建筑师与城市规划设计师。

当然,我相信很多人认为自己拎上一把锤头就可以做水电工——我前两天在CSDN论坛里就看到了
这样的观点,我也相信很多人认为建筑师与城市规划设计师都是饭桶,他们存在的目的仅仅是就
业安置或者消耗粮食。我完全相信这种观点的存在,但不同意它。我曾经做过电工,我知道用一
把锤头敲击就听出设备的好坏是需要10年以上的功夫的;我也知道如果没有规划师,城市会比现
在更乱而不是更好。

你可以批评别人做得不够好,但把你放在相同的位置上,你未必做得更好。这与横向分层理论带
来的效果是一样的,你可以认为自己能做好所有层次上的工作,但你真要去做的时候,却未必做
得到。以及,由于你——这个个体不能被拆分,所以你的工作是串行的、效率是有限的,结论正
是:在这样的思想下,大的系统会越做越糟糕。

横向分层带来的结果要变成良性的,就必然是相信每个层面上有相“匹配”的人员。你要信任它,
并主动合作,你要相信团队是一个多层结构,相信团队中的其它人会给你帮助,以及需要你的帮
助。你做不到一切,你依赖于别人而达到你的成功。

同样的,你也必须认识到:没有任何一个团队一开始就是这样的。团队需要清理,需要沉淀。需
要花费一些成本来建立沟通,并逐渐形成合作的模式、默契。当然,另一种更加不错的方式是:
整个教育和培训行业相信这一点,在程序员走向商业产品开发之前就培养他们的团队组织与协作
能力,从习惯于服从和配合,到学会观察与学习,以及在团队中如何自我提升。等等这些,才是
我们传统行业——例如我们常常提及到的建筑行业中的职业进化模式。

产业的、领域的推动才会解决系统复杂性的问题,而不是某一个或几个大公司在他们各自有限的
领域中折腾。他们折腾的目的、根本只是为了商业利益,而不是为了解决问题。
RAD Studio VCL Reference (VCL参考) ContentsActnColorMaps Namespace Classes TStandardColorMap Class TStandardColorMap Members TStandardColorMap Methods TStandardColorMap.SetColor Method TStandardColorMap.UpdateColors Method TStandardColorMap Properties TStandardColorMap.BtnFrameColor Property TStandardColorMap.BtnSelectedColor Property TStandardColorMap.BtnSelectedFont Property TStandardColorMap.Color Property TStandardColorMap.DisabledColor Property TStandardColorMap.DisabledFontColor Property TStandardColorMap.DisabledFontShadow Property TStandardColorMap.FontColor Property TStandardColorMap.FrameBottomRightInner Property TStandardColorMap.FrameBottomRightOuter Property TStandardColorMap.FrameTopLeftInner Property TStandardColorMap.FrameTopLeftOuter Property TStandardColorMap.HighlightColor Property TStandardColorMap.HotColor Property TStandardColorMap.HotFontColor Property TStandardColorMap.MenuColor Property TStandardColorMap.SelectedColor Property TStandardColorMap.SelectedFontColor Property TStandardColorMap.ShadowColor Property TStandardColorMap.UnusedColor Property TStandardColorMap Events TStandardColorMap.OnColorChange Event TThemedColorMap Class TThemedColorMap Members TThemedColorMap Methods TThemedColorMap.UpdateColors Method TThemedColorMap Properties TThemedColorMap.BtnFrameColor Property TThemedColorMap.BtnSelectedColor Property TThemedColorMap.BtnSelectedFont Property TThemedColorMap.Color Property TThemedColorMap.DisabledColor Property TThemedColorMap.DisabledFontColor Property TThemedColorMap.DisabledFontShadow Property TThemedColorMap.FontColor Property TThemedColorMap.FrameBottomRightInner Property TThemedColorMap.FrameBottomRightOuter Property TThemedColorMap.FrameTopLeftInner Property TThemedColorMap.FrameTopLeftOuter Property TThemedColorMap.HighlightColor Property TThemedColorMap.HotColor Property TThemedColorMap.HotFontColor Property TThemedColorMap.MenuColor Property TThemedColorMap.SelectedColor Property TThemedColorMap.SelectedFontColor Property TThemedColorMap.ShadowColor Property TThemedColorMap.UnusedColor Property TThemedColorMap Events TThemedColorMap.OnColorChange Event TTwilightColorMap Class TTwilightColorMap Members TTwilightColorMap Methods TTwilightColorMap.UpdateColors Method TTwilightColorMap Properties TTwilightColorMap.BtnFrameColor Property TTwilightColorMap.BtnSelectedColor Property TTwilightColorMap.BtnSelectedFont Property TTwilightColorMap.Color Property TTwilightColorMap.DisabledColor Property TTwilightColorMap.DisabledFontColor Property TTwilightColorMap.DisabledFontShadow Property TTwilightColorMap.FontColor Property TTwilightColorMap.FrameBottomRightInner Property TTwilightColorMap.FrameBottomRightOuter Property TTwilightColorMap.FrameTopLeftInner Property TTwilightColorMap.FrameTopLeftOuter Property TTwilightColorMap.HighlightColor Property TTwilightColorMap.HotColor Property TTwilightColorMap.HotFontColor Property TTwilightColorMap.MenuColor Property TTwilightColorMap.SelectedColor Property TTwilightColorMap.SelectedFontColor Property TTwilightColorMap.ShadowColor Property TTwilightColorMap.UnusedColor Property TTwilightColorMap Events TTwilightColorMap.OnColorChange Event TXPColorMap Class TXPColorMap Members TXPColorMap Methods TXPColorMap.UpdateColors Method TXPColorMap Properties TXPColorMap.BtnFrameColor Property TXPColorMap.BtnSelectedColor Property TXPColorMap.BtnSelectedFont Property TXPColorMap.Color Property TXPColorMap.DisabledColor Property TXPColorMap.DisabledFontColor Property TXPColorMap.DisabledFontShadow Property TXPColorMap.FontColor Property TXPColorMap.FrameBottomRightInner Property TXPColorMap.FrameBottomRightOuter Property TXPColorMap.FrameTopLeftInner Property TXPColorMap.FrameTopLeftOuter Property TXPColorMap.HighlightColor Property TXPColorMap.HotColor Property TXPColorMap.HotFontColor Property TXPColorMap.MenuColor Property TXPColorMap.SelectedColor Property TXPColorMap.SelectedFontColor Property TXPColorMap.ShadowColor Property TXPColorMap.UnusedColor Property TXPColorMap Events TXPColorMap.OnColorChange Event Constants ActnColorMaps.cXPBtnFrameColor Constant ActnColorMaps.cXPFrameOuter Constant ActnColorMaps.cXPSelectedColor Constant ActnCtrls Namespace Classes TActionToolBar Class TActionToolBar Members TActionToolBar Properties TActionToolBar.ActionManager Property TActionToolBar.Align Property TActionToolBar.AllowHiding Property TActionToolBar.Anchors Property TActionToolBar.BiDiMode Property TActionToolBar.Canvas Property TActionToolBar.Caption Property TActionToolBar.Color Property TActionToolBar.ColorMap Property TActionToolBar.Constraints Property TActionToolBar.Cursor Property TActionToolBar.DragCursor Property TActionToolBar.DragKind Property TActionToolBar.DragMode Property TActionToolBar.EdgeBorders Property TActionToolBar.EdgeInner Property TActionToolBar.EdgeOuter Property TActionToolBar.Enabled Property TActionToolBar.Font Property TActionToolBar.HorzMargin Property TActionToolBar.HorzSeparator Property TActionToolBar.Orientation Property TActionToolBar.ParentBackground Property TActionToolBar.ParentBiDiMode Property TActionToolBar.ParentColor Property TActionToolBar.ParentFont Property TActionToolBar.ParentShowHint Property TActionToolBar.PersistentHotKeys Property TActionToolBar.PopupMenu Property TActionToolBar.ShowHint Property TActionToolBar.Spacing Property TActionToolBar.VertMargin Property TActionToolBar.Visible Property TActionToolBar Events TActionToolBar.OnAlignInsertBefore Event TActionToolBar.OnAlignPosition Event TActionToolBar.OnCanResize Event TActionToolBar.OnClick Event TActionToolBar.OnConstrainedResize Event TActionToolBar.OnContextPopup Event TActionToolBar.OnControlCreated Event TActionToolBar.OnDblClick Event TActionToolBar.OnDockDrop Event TActionToolBar.OnDockOver Event TActionToolBar.OnDragDrop Event TActionToolBar.OnDragOver Event TActionToolBar.OnEndDock Event TActionToolBar.OnEndDrag Event TActionToolBar.OnEnter Event TActionToolBar.OnExit Event TActionToolBar.OnGetControlClass Event TActionToolBar.OnGetSiteInfo Event TActionToolBar.OnMouseActivate Event TActionToolBar.OnMouseDown Event TActionToolBar.OnMouseMove Event TActionToolBar.OnMouseUp Event TActionToolBar.OnPaint Event TActionToolBar.OnResize Event TActionToolBar.OnStartDock Event TActionToolBar.OnStartDrag Event TActionToolBar.OnUnDock Event TCustomActionCombo Class TCustomActionCombo Members TCustomActionCombo Methods TCustomActionCombo.BeginAutoDrag Method TCustomActionCombo.ComboWndProc Method TCustomActionCombo.DesignWndProc Method TCustomActionCombo.DragDrop Method TCustomActionCombo.DragOver Method TCustomActionCombo Properties TCustomActionCombo.DragMode Property TCustomActionCombo Events TCustomActionCombo.OnClick Event TCustomActionDockBar Class TCustomActionDockBar Members TCustomActionDockBar.Create Constructor TCustomActionDockBar Fields TCustomActionDockBar.FControlHeightIndexes Field TCustomActionDockBar.FScrollDown Field TCustomActionDockBar.FScrollUp Field TCustomActionDockBar Methods TCustomActionDockBar.CalcDockedWidth Method TCustomActionDockBar.CreateControls Method TCustomActionDockBar.CreateScrollButtons Method TCustomActionDockBar.CustomAlignPosition Method TCustomActionDockBar.Dock Method TCustomActionDockBar.DoEndDock Method TCustomActionDockBar.DoScrollDown Method TCustomActionDockBar.DoScrollUp Method TCustomActionDockBar.DoStartDock Method TCustomActionDockBar.GenerateControlHeightLookup Method TCustomActionDockBar.GetFloatingDockSiteClass Method TCustomActionDockBar.GetSiteInfo Method TCustomActionDockBar.Loaded Method TCustomActionDockBar.MakeLastItemVisible Method TCustomActionDockBar.Resize Method TCustomActionDockBar.SetOrientation Method TCustomActionDockBar.SetupScrolling Method TCustomActionDockBar.ShowScrollButtons Method TCustomActionDockBar Properties TCustomActionDockBar.AllowScrolling Property TCustomActionDockBar.ScrollingRate Property TCustomActionDockBar.VisibleIndex Property TCustomActionToolBar Class TCustomActionToolBar Members TCustomActionToolBar.Create Constructor TCustomActionToolBar.Destroy Destructor TCustomActionToolBar Fields TCustomActionToolBar.FHiddenItems Field TCustomActionToolBar.FPopupBar Field TCustomActionToolBar.FScrollBtn Field TCustomActionToolBar Methods TCustomActionToolBar.AutoSizingChanged Method TCustomActionToolBar.CalcButtonWidth Method TCustomActionToolBar.CalcDockedWidth Method TCustomActionToolBar.CMColorchanged Method TCustomActionToolBar.CreateControl Method TCustomActionToolBar.CreateControls Method TCustomActionToolBar.DisableHiding Method TCustomActionToolBar.DoDropCategory Method TCustomActionToolBar.DoScrollBtnClick Method TCustomActionToolBar.DragDrop Method TCustomActionToolBar.DrawBackground Method TCustomActionToolBar.DrawSeparator Method TCustomActionToolBar.EnableHiding Method TCustomActionToolBar.GetControlClass Method TCustomActionToolBar.GetPopupClass Method TCustomActionToolBar.GetScrollBtnClass Method TCustomActionToolBar.HideUnusedItems Method TCustomActionToolBar.Reset Method TCustomActionToolBar.SetBounds Method TCustomActionToolBar.SetOrientation Method TCustomActionToolBar.SetupDropDownBtn Method TCustomActionToolBar Properties TCustomActionToolBar.HiddenCount Property TCustomButtonControl Class TCustomButtonControl Members TCustomButtonControl.Create Constructor TCustomButtonControl Fields TCustomButtonControl.FFlat Field TCustomButtonControl.FState Field TCustomButtonControl Methods TCustomButtonControl.CalcBounds Method TCustomButtonControl.Click Method TCustomButtonControl.CMDialogChar Method TCustomButtonControl.CMEnabledChanged Method TCustomButtonControl.CMMouseEnter Method TCustomButtonControl.CMMouseLeave Method TCustomButtonControl.CMTextChanged Method TCustomButtonControl.DrawBackground Method TCustomButtonControl.DrawFrame Method TCustomButtonControl.DrawLargeGlyph Method TCustomButtonControl.GetShowShortCut Method TCustomButtonControl.Loaded Method TCustomButtonControl.MouseDown Method TCustomButtonControl.MouseMove Method TCustomButtonControl.MouseUp Method TCustomButtonControl.Paint Method TCustomButtonControl.SetActionClient Method TCustomButtonControl.SetBounds Method TCustomButtonControl.SetGlyphLayout Method TCustomButtonControl.SetSelected Method TCustomButtonControl.WMLButtonDblClk Method TCustomButtonControl Properties TCustomButtonControl.AllowAllUp Property TCustomButtonControl.Caption Property TCustomButtonControl.Down Property TCustomButtonControl.Flat Property TCustomButtonControl.MouseInControl Property TCustomButtonControl.ShowCaption Property TCustomButtonControl.ShowShortCut Property TCustomButtonControl.State Property TCustomButtonControl.TrackButton Property TCustomComboControl Class TCustomComboControl Members ........(全)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值