楼主: tang2049

歪说软件工程

[复制链接]
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
31#
 楼主| 发表于 2006-9-28 23:51 | 只看该作者
歪说软件工程27 - 德拉姆与黑洞

  话说云南省以马帮运输茶、盐、粮食的古道已有近千年的历史,马帮就像今日的汽车,在山路中将背上的货物运往各地。《德拉姆》是田壮壮的一部纪录片作品,记录云南滇西北怒江流域原住居民的生活现状,以及“最后的马帮”的古道之行,据说片名取自其中一头在路途中死去的马的名字。很难想象,人们还可以如此简单如此简朴地生活,那里可以没有互联网、没有计算机,甚至可以没有公路——正是因为还有地方没有公路,所以还有马帮的存在。

  马帮是还存在的一种现实的生活方式,而黑洞就完全是精神的产物。爱因斯坦提出广义相对论的第二年,即1916年,就在理论中发现了黑洞的存在,但直到1960年,科学家们才理解并接受了黑洞的存在。据天文观测,我们银河系的中心就有一颗超大质量的黑洞,它的质量是太阳质量的400万倍。今天,黑洞已经广为人知,并有许多人靠研究黑洞就可以生存。

  马帮和相对论都离普通人的生活十万八千里,但它们都存在着,你不能说哪个落后哪个先进。做软件的公司中,有许多小公司,它们甚至可以不知道软件工程为何物,几个人拉些项目做,活得上好;也有大公司,一个项目动不动就几百万几千万行代码,需要很多人的协作,它们努力研究并实施软件工程,以避免失败的惨痛。

  《德拉姆》中从云南丙中洛乡到西藏察瓦龙乡,只能沿怒江而上徒步而行,但公路已经在修,马帮的生活会随着公路的修通而完全改变。许多时候,我们都会并且可以忽视外界的变化,但是同时也无法觉察我们自己是如何变化的、或者过去是如何消失的。

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
32#
 楼主| 发表于 2006-9-28 23:51 | 只看该作者
歪说软件工程28 - 汪道涵

  话说汪道涵仙去,几乎所有媒体都报道了昨日各界人士为汪老送行。最早知道汪道涵是在当年高考时,因为要背的时事政治中有“汪辜会谈”的内容。

  在靠厦门有个叫“青屿岛”的地方,肉眼可见台湾方面立的“三民主义统一中国”字样,当然,青屿岛上也有“一国两制统一中国”的大字。老Y老家在福建,特别关心台海局势,心想要是哪天打起来,一炮轰过来,可能俺们家乡就没了,没法不关心。由于国家的战略筹划问题,福建以前几乎没什么工业,家乡人民要打工都得南下深圳、广州等地。

  正所谓“神仙打架,百姓遭殃”。在软件领域,微软为了与SUN竞争,搞了.NET,结果就是大量的公司产品战略都要跟着转移,有许多的资源要投入到其中;同时,大量的程序员也要开始学习,当然,这个不一定是“遭殃”。

  商业社会谁拥有的智慧资源多,谁就当神仙做规则制订者。其他公司要想摆脱被动,还是只有努力自已也当神仙,成为规则制订者。

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
33#
 楼主| 发表于 2006-9-28 23:52 | 只看该作者
歪说软件工程29 - 鱼与熊掌

  话说“鱼我所欲也,熊掌亦我所欲也,二者不可得兼,舍鱼而取熊掌者也。”

  在软件中使用或者不使用存储过程经常导致性能与结构的冲突,但其实并没有绝对的矛盾,是可能做到二者兼得的。

  下文摘抄Martin Fowler在《企业应用架构模式》中的一段话:

  “关于存储过程有一些争论。由于它们是与数据库处在同一个进程,避免了过程间调用的开销,因此它们经常是最快的方法。但是大多数存储过程环境没有为他们提供良好的结构机制,而且使用存储过程将迫使应用与特定数据库厂商绑定起来。

  正是由于模块化和可移植性的原因,很多人在开发业务逻辑时都尽量避免使用存储过程。我比较赞同这一观点——除非有很强的性能要求。当然,实际上这种情况也的确不少见。在这种情况下,我会将领域层中的方法换到存储过程来实现。这样做的原因仅仅是为了清除性能方面的问题,把它看作一个性能优化的步骤,而不是看作一项架构原则。

  在用或不用存储过程上,我并没有非常强烈的观点。而且,据我所知,应该也不存在非常强烈的理由。在任何情况下,我都喜欢使用相同的模式将数据库访问隔离起来,无论数据库访问是通过存储过程方式还是通过更常规的SQL方式。”

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
34#
 楼主| 发表于 2006-9-28 23:52 | 只看该作者
