无辜的RAD(RAD是让你去创造和使用可复用的组件,不是让程序员“变白痴”)good

无辜的RAD

2005-3-21

说实话,RAD很无辜。从出生的那天其就被骂,天天被指着鼻子说“不就是拖个控件嘛”,就好像当年说学电脑“不就是插个鼠标嘛”。也怪程序员大都天性犯贱,就爱一遍又一便的写基础代码库,什么字符串类啦、智能指针啦、动态集合啦,能写的都自己写一遍,要是用现成的啊,你都不好意思跟人说。天天重复重复再重复地做着重复重复再重复的事情,还以为自己做着多么伟大的事情,直到哪天一位民工叔叔拍拍他的肩膀说道:“省省吧,我们早就不用砖头盖大楼哩!”

复用性是软件开发的核心之一,从函数到类,到组件,到中间件,复用的规模逐渐加大。RAD的核心就是复用。至于控件,其实就是可视组件。

函数是最早,也是最简单的复用单元,代表语言C。你一定认为我重复这个old的基本概念是在浪费带宽,那么为数不少的程序员仍然在写超过1000行的单个函数,是不是该把他们拖出去斩了?

类随着面向对象概念而出现,作为包含一组操作函数和数据的复用单元,代表语言C++,经过当年MFC若干年的努力,终于广为接受。而随着现在Unix的复兴,反对派也有了一定声强。原因很简单,连设计可复用的函数都有很多人做不到,更别说类了。很多人只是把所有要用的函数堆到一个类里,结果还不如不用。

组件随RAD概念而出现,作为包含共同完成一项功能的一组类的复用单元。代表语言Delphi,到不是说Delphi提供了多少组件,而是它提供了一种方便的实现组件的方式,开发人员利用这种方式创造的大量的良好可复用组件。Borland的组件化设计同样造就了JavaBean,也延伸到dotNet。如果有人还不明白,简单的说就是:RAD是让你去创造和使用可复用的组件,不是让程序员“变白痴”。

中间件就是半成品,是比组件更大的复用单元,而且不再强调用什么方式实现,不强调使用什么样的接口。在这种规模下,一般开发工作与设计工作已经分离由不同的专职人员完成。

比起函数和类,组件和中间件都更为抽象,不拘泥于某种实现形式,而且由于问题规模更大,往往要伴随相关文档来构成一个完整的整体。这些方式没有哪种是最好的,使用哪种方式完全取决于需求和问题规模。

不少RAD反对者认为使用组件就远离了底层,就好像把厕所改叫盥洗室就有人找不到大号,无非都是些函数和类,和底层不底层有什么关系。其实只不过是VB不支持指针,所以VB的组件大都只提供高级接口,就被以偏概全。还有反对者认为用封装好的东西就不能了解底层,非要自己写一遍才行,就好比要重新证明力学三定律。如果是为了专研学习确实精神可嘉,如果是做工作就是神经。枉费了文档和源码还都理解不了底层,还要在这点问题上浪费生命。于是,有人用for(int *p = src, *q = dst, *e = src + count; p < e; *q = *p, p++, q++);重写memcpy,还自诩比系统的快,我@#$%^&*。人家XBox的广告说得好,“人生苦短,及时行乐”,何不把时间花在赚钱的事情上。

当然,C的领地内是不提组件的,因为广为接受的组件的概念是基于类的。正如OO传道者说的,OO只是一种概念,如果说能够做OO设计的语言都是面对对象的语言的话,C也是面对对象的,Ada也是。同样,组件也是一种概念,它只是一个独立可复用的模块,由于C的纯粹性,在C里实现这样一个东西比在C++里容易。C++上很难发展组件的原因是,可复用的组件必须有易于模块对接的接口,而C++偏偏没有统一的基础库,就连个字符串都每个类库一套实现。组件又是相对高层的结构,只得依附某一代码框架,也就只能在同一框架下复用,也就大大限制了组件的发展也由此催生了COM,作为和语言框架无关的接口。可惜COM认的老大是VB,C++要是想和COM打个照面啊,那个难啊。

总的来说,很多人还处在旧PC时代,那时候一个人就能写出个WPS,一个人就能写出个CCDOS,而现在这些只能是唐吉诃德的美梦。手机软件的兴起让很多人重温了一下旧梦,不过最终还是要回到现实。

http://blog.csdn.net/nightmare/article/details/353337

时间: 2025-01-06 00:15:09

无辜的RAD(RAD是让你去创造和使用可复用的组件,不是让程序员“变白痴”)good的相关文章

什么样的程序员适合去创业公司

2015年11月25日早上,我宣布解散团队,结束了我的创业之旅. 内心的各种不舍.纠结.怅惘.愧疚.惆怅,让我在聊天的过程中忍不住落下泪来,这是我不曾想到的.在写到这里时,忽然就想起汪峰的那首歌--当我想你的时候--里面的一句歌词,"至少有十年我不曾流泪".然而不管怎样向前伸出挽回的手怎样颤抖着手指去抓握,一切都已无可挽回,事实已然如此,所能做的,仅仅是接纳而已. 也许你也有类似的经历,也许你在考虑以怎样的形式和创业公司勾搭,那可以看看我发布在微信订阅号"程序视界"

