为了考虑一段代码中的字符串处理效率问题,我写了一个测试程序来检测字符串引用,然后把它贴在delphibbs里(http://www.delphibbs.com/delphibbs/dispq.asp?lid=1220572)。随后这引起了对软件工程和开发技巧的争论。下面的文字很大程度上代表了我当时(2002年中)对开发技术、技巧的观点,我想这与现在的很多开发人员的观点是一致的:

========================

说实在的,现在越来越多的人员都在说要重工程,而不要重算法,不要重技巧;陷于程序的枝节,不如跳出来考虑总体结构。

看起来说得很对,但问题是,为什么到现在M$的编译器的速度都比Borland的慢?M$在这上面追了这么多年,什么样的软件工程没搞过,却怎么还是比人家的慢?

现在个人机越来越高档,对于个人而言,好象是永远也不用到CPU极限一样。但是,服务器呢?成千上万个人在用,服务器端的软件不讲求效率和性能,面临的可能就是不断地找机房管理员重启服务器!

在大谈软件工程的时代,我来追求一两行代码的性能,可能是老土,但如果做服务器程序的人,没有土一点的思想,不明白编译器的细节,可能是行不通的。

早些日子一个知名的程序员(我的同事)说他的程序象美国造的军用匕首,精巧好用,科技含量十足,而另一个程序员写的程序象前苏联的坦克,耗油、声音大但用三十年不会返修,连螺丝钉都不会掉一个。

我就说,前者适合做个人工具软件,后者适合做服务器端……

========================

基本上,即使是现在,我仍然不会去否定这种“出自程序员”的观点。但站在另外的角度,例如“软件工程的实践者”,我却在思考“语言只是工具”以及“语言只是工程中的细节”这样的问题;或者站在架构师的角度,开始思考“如果有性能需求,那么就在技术细部做处理”、“不要把‘新技术’与‘好方法’给等同起来”这样的问题。

我开始否认技术与技巧,是与承认它们、思考它们同时并进的。在《Delphi源代码分析》的前言里头,我就写过:“通常,如果你发现‘必须使用技巧来解决问题’,那么你应当考虑‘是否方案设计错误’”,而写这句话的同时,我正在自相矛盾地研究着Delphi内部的细节与技巧。

而现在,我一面在如同2002年持上述现点一样地用技术和技巧来实现一些架构的细部,同时又在实践着我在《大道至简》中写过的言论:语言只是工具。

我们对于事物的认识总是渐进的,你不能指望孔子、老子、庄子这些先贤们在二、三十岁的时候就有如今我们所知所见的思想深度,因而你也不能期望没有软件开发实践的新手们去相信你对工程和架构的理念。如同我在三年前固执于效率、技巧与细节那样,我们总能看到开发人员最正常、最真实以及最可爱的一面:持着与细致。

然而我现在的观点是:“如何做”只是手段问题,“做什么”,才应当是关注的焦点。

因而我还想问的是:为什么到现在M$的编译器还是比Borland的慢,然而VS.NET已经绝对占领了未来Windows平台上开发的市场?



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=543590


[收藏到我的网摘]   [发送Trackback]  aimingoo发表于 2005年12月04日 22:07:00




上一篇: 善于使用资源的程序员才是好程序员 | 下一篇: 再谈borland与MS对BUG的不同态度~

评论

#  op 发表于2005-12-05 17:06:00  IP: 218.18.41.*
这是什么问题嘛!是你的命重要,还是你的脑袋更重要?

#  疯子阿虹 发表于2005-12-05 18:29:00  IP: 61.152.122.*
什么都不重要,短时间拿出成品并且可以运行最重要!!!

效率已经不是最大的问题了,包括服务器程序端。

#  J10 发表于2005-12-06 08:57:00  IP: 61.145.178.*
贊成scott chen的說法

#  juqiang 发表于2005-12-06 14:03:00  IP: 218.56.145.*
to tangl_99,在北美,去年开始,.NET程序已经比JAVA多了。。。(37%:32%)

#  juqiang 发表于2005-12-06 14:06:00  IP: 218.56.145.*
楼主关于性能的问题,确实有意思。
程序的某个问题,让客户及其不爽,最终发现的原因,与表象实在差距太大了。细节,决定一切的。当你不停的用windbg来做code的debug的时候,就知道自己的无助和痛苦了。

#  Avlee 发表于2005-12-06 14:35:00  IP: 222.88.61.*
难道微软在做编译器或者Windows的时候,没有注重运行效率?恐怕不会吧。
当然啦,讨论问题不把问题夸大一点,怎么能凸现你讨论的意义呢?

#  tangl_99 发表于2005-12-05 21:25:00  IP: 211.162.151.*
算法的重要性肯定不用说了。
很多领域已经不是仅仅是效率的问题,而是可行性以及能否实现的问题了。

如果只是写一些管理软件,可能不牵涉太多的算法,但是如果涉及到更广阔的领域呢???

#  OpenGirL 发表于2005-12-05 21:26:00  IP: 211.160.120.*
研究最重要,实现手段让小人物们去琢磨吧

#  WindFromSky 发表于2005-12-06 10:19:00  IP: 61.149.145.*
我的排序是:
1.算法正确
2.开发效率
3.运行稳定
4.易于维护和扩展
5.运行效率

#  kook 发表于2005-12-06 10:21:00  IP: 59.57.207.*
你这样拿出来的产品都是垃圾。
如果服务器端效率不重要,那说明你写的都是些低级的服务器。
当服务器连接的客户端超过1万,10万的时候你就知道什么才是
效率了

疯子阿虹 发表于2005-12-05 6:29 PM IP: 61.152.122.*
什么都不重要,短时间拿出成品并且可以运行最重要!!!

效率已经不是最大的问题了,包括服务器程序端。


----------------
为什么不能架构和细节并重呢?

#  Scott Chen 发表于2005-12-05 22:29:00  IP: 221.221.26.*
微软的编译器不如Borland的好,但是微软如日中天,而Borland行将朽木。
微软的编译器也不如Watcom的好,但是微软活了20多年,而Watcom死了10多年。
对投资人来说,微软好过Borland,对程序员来说,微软依然好过Borland,尽管Borland的编译器快过其他厂商。
863计划中有一项很重要的课题,叫做复杂系统的可靠性研究,说白了就是关于工程性的课题。日本人在航天领域的任何技术点都好过我们,唯一的差距是——他们的飞船到现在为止依然趴在地上。
工程,然后工序,然后作业点。架构是属于工程范畴,而算法是属于作业点范畴,除非你只是个算法提供商。

#  laorer 发表于2005-12-05 22:34:00  IP: 218.87.6.*
技术的高低有时候并不能代表市场占有率的高低
但如果没有核心技术,则即使有市场也不会长久。
有的时候并不是别人没有那技术,只是没有表现出来,不要太乐观,当然,并不是说太悲观的去看待问题

#  bene 发表于2005-12-06 10:29:00  IP: 60.163.136.*
对于一样事务的好坏我觉得是他本身针对的对象的需求,东东没有最好,只有适合.Borland为什么退出市场,因为他无法掌握未来客户的需求.当然Microsoft有一天也会退出,原因也会是同样的.但现在Microsoft把握住了客户的需求方向.关于注重细节与架构我个人觉得也要看软件业面临的问题,也要针对不同的项目.是重架构多一些还是重算法多一些.

#  ari 发表于2005-12-05 22:50:00  IP: 219.137.221.*
编译器 的速度,并不是关键,毕竟,那是机器的事,多几分钟,只不过多喝杯茶而已。
开发速度,类库数量,开发资料,...这才是关键

#  single 发表于2005-12-06 10:38:00  IP: 203.126.245.*
这要看具体的应用了, 模式识别或搜索引擎可能更偏重关键算法的效率.
而大多数的企业应用则主要在于架构的设计.

#  csharpking 发表于2005-12-05 22:59:00  IP: 219.133.228.*
算法是设计的关键,架构为算计的设计提供平台,好的架构固然不错,但是为架构而牺牲算法的实现,觉得有些不值得,毕竟做什么才是最重要的

#  weiming 发表于2005-12-05 23:26:00  IP: 221.226.215.*
日本人在航天领域的任何技术点都好过我们,唯一的差距是——他们的飞船到现在为止依然趴在地上。

----------------------------------

Scott Chen这一番话, 充分说明了系统工程的重要性

#  ak 发表于2005-12-05 23:27:00  IP: 218.17.75.*
正如有楼上说这关乎系统论,我很赞成!
软件工程产生的时间太短,在中国更是没有什么像样的积累,其他领域发生的事情可以作为参照,可以从很多来源知道,我们国家的不是没有技术,很多技术还是先进的,但是系统整合能力实在不敢恭维,系统整合能力就涉及系统论的研究和实践。也有成功的例子,我国的航天工业就是,其中显而易见的一点是,钱学森就是著名的系统论专家




#  Peter 发表于2005-12-06 10:42:00  IP: 218.19.189.*
我从开始写程序就更重视架构和设计。当然我写算法也不差。但是没有很考究。
后来做的项目越多越发现,算法还是相当重要的。服务器端程序或者计算密集的程序。就目前的硬件水平来说还远远没有达到不用考虑算法的速度。
开发中遇到的最难办的事情就是提高某个功能的效率,或者是事务,或者是多线程的问题。当然,架构不行的话,这些问题还没有出现,项目就已经失败了。

#  龍子龍孫 发表于2005-12-06 15:32:00  IP: 59.68.129.*
其实要比耗油,二战的时候前苏联坦克可比一些如虎式豹式坦克好多了

虎豹和T34系列苏联坦克单挑,论防御轮价格一辆可挑好几辆,可是论载油量和攻击力,4000个T34可比1000量虎豹不知道便宜多少,但打起来1000量绝对都要损失惨重……就算虎豹打不赢就跑,跑着跑着,油跑完了T34还能跟上来


而美国的M系列突击步枪和前苏联的AK系列步枪,个方面我都喜欢M系列,论价格吧,中东地区美国士兵回国一般都不带枪回去,运费可比做新枪高多了,那里论公斤卖M系列,低吧,可是论杀人数量,连核武器都比不过AK。

#  菜鸟汤 发表于2005-12-06 16:06:00  IP: 59.44.116.*
龍子龍孫 说得好!

凡事应综合考虑,不能只看一个侧面一个时期就妄下论断。

楼主的想法有点钻牛角尖了。

#  phph 发表于2005-12-06 16:31:00  IP: 218.70.229.*
要看具体情况而论,凡事没有一定的。如果是一个很小的系统,什么周期不长,要求又不高(这样的系统不少哟)那什么架构,算法都可以见鬼去。如果做产品,从维护性,通用性,以后的升级,那么系统价格就很重要了。如果是做银行等要求高的系统,那么事务,算法就很重要了。

#  tangl_99 发表于2005-12-06 12:28:00  IP: 220.112.178.*
Microsoft投在.NET的钱远远超过JBuilder和Eclipse,但是使用C#,VB.NET,J#的的加起来还没有JAVA的人多。

Microsoft投在Windows的钱远远超过Linux,但是Windows的市场还是遭到Linux的侵蚀。

Microsoft投在WINCE上的钱远远超过Symbian,但是世界上50%以上的智能手机还是Symbian的天下。

对于顶尖的研究人员来说,微软研究院依然是搞前沿技术的最好去处。微软亚洲研究院里面很多都是搞纯学术的,主要工作就是发表论文。微软这么一个重视工程的公司?办什么研究院呢?



#  疯子阿虹 发表于2005-12-06 17:40:00  IP: 61.152.132.*
kook 发表于2005-12-06 10:21 AM IP: 59.57.207.*
你这样拿出来的产品都是垃圾。
如果服务器端效率不重要,那说明你写的都是些低级的服务器。
当服务器连接的客户端超过1万,10万的时候你就知道什么才是
效率了

-------------------------
别再这里吹了行吗?别说你写出连接数量超过10万的了。
你能写出超过1万的我就佩服你了。
随便看任何一个网络游戏。mmorpg或者休闲游戏。
有哪个单台服务器连接人数超过2000还不崩溃,还不卡机的?
你的意思是大家都没有用合适的算法吗?
服务器很多地方的技术问题就是一个算法2字能解决的吗?
大家又不是没有做过游戏服务器。
其中有很多因素应该心里明白。
而且就算支持人数少了,花上几万再买一台服务器并上不就得了。

摆脱,编程不是用嘴说的!!!

#  疯子阿虹 发表于2005-12-06 17:50:00  IP: 61.152.132.*
因而我还想问的是:为什么到现在M$的编译器还是比Borland的慢,然而VS.NET已经绝对占领了未来Windows平台上开发的市场?

-----------------------
我就不明白了,这会有什么疑问吗?
难道你认为一个市场的成功产品难道仅仅取决于编译器的快慢吗?
或者某一个具体的原因?

#  eking 发表于2005-12-06 13:32:00  IP: 59.57.173.*
量体载衣,才是最合适的.
访问量大,算法重要;
否则,效率重要.

#  非典型秃子 发表于2005-12-06 20:53:00  IP: 61.152.132.*
个人赞成主要精力应该大处着眼。但是算法这种东西,关键部位的一个失败就可能导致彻底失败。
所以,还是有细节的经验,然后再跳出来,大局着手,才是现实的。缺了哪一面都不灵光。

#  tangl_99 发表于2005-12-06 21:06:00  IP: 211.162.151.*
to juqiang:

你说的是Windows Server上的吧?

#  M++ 发表于2005-12-06 21:22:00  IP: 60.176.249.*
都重要,算法天赋要求高,架构经验要求高

#  newbiew 发表于2005-12-05 16:19:00  IP: 61.170.203.*
为什么到现在M$的编译器还是比Borland的慢,然而VS.NET已经绝对占领了未来Windows平台上开发的市场?

和编译器无关。

#  没什么好说的 发表于2005-12-05 16:19:00  IP: 218.81.40.*
看看唯物主义辩证法先

#  没什么好说的 发表于2005-12-05 16:19:00  IP: 218.81.40.*
然后看看系统论再

#  malongning 发表于2005-12-05 16:31:00  IP: 222.43.54.*
这个问题应该是相辅相成的,不能说哪个更重要,应该协调发展,有一个好的架构,没有成熟的技术也是枉然。同样没有好的架构,你的技术再好,做出来的也仅仅是一堆代码的集合。

#  少之 发表于2005-12-07 08:57:00  IP: 210.22.10.*
在炮火和销烟中成长!

#  jacket 发表于2005-12-07 09:26:00  IP: 218.18.39.*
算法是实现,架构是脊梁

#  Hank 发表于2005-12-07 09:33:00  IP: 61.141.202.*
我就不明白了,难道不能两条腿走路吗?

算法算法,国内走了这么多年很多程序员的处理算法都是模块化的,还怎么提升算法,谁有时间?

一个软件项目,如果从算法角度去提升效率提高10%和从工程角度提升效率提高10%那个更简洁?

Borland,又是Borland,Borland不过是一个软件提供商,他就是神?
编译器速度?是不是田忌赛马的比法?Delphi比VB快比不上VC,BCB简直就是蜗牛,和其它任何一个都没的比,怎么说比MS的快?重新编译一个有3000个窗口的工程,如果打开了数据连接,BCB编译一次的时间可以开个酒席了,快什么?开玩笑
Borland为什么日渐衰老,难道只是因为MS在前面挡路?Borland的产品到现在为止连完整系统的帮助系统都没有,更不用说各种区域化版本,这让老板怎么敢去选Borland的开发工具?
在很多人的眼里好像Borland的人都是神,MS的人都是垃圾一样,典型的中国式喜好判定,也就是不知道的人信,别人谁信?

用户的要求是达到功能要求,速度快,费用低;老板的要求是达到客户要求,客户满意;工程经理的要求是达到客户的要求,能把钱收回来;程序员的要求是实现和完善客户要求。至于怎么去实现,谁理你。

难道一个简单的系统都要用AS400去忙活?

#  活得痛快 发表于2005-12-07 15:06:00  IP: 58.20.42.*
什么是好,用户说好,就是好。方法不重要,结果满足才重要

#  网络混混 发表于2005-12-07 10:15:00  IP: 58.35.92.*
到什么公司做什么事情
看老板认为那种是最重要的。


员工没有实际决定权利.

再好的算法,再好的细节,再好的架构

这些都不需要时间吗?

互联网上的老板是急噪的。没耐心的。

一掉小投资都希望立刻获得收利.

这种情况下,你讲算法,细节,架构,是不是不符合市场,社会需求.

但是自己做的东西,自己不急噪,那当然要讲算法,细节,架构.

到那某个公司,公司允许你有一定足够时间,那么你也要讲算法,细节,架构.

#  何 发表于2005-12-07 11:02:00  IP: 61.141.0.*
算法当然,如果一个数据报表统计汇总要1个小时,你还用这个软件吗?
架构是需要经验和技巧的,不同的用户群对架构的是不一样的,象J2EE的架构有多少适用于中国的企业

#  lostpencil 发表于2005-12-07 15:47:00  IP: 10.4.0.*
灵活运用是关键,没必要死扣条条框框,当然灵活的团队交流和客户交流也是不能少的

#  什么也不懂 发表于2005-12-07 12:15:00  IP: 219.82.45.*
我不知道 什么是算法,什么是架构,我知道最终软件要见的是用户,用户说好就行了,速度都是相对的,用户使用软件也是主观的,他不看你的代码,你的构架,只看满足不满足他的要求。
你把出结果的速度从1ms提高到1s 用户不会骂你,
但是同样的倍数,你把出结果的速度从1s提高到1000s,哈哈
绝对挨骂

#  kook 发表于2005-12-07 12:19:00  IP: 59.57.205.*
疯子阿虹 发表于2005-12-06 5:40 PM IP: 61.152.132.*
kook 发表于2005-12-06 10:21 AM IP: 59.57.207.*
你这样拿出来的产品都是垃圾。
如果服务器端效率不重要,那说明你写的都是些低级的服务器。
当服务器连接的客户端超过1万,10万的时候你就知道什么才是
效率了

-------------------------
别再这里吹了行吗?别说你写出连接数量超过10万的了。
你能写出超过1万的我就佩服你了。
随便看任何一个网络游戏。mmorpg或者休闲游戏。
有哪个单台服务器连接人数超过2000还不崩溃,还不卡机的?
你的意思是大家都没有用合适的算法吗?
服务器很多地方的技术问题就是一个算法2字能解决的吗?
大家又不是没有做过游戏服务器。
其中有很多因素应该心里明白。
而且就算支持人数少了,花上几万再买一台服务器并上不就得了。

摆脱,编程不是用嘴说的!!!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~
你如果只知道网络游戏服务器,那就没有办法和你说了
你如果认为性能不够,再加上一台服务器就可以解决了,
那也没有办法和你说了

你认为我不能写出超过10万连接客户端的服务器,那说明你
自己不行,所以你认为别人不行。

记住,这个世界上服务器不只网络游戏服务器





#  什么也不懂,爱胡扯 发表于2005-12-07 12:33:00  IP: 219.82.45.*
我觉得算法是比架构更地层的东西,系统级软件的当然要考虑,做图象方面的 3d引擎的都是觉的硬件速度太慢了,3G的cpu 拿来做图象检索,我记得不优化的算法,一幅图提取的特征值要花2分钟左右,优化算法后也要2秒,如果用于1000幅的检索 要多长时间啊。
没有什么重要不重要,这都要看需要。
人都是最讲究需要的高级动物哦。
算法应该是先天的,架构应该是后天养成,如果先天不足不行吧,如果后天培养不行,那健壮的幼苗也会枯萎。我是刚入行,觉得现在还是要积累一些算法技巧,现在谈工程,谈架构没资格。
我认为世界上的优秀程序员,架构师,不会不懂算法吧。微软里面的天才程序员不会比Borland少吧。
能创造时代的大师,对整个行业的构架应该更牛吧

#  什么也不懂,最爱胡扯 发表于2005-12-07 12:42:00  IP: 219.82.45.*
唯物主义也不要看太多哦,马克思都已经死了,唯心主义也有用武之地,用户都是唯心的,他觉的爽就是爽,没什么理由。不管你叫
微软还是叫Borland,不管你叫windows还是 linux.更不会管你是不是开发这个程序的主程序员,更懒的知道你叫什么。
用windows的人都知道盖次,不是因为他是程序员而知道他,因为他是老板,是世界首富才认识他。^_^

#  也来插一句 发表于2005-12-07 12:46:00  IP: 10.9.90.*
没有这样评价的,脱离了具体的应用环境,不存在什么东西比另外一样更重要这个命题。

国内行业还只能说处在原始阶段,当然,在员工看来,一切都是老板的错,在老板看来,是市场环境的错,但至少有一条是可以肯定的,那就是大家都知道出错了,所以现在的大问题应该是如何去改正,去提高。

能够有一种相对宽松,能够自由竞争的环境,大量的优秀作品会涌现的,然后才会有行业性的积累,有大的进步。

#  source520 发表于2005-12-07 13:04:00  IP: 219.134.0.*
好,帮顶



--------签名档---------------------------

比肩国内顶尖源码下载站点 -> 源码我爱你

http://www.source520.com
http://www.source520.net

80G源码电子书免费免注册下载,大量精辟技术文档库随时更新
******************************************************************
附:为了站点持续发展,现有本站近年来收藏的大量大型商业源码低价出售,
详情请进入以下链接查看:
http://www.source520.com/building_delphi.htm

浏览商业代码请从如下URL进入查看实物:
1.商业源码库1: ftp://source520see3:browse@61.152.199.245/
2.商业源码库2: ftp://source520see2:browse@61.152.199.245/

#  呵呵 发表于2005-12-08 09:18:00  IP: 222.65.98.*
看了这么多,感觉大家说的都对!
其实,也是什么都重要!

#  不要再吵了 发表于2005-12-07 13:19:00  IP: 222.128.27.*
大家都不要吵了,也不希望再看到这种无聊的论题!

首先,我不是搞软件的,但我不愿看到大家在这里吵!大家有时间就去做一些有益的事情,好好地修炼一下自己的内功吧,我想大家应该平心静气地去讨论一些如何成长的问题,达到交流的目的!

中国的软件业要靠你们才能壮大成长,中国的程序员是一个极其强大的联盟,最好能多推出一些令我们国人振奋的国货精品软件,我们应该有我们的OS,应该有我们的平台,有我们的芯片,我们不是做不了,是我们被外国人吓怕了,是我们懒惰了,是我们不思进取了,众所周知,这是很危险的.所以说,在当代,中国的IT工程师都大有可为,为什么要花费这么大的时间在论坛上呢,这样的论坛也实在无聊了,唉!再也不来了,太吵了!

#  K++ 发表于2005-12-07 14:14:00  IP: 61.144.207.*
呵呵,,不管唯物还是唯心,用户我认为才是至少的,但同样,一个好用出名的产品,如果经得住市场,用户也会为它改变。。
相互相成。

#  了凡四训 发表于2005-12-07 14:24:00  IP: 221.8.61.*
物尽其用,按需分配,随弯就弯,能开工资,才是王道

#  source520 发表于2005-12-10 22:16:00  IP: 218.18.18.*
好,帮顶



--------签名档---------------------------

比肩国内顶尖源码下载站点 -> 源码我爱你

http://www.source520.com
http://www.source520.net

80G源码电子书免费免注册下载,大量精辟技术文档库随时更新
******************************************************************
附:为了站点持续发展,现有本站近年来收藏的大量大型商业源码低价出售,
详情请进入以下链接查看:
http://www.source520.com/building_delphi.htm

浏览商业代码请从如下URL进入查看实物:
1.商业源码库1: ftp://source520see3:browse@61.152.199.245/
2.商业源码库2: ftp://source520see2:browse@61.152.199.245/

#  TPH 发表于2005-12-11 11:37:00  IP: 211.148.127.*
算法是程序的灵魂。我从来不喜欢讨论所谓软件工程,是的,我更偏好个人习惯。轻视算法的人,我只好说,你目光短浅。迷信架构等等,我也不觉得有此必要,我讨厌这种无度的设计。其实很多时候,只是为了该死的市场罢了——假如讨论架构可以吸引更多人的眼光,或者一个大型的软件可以获得更好的收益,又或更好的控制市场。
一个程序员,对算法、效率莫不关心是悲哀的。一个精巧设计的软件可能未必具有最佳的可理解性,但是在很多时候却是不二之选。假如,你不能理解,——嗯,这只能说明你缺乏必要的训练。

#  深蓝二号 发表于2005-12-12 10:05:00  IP: 218.26.206.*
从长远看,我们不得不注重算法的了,但是从现实看还是工程重要,不过用辨证法说没有什么是对的!

#  疯子阿虹 发表于2005-12-13 18:09:00  IP: 61.152.122.*
晕,看了一些人的观点。我就觉得有一种奇怪的现象。

1。有些人连构架都不清楚,却在讨论。这是一种不好的现象,如果一件事情你不清楚,何从评论?

2。提到构架,讨论的应该都是有一定规模的项目,譬如源代码10万行以上。如果项目较小,没有构架可谈,又如何谈起?

3。构架不仅仅是提高系统的重用性,构架为什么和效率就矛盾了?如果有空可以看看POSA。构架的功效也包括提升系统效率。重视构架不等于完全放弃效率。只是在注重上不同。

4。有STL在,各种数据结构的算法都已经较优化了。我就不明白你们的算法还有什么复杂算法?就算是3D的,处理大量多边形的计算,一方面有GPU担着,另一方面优化的资料也非常多。

5。良好的构架还有另外一方面好处就是当人员离职流动的时候,良好的构架可以让新人更快的适应当前的模块代码,如果你曾经接手过不注重构架的模块的话,你就应该知道构架的重要性了。

6。最后,构架这两年在国内开始流行了。这是因为构架程序员往往比编码程序员职位高,挣的多,活还少。如果你不想当代码工人,如果你想多挣钱,那就抽时间看看构架再讨论这个问题吧。


-------------------------------------------------
to kook
我并没有认为服务器只有网络游戏服务器,不过以国内的技术来说,网络游戏服务器已经很有代表性了。难道这里的人都在做航天系统吗?

现在流行的服务器都是以集群形式存在的,一般来说,门服务器的负载往往很小,真正耗时的都是逻辑服务器,从门服务器上并一个逻辑服务器在一定程度上当然可以解决逻辑服务器的负载问题。



----------------------------
其实我也大量用过ASM/MMX优化程序,我也接手过为了效率而把ASM/C/C++混合在一起的模块。所以相对构架,我总结的就是,与其研究一些效率,还不如多看看面向对象,设计模式,面向模式开发。以提高自己的构架能力,提升自己的职位。毕竟,CPU在一秒钟可以做很多事情,用户多等待一秒也是可以忍受的,为什么不把熬夜优化这一秒钟CPU的时间来学点别的?(优化过代码的人应该往往清楚,有的时候优化一段代码往往只能提升一秒,如果你修改了一大段代码并且提升了一分钟时间,请不要沾沾自喜,因为那不能说你算法好,不能说你优化了,而是这段代码有问题,换一个程序员,一样可以做到。)


好累啊,有想骂我的恕我不奉陪了。

#  海牛猪猪 发表于2005-12-13 17:07:00  IP: 218.88.113.*
说这些?都不要吵了,其实都不重要,人最重要!哈哈

#  robinford 发表于2005-12-15 13:53:00  IP: 221.5.184.*
写了这么久的程序,我发现,做C++和DELPHI等桌面程序的程序员往往会比较看重效率,而做ASP,JSP程序的程序员往往不太看重效率,而比较看中架构.为什么?原因很简单,那是因为一般用C++,DELPHI等写的程序,比如游戏,服务器程序等对效率有很高的要求,而ASP,JSP等网站程序对效率的要求却往往不是那么高,他们要求的是快速的开发..其实,架构,效率都重要,关键只有一个,就是需求...在程序能够很好的得到实现的情况下,"多余的效率"可以说确实是多余的....对老板来说与其花很多时间去改善算法,提高效率...不如把这些钱拿去多买两台服务器来跑...但是,开发效率也并不是越快越好,对很多高要求的程序来说,比如3D图形设计,比如潜入式程序设计,比如服务器端程序,大量的使用面向对象技术和RAD来提高效率并不就是好方法..在这些要求高效率的开发里,很多时候你不得不对算法进行最大限度的优化,原因很简单,如果你的效率上不去,那你的程序就没有任何的实用价值...好说了这么多,不知道有人明白我的意思没?一句话总结,需求决定一切.

#  winterboy 发表于2005-12-28 20:08:00  IP: 211.67.20.*
看了这么多,一片茫然之中似乎又明白了什么,也许因为我是刚刚入门的人把

#  sd 发表于2006-01-25 13:33:00  IP: 131.107.0.*
架构保证了系统能够运行。算法保证了系统有效运行。

#  railgunman 发表于2007-03-01 11:50:43  IP: 222.212.97.*
2002年搂主还是站在一个程序员的角度来看问题。
现在搂主是站在一个系统设计师的角度来看问题。
从程序员的角度来看,2002年的看法是正确的。但是如果从程序员的角度来看软件架构的话,则很偏激。

Scott Chen 说的很有道理。

说到软件工程,在这里我有疑问了,向各位大侠请教:软件工程究竟是什么?只是简单管理软件工程吗?是否包含对整个软件的架构、运行机制、实现机制的管理呢?

#  BlueDog 发表于2007-03-13 00:52:49  IP: 58.45.218.*
在我看来软件有四个层次
1、能运行
2、能正确运行
3、能高效地正确运行
4、能优雅高效地正确运行
国内很多软件也就停留在第一阶段。其实原因也不止是程序员的
问题,有很多是社会问题。比如一个100万的项目,公司用于打点
各个关系客户总要用去30、40万吧,然后要留出20-30万的利润,
还有公司的正常开支、其它部门的费用,如果能给出10-20万用于
做开发就不错了。
其实脱离了真实环境来谈软件工程根本就没有意义,所以我们也就
大部分的时间总是在CODE和DEBUG,那里能有时间去做所谓的工程。

#  MuziSoft2005 发表于2008-04-07 22:03:42  IP: 117.81.128.*
架构不是功能的要求,却是工程的要求

原来爱民大哥这么早就开始研究这么重要的问题了,可敬啊

#  MuziSoft2005 发表于2008-04-07 22:08:13  IP: 117.81.128.*
架构不是功能的要求,却是工程的要求

原来爱民大哥这么早就开始研究这么重要的问题了,可敬啊
::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::