歪说软件工程30 - 同一首歌

  话说老Y有一段早上上班时,在负一楼停车场经常听到一个大楼物业公司员工的歌声,底层的混音和回响效果很好,轻脆的女声显得更是好听。

  20多年前,农村包产到户前,农民早上是整个生产队一起出工,晚上一起“下班”,“上班”时经常有合唱的声音。清晨,太阳刚刚升起,田野上的雾气还没有散开,生产队开始了一天的劳作,歌声已经打破田野的静谧……

  环境变化后快乐也会变化。一个公司随着自己的成长,所处的环境也会变化,公司的员工越来越多,显著的变化是公司的制度和流程可能会越来越多,公司想的是可以牺牲效率但要降低风险,而人的感觉就会不一样,原来只是人与人的互动,现在是人、制度、人,人可能的变化就是先是着急或不高兴、而后就按部就班。

  软件公司中软件开发只是公司运作的一个环节,公司的变化同样会导致开发人员的快乐的变化。工作的快乐可能不仅仅是软件工程研究的主题了。

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
35#
 楼主| 发表于 2006-9-28 23:52 | 只看该作者
歪说软件工程31 - 关于“首尔”

  2005年1月19日,汉城市长举行记者招待会,宣布将汉城的中文名称改为“首尔”,“汉城”一词永不再使用。韩国官方的解释是“首尔”同汉城的韩语发音最为接近,但民间有不同的理解,认为“汉城”的“汉”字让人联想到中国的汉朝。

  “汉城”这一称呼于1395年由朝鲜王朝的开国皇帝李成桂所定,并非中国人创造。至今这个名字在汉文化圈已使用了600多年,包括中国内地、港澳台地区、海外华侨,还有日本和新加坡等地的近15亿人口都已非常熟悉。汉城之所以成为汉城,其实并不与中国古代政治对周边国家的霸权相关,而是与中韩之间千年流传的文化渊源不可分割。当年以汉城为名的荣耀,既属于韩国,又属于中国。

  上个世纪,韩国就开始频繁发生排斥汉语的事件。二战后,韩国曾以法律规定,以韩国的表音字为专用文字,从1970年起韩国小学、中学教科书中的汉字都被取消。在1988年汉城奥运会之前,韩国政府曾下令取消所有牌匾上的汉字标记,以强调韩国的民族文化。直到1999年,金大中总统才下令部分解除对汉字使用的限制。

  韩国政府通过改名增强了民族自信心和自豪感,“首尔”不仅仅是一个称呼,它开始承载韩国人自己的文化,并标榜着韩国这个独立自主国家的骄傲存在。

  而韩国政府在软件领域的一些作为,同样值得中国人关注,其愚公移山般的精神,值得中国人以及全世界软件从业人员反思。

  赛迪网2004年3月7日报道,韩国政府宣布将大力推广开放源代码的Linux操作系统的应用,微软官员闻讯积极前往韩国首都与政府磋商。

  科技资讯网2005年6月22日报道,韩国政府正在向全国的1万所学校推广一种国产的开放源代码平台。这一名为“新教育信息系统”的项目利用了韩国开发的Linux操作系统版本,该版本已经被用于首都的190所学校中。

  硅谷动力2005年11月9日报道,韩国公平贸易委员会正就针对微软的两项指控展开调查,微软被指控在韩国滥用市场支配地位,将即时聊天软件和多媒体播放软件与其操作系统捆绑销售。此前微软曾于上月警告称,如果韩国展开针对该公司的反垄断调查,该公司将考虑从该国撤出Windows操作系统。紧随着微软威胁撤出韩国市场,Linspire公司总裁兼首席执行官Carmony同意该公司以500万美元价格出售该公司Linux操作系统以及基本的办公软件,允许韩国所有计算机安装这些产品。该公司官方网站名为“韩国如何保护国家安全同时节省2亿多美元资金”的信函透漏了更多的细节,信函中表示,计算机改装Linux操作系统之后,韩国将节省大约2.5亿美元资金,同时也将从微软垄断控制中解放出来。

  从文化母体的角度来说,中国要比微软领先几千年,也比微软强大N倍。韩国首都的改名已表明韩国已经(或要、或将)独立于文化母体而存在,或许韩国以后也能摆脱微软在其软件领域的垄断神话。

  回想2002世界杯,名不见经传的韩国队出人意外地冲入前八强,排名第五(中国排名31),韩国“红魔”铺天盖地排山倒海的气势,至今令人胆寒。

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
36#
 楼主| 发表于 2006-9-28 23:52 | 只看该作者