当程序员老去,他们会做些什么?

很多年以后,在我60岁的那天早晨,天刚蒙蒙亮我就起床了,先去公园晨练,然后回来做早餐(50岁的时候我学会了做饭),送完外孙上学,刚好8点.由于从2020年开始单双月限行了,这个月是单月,所以只能挤地铁.人一如既往的多,一小伙子要给我让座,看了看他的小身板,我说不用,你也是干 IT 的吧,今天咱们都是程序员. 来到公司,墙上那条新贴上去的刺眼规定总是让我很不舒服:所有的服务器端语言必须使用 Come,移动端语言使用 Swallow,还在使用 Java.C.Go 和 Swift 语言写程序的,罚款5

程序员最应去的网站有哪些?

程序员最应去的网站有哪些?   要想成为优秀的程序猿,不仅要有一定天分,常与大神交流,自己多加练习才是正确的方法. 下面是一些Quora用户推荐的国外网站,与广大程序猿或者希望学习编程的朋友们分享: 1)编程练习和竞赛类 http://www.codechef.com/ http://www.spoj.com/p/ http://programmingpraxis.com/ http://projecteuler.net/about http://www.topcoder.com/ http:/

我们永无止境地去探索、去追求、去开拓、去创造

[一] 小时候,我望着遥远的地平线,问母亲:"地有边吗?" "地没边."母亲说. "那遥远的地平线,不就是地的边吗?"我问 "那遥远的地平线,并不是地的边."母亲说,"当你到达那遥远的地平线后,又能看到新的地平线,永无止境." "地为什么会无边呢?"我问. "也许,上帝在造地球时,就把地球造成了圆的."母亲说. "哪为什么上帝要把地球造成圆的呢?"

程序员常去的14个顶级开发社区

程序员常去的14个顶级开发社区 Stack Overflow 9月份,Stack Overflow也将迎来其6岁的生日,毫无疑问,Stack Overflow是全球最受程序员欢迎的开发社区,而且也是内容最丰富的社区之一. 官方网站:http://stackoverflow.com/ Reddit reddit也是一个非常富有个性的社区,你可以在reddit上提交一些感兴趣的话题,也可以和其他程序员讨论一些编程开发的问题和当前的IT热点资讯,reddit是一个用户粘性比较强的开放社区,编程开发板块

干货|程序员常去的14个顶级开发社区

作为程序员,选择好合适的开发社区对提高自己的编程能力会有很大的帮助,我也说不出为什么,但是一些优秀的实时开发社区确实能帮你积累不少开发经验. 下面这张图列出了14个程序员经常逛的顶级开发社区.作为程序员,你应该要了解其中一个或者最好是多个,并且学会使用它们,利用里面的资源提高自己的编程能力. 我们期望在开发者社区中获得什么? 我们希望能得到切实的帮助,而不是获取一些唠叨的废话或者一些水文.我们希望能根据自己提出的问题来获得其他开发者的回答帮助或者讨论一些学习资源的问题.下图是一些开发者在社区中最

一百多个程序员常去的网站

程序员是很容易被淘汰的职业,所以要善于学习总结.强烈的好奇心和学习精神是一个程序员的秘密武器,它是程序员们永攀高峰的源泉和动力所在.下面是一百多个程序员经常去的网站. 1 程序员论坛: 2 J2me社区 http://www.j2meforums.com/forum/ 3 csdn http://www.csdn.net/ 4 Vc知识库 http://www.vckbase.com/ 5 codeproject http://www.codeproject.com/ 6 程序员联合开发网 ht

程序员去美国工作:工作在加州的华为

欢迎参加我们的交流活动,面对面的与赴美程序员交流在美工作和生活的方方面面: 以下是往期交流活动纪要,帮助打算过去的了解漂在北美的各种情况,如需转载请注明出处. 在上一期的线上交流活动中,我们请来了应届毕业赴美的Kevin Gao童鞋与我们面对面交流,取得了不错的反响.第二期的活动应大伙要求,特找来了在国内已有多年经验的前辈Darian Lee来跟我们讲讲他在加州工作与生活的感受,以方便大家了解不同背景的程序员在美的近况. * 在校期间与童鞋们的合影(右二) Darian(以下简称D): 男森,3

程序员必去的十大网站

这篇文章,源于中午在我建立的一个产品经理微信群的讨论,正好身边有一大波程序员,于是请教他们,程序员,究竟经常去哪些网站.于是,有了这篇文章,感谢程序员志伟.俊坤.国晴.超凡的分享. 看看你去过哪几个……也欢迎大家补充更多有价值的网站. 一.github.com开源代码(代码活跃社区)     二.code.google.com 谷歌开源站点       三.stackoverflow.com 程序员的百度知道,问答社区,大牛无数 四.developer.android.com 安卓程序员必去网站