歪说软件工程32 - 老农与饭卡

  话说老Y一次出游到一个偏远的地方,与一位当地老农摆谈,他儿子在城市打工,他兴致勃勃地说着儿子的事情,比如干什么啊,工资多少啊,还说到儿子三餐都吃食堂,吃饭时晃一下卡就可以吃。

  我们都知道那种卡是射频卡,即非接触式集成电路卡,已经是一种很平常、很常用的识别卡或支付卡,不需要什么培训,谁都可以简单地使用,成本也低,几块钱。

  另一个故事。从前有个人问赵州禅师,什么是禅?赵州尝试说,我真是很想告诉你,但是我现在要去撒尿,想想吧,连撒尿这件事都要自己去做,何况是学禅呢?

  用射频卡不需要自己去做一个,而学禅却需要自己从头开始做。这个事实里面其实隐喻了商业社会的生活方式与东方文化中精神追求的区别。知识隐藏已经成为商业社会的一个潜规则,自己购买并使用的商品你是不需要知道它怎么做的以及如何做的,而且通常也是无法知道的,正是这种知识不对称,形成了许多商品的价值所在。一个射频卡,估计至少需要累积10个人年的研发资源才能做出来,而一个消费者却可以用很低的价格买到,但从另一方面来说,生产者也可以以更低的实际成本生产而卖给千千万万的消费者。

  如果你要学禅,尽管你也知道前面有千千万万的人学成并留下无数兆的信息,但你还得从头做起,而且穷尽一生也可能无法达到前人的境界,而且即使学成也无法真正能传授给别人。所以以自我体验为中心的东方文化人生追求很难被知识隐藏并被继承,这构成了中国几千年发展的基调,即无数人年自我陶醉地重复,只有累积而没什么发展,没有人能超越古代圣贤留下的境界。

  知识隐藏用另一个词就是封装,这正是面向对象的基本思想之一。所以封装是用OO思想写程序、以及在商业社会中生活都会到的潜规则。可以再来看看封装潜规则的两个基础:一个是信任、一个是博弈,这些讨论同样适用于使用别人的软件产品以及程序代码。

  信任的经常情况之一是公知公用,比如一种牙膏,很多人都用,你就也用,不会担心它有毒;第二种情况是第三方信任,即虽然我不知道厂商是否值得信任,但产品是经过我信任的第三方机构认证的;还有就是个体转嫁信任,比如我信任B、B用了C,我也就信任C;也有更多的情况通过自己的了解和对信息的把握来建立起信任。

  其实商业社会有更多的情况是以博弈、或先博弈后信任,而不是单纯靠信任为基础。即先知道某种情况能带给自己的好处,但无法很快地估计其潜在的风险、也没时间去通过了解来建立起信任,这时我们会去不准确地估计风险与收益,只要自己认为收益大于风险或自己能够承担风险,就能让情况发生,也有不管风险而让情况发生的,这些都是博弈行为,博弈换成说赌博不是很妥,赌博行为是博弈的一种。

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
37#
 楼主| 发表于 2006-9-28 23:53 | 只看该作者
歪说软件工程33 - 咖啡

  话说天下的咖啡林林总总,程序员的咖啡只有一种。

  有一种咖啡加酒。服务生端来咖啡后,往杯子上架一小勺,勺子上放上一块方糖,倒一小杯洋酒把糖浸透,然后把糖点燃,酒烧完后,才把糖放入咖啡中。

  有一种咖啡加冰淇淋。咖啡端来后只见冰淇淋不见咖啡,晃若一座高高的冰山把一个湖塞满,等尝尽所有的甜后,方能品到咖啡的苦。

  有一种咖啡叫Java。Java是SUN公司发明的一种计算机语言,现今已在电脑网络乃至家用电器中得到广泛应用。Java的名称来源于一个名为Java的小岛,即中国所谓爪洼国,该岛出产一种味道非常美妙的咖啡。发明Java的技术员,认为该计算机语言是非常好的东西,所以把他认为最好的名字给了她。

  下文摘自《软件工程Java语言实现》:“1991年,Sun Microsystems公司计划进入电子消费领域。首先,他们开发了一种个人数字助理(PDA,Personal Digital Assistent)。这是一种小型手持式计算机,与Apple Newton相似。该产品集成了蜂窝电话和传真功能。James Gosling一开始用C语言为PDA开发软件,但不久他意识到,C软件可能不太可靠和安全。因而,他只得设计了自己的语言,这种语言就是现在的Java。

  第1版PDA的销售情况令人失望,因此,Sun公司取消了PDA项目。取而代之,他们决定在另一种消费产品上使用他们的新语言,这一次是“交互式电视”。于是,Java再一次用于一个嵌入式实时系统。但该项目在完成前也被终止了。Sun公司现在面临的情况是拥有一种优秀的编程语言,但找不到用武之地。在经过一番绞尽脑汁的思索后,他们终于发现了,一种语言如果适用于PDA或交互式电视之类的电子消费产品,也一定同样适用于WWW(World Wide Web)软件设计。”

  《鱼》书摘

  -> “当我们死心塌地地热爱自己所做的工作时,我们才能享受每天有限的幸福,过得满足而又有意义。”

  -> 这有多重要?可以说无比重要。特别是对成年人来说。上班族醒着的时候中,有75%用于与工作相关的事情——准备上班、为工作奔波、为工作而殚精竭虑、下班后还要想方设法减轻工作压力等等。

  -> 如果我们在一生中为工作花了这么多时间,我们就应该享受它带来的乐趣和活力。可是,实际上并不是这样,大多数人把时间投入在工作上只是为了满足需要。“谢天谢地,终于又到了周末。”仍然是许多人的生活方式。

  -> “那太容易了。你围着这个市场走一圈,看看其他卖鱼的商店。这些人也许还不明白,他们就是你所讲的‘有害精神垃圾场’。他们的工作方式对我们的生意倒是很有利。我告诉过你,这个鱼市以前也曾经跟他们一样。后来,我们发现了一件令人吃惊的事实:你可以选择采用什么方式工作,即使你无法选择工作本身。这就是我们从世界上最著名的派克街鱼市场中得到的最宝贵的经验。我们可以选择自己对工作的态度。”

  -> 即便无法选择工作,但工作方式总是可以选择的。

  -> 她记起磁带里有这么几句:“我不相信公司是监狱,但有时我们选择工作态度的时候,我们把公司变成了监狱。我们自己创造了一座监狱,而围墙就是我们自己缺乏信心造成的。”

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
38#
 楼主| 发表于 2006-9-29 19:36 | 只看该作者
歪说软件工程34 - 耗片比

话说老Y一次列席一个饭局,席中有一个电视剧组的演员、导演、执行制片人,听他们摆谈,演员说:“导演对剧情的把握很到位,我们的耗片比可能在1:3左右”;执行制片人说:“我们简直是一天也不敢拖,许多演员的档期都排得很紧,这边还没完,那边已有一个剧组在等着了”。老Y是圈外人,现尝试用软件工程的视角来理解一把。

所谓“耗片比”,原是拍电影用的术语,即拍摄成功的镜头长度和消耗的胶片长度之比。拍电影的耗片比一般都比较高,都在1:10以上,即90分钟的电影拍摄胶片时间长度要在900分钟以上,拍电视剧对品质要求也稍低,以耗片比1:3计算,20集40分钟电视剧,拍摄素材长度在20×40×3=2400分钟,即40小时。按每天制作出1小时计算,则制作周期为40天。

可见,因为产量有清晰准确的标准,拍电视剧需要的周期是相对比较容易确定的。不像生产软件,产量通常用KLoc(千代码行)来计算,但最终产品的KLoc数却无法先准确地确定出来。再来看看拍电视剧中涉及的各种角色。

作家是架构师及设计师,产品通常是一部小说,而且小说写作时间一般没计算在拍电视剧之内。小说架构了电视剧的情节和人物,好的电视剧原作小说大都是一个人写的,现在也有很多团队写作的,不是搞创作,而是搞文字生产。

编剧是系统分析员兼设计师,产品是剧本。小说中的许多内容都是无法用视频加音频来表现的,编剧必须用适合拍摄的语言把小说重编一遍,一般不会改主要情节和核心人物。有时由于演员的变动等,编剧也得负责修改情节。小说中如果写道“潸然泪下”,编剧估计无需这么写:“3秒钟内流下了30滴泪珠”,知道如何实现这些基本情节应该是演员的基本素质。

执行制片人是项目经理,即要负责周期管理以及成本控制。除了负责人力资源调度,执行制片人也要干许多杂活,比如与当地村民协调找几头猪来当道具。电视剧开始拍摄前,根据剧本,一部连贯的电视剧会被拆成许许多多相对独立的场景,比如根据外景内景进行划分,可能会在一个外景地把所有在这里发生的场景都拍完,而且经常会多个小组在不同外景地同时在拍摄,后面发生的先拍摄是很正常的,所以任务调度得好整体制作周期就短。

演员是程序员,产品是视频、音频电子信息记录。除了主角,许多演员是可以不看完整剧本的,因为电视剧剧本通常要比小说长几倍甚至几十倍,编剧都是几个人同时开始编。做到程序员只管写自己的代码不管其它的是软件工程的梦想,但电视剧制作行业是早就实现了的。编剧知道什么样的文字能让观众产生什么样的反应,演员知道什么样的文字该用什么样的肢体和口头语言来表达,所以电视剧早已进入工业生产时代。

还有几个术语也挺有意思。一个是“杀青”,杀青与软件开发的发版不同,杀青仅仅是所有演员的工作都完了,进入后期制作,连发α版都不是;不知道搞电视剧是否需要专门的测试,但估计至少不会发试用版,用户看到的许多“穿帮”镜头,比如古装下露出牛仔裤,就是“BUG”罢。

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
39#
 楼主| 发表于 2006-9-29 19:37 | 只看该作者
歪说软件工程35 - 打土豪、分田地

话说中国历史上的农民战争很多,孙中山先生闹革命也喊“耕者有其田”,都没有成功,只有毛泽东成功了,他靠的两句话:“为共产主义事业而奋斗”、“打土豪、分田地”,后六个字最实在,看了都知道要干什么以及怎么干,不像孙中山的空有一句口号,所以农民伯伯都喜欢;但如果只有这六个字,知识分子就没搞头,所以要有前一句。

公司有清晰的长期不变的“愿景”很重要,软件产品有清晰的目标和定位也很重要。不成功的产品未必没有清晰的目标和定位,但成功的产品必定有清晰的目标和定位。

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
40#
 楼主| 发表于 2006-9-29 19:37 | 只看该作者
歪说软件工程36 - 两只青蛙

话说两只青蛙同住在一个水塘,夏天池里的水被炎阳晒干,两只蛙苦道“没水住不下去了”,鸟择林而栖,蛙择水而居,于是一起去找,“哈,前面有一口井”,站在井口上,看到深井里的水很足,一蛙道“我们跳进去吧,这里可供我们居住和吃食呢”,一蛙没有迟疑就走开了,“现在住进去当然很好,问题是进去后怎能够出来呢”。

一口井水,跳进入容易,出来可难。软件工程中的许多方面也可能面临这样的问题,比如开发语言选择、开发工具厂商选择、系统底层结构设计等等,虽然我们经常也可以选择,但该跳的时候还是得跳。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表