Archive for January, 2007

0

(转)lucene安装


网上有许多lucene的材料,中文材料大家看的都是车东的那篇(http://www.chedong.com/tech/.),而大家在网上讨论最多的是中文的全文检索,而对中文的全文检索最有影响力的文章,还是车东写的那篇weblucene(http://www.chedong.com/tech/weblucene.),但那些都是lucene1.2版本的事,现在不同了,lucene1.3-final据称完全支持中文的全文检索了。
因为在lucene1.3-final.zip包中的changes.txt中的第五项描述如下:
5. Fix StandardTokenizer’s handling of CJK characters (Chinese,
 Japanese and Korean ideograms). Previously contiguous sequences
 were combined in a single token, which is not very useful. Now
 each ideogram generates a separate token, which is more useful.
这说明lucene1.3-final可以检索中日韩等表意文字了。

测试一下:
测试环境: 2000 pro,jdk1.3.1或以上版本
1、下载lucene-1.3-final.zip。

2、解压lucene-1.3-final.zip,并将其中的lucene-1.3-final.jar和lucene-demos-1.3-final.jar加入到系统的classpath中。

3、建一个目录,并将一些html或txt文件(文件内容要中文的!)拷入到这个目录中,作为全文检索的材料。如:建一个目录d:\lucenetest\index,在其中拷入一些中文内容的文件,其中也可以有多级子目录的。
OK,环境准备好了,可以试验了!

4、进入dos模式,输入命令: org.apache.lucene.demo.IndexFiles d:\lucenetest\index
如:c:\>java org.apache.lucene.demo.IndexFiles d:\lucenetest\index 回车,这时会索引d:\lucenetest\index目录下的所有文件,包括子目录中的文件,并将索引文件写入:c:\index目录中(自动创建的,根据你的dos符起始路径,将在其下建index目录)。
好,索引建完了,下面试验检索。

5、输入命令:java org.apache.lucene.demo.SearchFiles
如:c:\>java org.apache.lucene.demo.SearchFiles 回车
Query:在这里输入检索内容,如:“建议最好自己先做一下语法检查”,这么长:)
成功了,结果出来了:
Searching for: “建 议 最 好 自 己 先 做 一 下 语 法 检 查”
1 total matching documents
0. d:\lucenetest\index\学习Lucene的一点心得.txt
可以看出lucene-1.3-final完全支持中文的全文检索了,使用的是单字切分!!

0

为lucene加入简单中文分词


看到很多人做lucene的应用时候都要面临中文分词怎么加的问题,下面介绍一个简单的中文词库,这个词库附带相应的算法,数据结构学过的人看懂没什么问题,只要简单的构造一个对象,就可以分词了,对于不是太大的应用来说,还是相当可行的,点击下载
      该分词库使用很简单,先初试化该类
      ChineseSegmenter seg = ChineseSegmenter.getGBSegmenter();
      然后调用seg.segmentLine(“要分词的中文段”, ” “)//第二个参数为分词之间以什么间隔
      譬如
    输出为儿童 节日 儿童节   
    
     下面简要说以下如何加到搜索代码里,
      建立索引的代码引入的analysis分词法为 WhitespaceAnalyzer
      import org.apache.lucene.analysis.WhitespaceAnalyzer;

  IndexWriter writer = new IndexWriter(Directory, new WhitespaceAnalyzer(),true);     public void AddDocument(String Title , String Content , ..)
    {
        Document doc 
= new Document();
        
        ChineseSegmenter cs
= ChineseSegmenter.getGBSegmenter();    //初始化该类
        
            doc.add(Field.Text(
content, cs.segmentLine(Content,  ))); // 将分好的词写进索引 
    
            doc.add(Field.Text(
title, cs.segmentLine(Title,  )));        try
        {
            writer.addDocument(doc);
        }
        
catch(IOException e)
        {
            System.
out.println(wrong);
            e.printStackTrace();
        }
    }

        上面建立索引时候为把文章的标题和内容进行断词然后存入了索引, 搜索的时候同样用WhitespaceAnalyzer,
 然后把结果hit中的结果合并就可以了.

 public static void main(String[] args) throws Exception {      ChineseSegmenter seg = ChineseSegmenter.getGBSegmenter();
      System.
out.println(seg.segmentLine(儿童节日 ));
    
   }

0

世界军人搏击赛


今天老大在群里发的链接,挺不错。

0

[转]与豆瓣网杨勃聊天(续)


杨勃:豆瓣的小组,也是长尾分布。

任何人可以随时建,现在有2万多小组。第一个组有1万多人,最后一个21420组,只有1个人。我们看看中间的10710组,有3个人。再往上看第5000组,11人,仍然非常小。小组没有限制,人人可以建。没有门槛,不耗费资源,非常容易出现长尾分布。
其实,我们很早就提长尾理论,豆瓣刚出来的时候,就考虑过这个问题。比如15分钟名组(随机挑选小组呈现给用户),如果每个组权重一样,随机挑选的话,选出来的大多数是一到两个人的小组,所以我们要给每个组一个权重。人越多,给它的权重就越高,当时我们就是按帕累托分布公式来给每个组一个权重。当然,人少的组,也有可能挑选出来。

黄:为什么美国没有豆瓣这种模式?

杨:没有一个网站,它的模式是完全一样的。我们从其他网站学了很多功能,把这些元素都放到豆瓣里面了。推荐、用户评论,亚马逊做得非常好。这是从他们来的。很多Web2.0的元素,如标签的采用,最早是delicious,flickr。还有比价。小组实际上是bbs的延伸吧。最近的功能,我上,其实是一个rss阅读器,像bloglines那样。
豆瓣大的模式,是没有可以参考的。而且豆瓣模式,在美国是无效的。我们试过。因为亚马逊做太好了。网站设计,要考虑特定的用户群需求、他们的使用习惯。你处在什么样的商业生态环境中,别的网站多大规模,他们在做什么样的事情。这个决定了你能做什么。在美国,这个空间比较小。
有几个跟豆瓣类似的网站,现在规模都不大。
包括douban的英文版也做不起来。在中国,如果有一个亚马逊这样强大、垄断的书店,我们就不可能从书开始做了。

黄:这个模式能做别的吗?

杨:不是所有的产品都适合。其他商品,可能就有问题。有些产品没有长尾。没有那么大量,比如汽车、,可能有几百种,不太可能。

黄:而且这些产品的生命周期也短。

杨:生命周期短的,也不一定就不行。我们正在做“我上”,就是你看的Blog。blog的生命就很短。一篇文章就一两天的生命。就算是keso的blog,你看看留言,也就两三天的留言,这是一个分享沟通的渠道,生命周期很短。

黄:不过,我会通过搜索来看过去的blog,比如看看keso过去对某个东西的发言。

杨:就发现的价值来讲,blog也适应长尾。keso、王小峰就是头,无数网站都是尾巴。所以,我们现在做blog,也是有价值的。能够帮你找出更好的内容。其实,blog跟书一模一样。

黄:我发现engadget很有意思,这是一个博客群,group 。一群人就某个领域集中写博,跟杂志是一样的。

杨:这可以说是事前过滤器。engadget定位于一个人群,就是geek。当然,可能有喜欢音乐、电影、吃、时尚的人群,你是不是都可以做个类似engadget的东西呢?
黄:还是过去的媒体模式,编辑主导吧。
杨:是不是可以细化到某个群体。可以用不依靠编辑的方式做呢?这比较有乐趣。
engadget只能满足一方面的兴趣,donews我去看看,但时间不长,只是一个浏览者,不是参与者。它确实有价值,对参与者之外群体有价值。
但很多人有好几方面的需求,我每天还去苹果小道消息网站,我是苹果fans。可能有些人还去体育,好几个兴趣。人的兴趣越来越多元化。杂志也是如此,有专门的按领域划分的,如财经、it,也有男人杂志,可能里面什么都有,生活啊、电影啊、engadget啊。
所以,可以不是按话题,而是按人群来分的。有两种组织方式。第二种来讲,新浪这种大门户就这样。

黄:传统媒体都很气氛啊。内容都被新浪们廉价拿走了。但门户新闻的确有它的优势,那就是快捷。
杨:在美国,其实,网络媒体产生内容的能力还是比传统媒体差。而中国博客圈子产生内容的能力还是很强的。中国传统媒体的生产能力比较弱。你看,电视台也跟在网络后面,甚至把flash放到电视上。

黄:传播速度差异吧。
杨:不光是这个。中国传统媒体的素养、创造力,和美国比的话,很弱。
黄:那是因为它竞争激烈,而中国的媒体受控制,当然能力弱。
杨:所以格局不一样。在中国,blog还是很强,颠覆性更大。在国外,网络只是传统媒体的补充。

黄:我感觉,整个内容行业都面临危机。一方面,到处免费转载、下载,没有版权保护;另一方面,google的广告网络,把媒体-广告这一商业模式釜底抽薪啊。你看,今年有多少平媒的人去了网络。

杨:我是以过滤器角度来考虑的。过滤器有几种,一是传统媒体:通过很多编辑。每天世界上发生很多事情,媒体通过编辑,找出有意义的,针对不同人群,给出有限的新闻。传统媒体如此,新浪模式也是。几百人编辑队伍过滤。这种方式,对用户来讲,大家看的是一样的,不是个人定制的。需要浏览,可能会看到很多自己不感兴趣的东西。浏览一大堆,挑出自己感兴趣的。可能会错过,而且浪费时间。
还有一种,是google,通过搜索。当你知道你要找什么东西,这种搜索会很有效。《长尾》很好,但如果我没听说过,我是不可能到google去搜索的。他能过滤,但起不到发现的作用。

黄:我来补充,还有第三种,在新浪、搜狐这些门户,除了编辑分类,还有一种:24小时新闻排行。这又是一种推荐,也是用户选择。
杨:但本质上是一样。排行榜10条,这也仍然是筛选出来的,所有人看到的是一样的。和digg一样,仍然属于传统媒体,他不是通过编辑,而是通过几千、几百人的投票。但还不是针对某个用户具体的口味的。
而亚马逊的推荐,它不是搜索,又不是排行榜,是个人化的。不限于书。

黄:delicious有没有这种筛选?
杨:它是收藏,你可以订阅其他人的收藏。我近年来一直订阅一个人的收藏,他在美国,也不有名。我忘了删掉他,但很好玩。最近这个人在买电脑,他收藏里一堆电脑网站,最近他开发一个东西,一堆相关网站,最近他来中国了嘛,在收藏中国的东西。我就通过订阅他的书签,
知道这个人在干吗,哈哈。后来懒得删掉他的。

……
杨:豆瓣也在尝试做一些广告。其实,读书的人还是不怎么上网。《读书》《万象》上的广告,能够抓住一些意见领袖,口碑传播。我们
在新浪做广告,但效果很差。
我们专门增加一台服务器。在新浪读书做了一个广告,花钱比我们在《读书》、《万象》上的都多,但效果很差。

转自:http://www.mindmeters.com/showlog.asp?log_id=4425

黄:豆瓣的“我上”blog这个功能可能会做个什么样子?
杨:其实,这是一个rss 阅读器,还是工具性的。我们还是比较关心,怎么发现。核心能力是发现,发现有意思的blog,文章。
豆瓣的定位,核心是发现,长尾理论所谓的事后过滤器。并不是真的发现一个不存在的东西,所有都在。从个人用户而言,是发现,而从海量信息而言,是过滤掉一大堆东西。过滤出几个合适你的。
我以前不知道的。它一直在,需要联系起来,这就是我们的作用。Google搜索也是这个作用,而现在这种社会性的过滤,智能会更强。给用户的感受。

0

目前主流开发技术的分析和总结


转至: www.csdn.net

主流的程序设计语言:C++、Delphi(ObjectPascal)、、C#

  桌面应用程序框架:MFC、VCL、QT、JavaAWT\SWING、.Net

  企业应用程序框架:WindowsDNA(ASP、COM、COM+)、J2EE、.NetFramework

  开发工具:VisualBasic、Delphi、VisualC++、C++Builder、VisualC#
*程序设计语言:C++\Delphi(本来应该是ObjectPascal,但为了简单,我就语言和工具混为一谈吧)\Java\C#(虽然他刚刚推出,但因为微软为之倾注了大量心血,一定会成为一种重要的开发语言)

   *桌面应用程序框架:MFC\VCL

   *企业应用程序框架:WindowsDNA\J2EE\.Net

   *COM技术:我单独提出这项技术,是因为它无法简单的被视为语言、桌面应用程序框架或企业应用程序框架,它与这些都有关系。

  2.1 程序设计语言

  2.1.1 C++语言的演进

   最初要从二进制代码和汇编说起,但那太遥远了。我们就从面向过程的语言说起吧(包括Basic\C\Fortran\Pascal)。这种面向过程的高 级语言终于把计算机带入了寻常的应用领域。其中的C语言因为它的简单和灵活造就了Unix和Windows这样的伟大的软件。

  面向对象 的语言是计算机语言的一个合乎逻辑的进化,因为在没有过多的影响效率、简单性的前提下提供了一种更好的组织数据的方法,可使程序更容易理解,更容易管理 ——这一点可能会引出不同意见,但事实胜于雄辩,C++终于让C语言的领地越来越小,当今还活着的计算机语言或多或少的都具备面向对象的特征,所以这一点 并不会引起太多困惑。C++的成功很大程度要归因于C,C++成为它今天的样子是合乎逻辑的产物。因为在面向过程的时代,C几乎已经统一天下了。今天著名 的语言象Java\C#都从C借鉴了很多东西,C#本来的意思就是C++++。其实C++曾经很有理由统一面向对象程序设计语言的天下来着,但可惜的是, C++太复杂了。即使是一个熟练的程序员,要你很清楚的解释一些问题你也会很头痛。举几个还不是那么复杂的例子来说:

  对=的重载\成员转换函数\拷贝构造函数\转化构造函数之间有什么区别和联系呢?

  定义一个类成员函数private:virtualvoidMemFun()=0;是什么意义呢?

  int(*(*x(int))[4])(double);是什么意思?

   还有其他的特征,比如说可以用来制造一种新语言的typedef和宏(虽然宏不是C++的一部分,但它与C++的关系实在太密切了),让你一不小心就摔 跤的内存问题(只要new和delete就可以了吗?有没有考虑一个对象存放在容器中的情况?)……诸如此类,C++是如此的复杂以至于要学会它就需要很 长的时间,而且你会发现即使你用C++已经好几年了,你还会发现经常有新东西可学。你想解决一个应用领域的问题——比如说从数据库里面查询数据、更改数据 那样的问题,可是你却需要首先为C++头痛一阵子才可以,是的,你精通C++,你可以很容易的回答我的问题,可是你有没有想过你付出了多大的代价呢?我不 是想过分的谴责C++,我本人喜欢C++,我甚至建议一个认真的开发普通的应用系统的程序员也去学习一下C++,C++中的一些特性,比如说指针运算\模 板\STL几乎让人爱不释手,宏可以用几个字符代替很多代码,对系统级的程序员来说,C++的地位是不可替代的,Java的虚拟机就是C++写的。C++ 还将继续存在而且有旺盛的生命力。
2.1.2 Java和C#

  Java和C#相对于C++的不同最大的有两点:第一点是他们运 行在一个虚拟环境之中,第二点是语法简单。对于开发人员而言,在语法和语言机制的角度可以把Java和C#视为同一种语言。C#更多的是个政治的产物而不 是技术产物。如果不是Sun为难微软的话,我想微软不会费尽心力推出一个和Java差不多的C++++,记得Visual J++吗,记得WFC吗?看看那些东西就会知道微软为Java曾经倾注了多少心血。而且从更广泛的角度来说,两者也是非常相似的——C#和Java面对的 是同样的问题,面向应用领域的问题:事务处理、远程访问、Webservice、Web页面发布、图形界面。那么在这一段中,我暂且用Java这个名字指 代Java和C#两种语言——尽管两者在细节上确实有区别。Java是适合解决应用领域的问题的语言。最大的原因Java对于使用者来说非常简单。想想你 学会并且能够使用Java需要多长时间,学会并且能够使用C++要多长时间。由于Java很大程度上屏蔽了内存管理问题,而且没有那么多为了微小的性能提 升定义的特殊的内容(比如说,在Java里面没有virtual这个关键字,Java也不允许你直接在栈上创建对象,Java明确的区分bool和整型变 量),他让你尽量一致的方式操作所有的东西,除了基本数据类型,所有的东西都是对象,你必须通过引用来操作他们;除了这些之外,Java还提供了丰富的类 库帮助你解决应用问题——因为它是面向应用的语言,它为你提供了多线程标准、JDBC标准、GUI标准,而这些标准在C++中是不存在的,因为C++并不 是直接面向解决应用问题的用户,有人试图在C++中加入这些内容,但并不成功,因为C++本身太复杂了,用这种复杂的语言来实现这种复杂的应用程序框架本 身就是一件艰难的事情,稍后我们会提到这种尝试——COM技术。渐渐的,人们不会再用C++开发应用领域的软件,象MFC\QT\COM这一类的东西最终 也将退出历史舞台。

  2.1.3 Delphi

  Delphi是从用C++开发应用系统转向用Java开发应用系统的一 个中间产物。它比C++简单,简单的几乎象Java一样,因为它的简单,定义和使用丰富的类库成为可能,而且Delphi也这么做了,结果就是VCL和其 他的组件库。而另一方面,它又比运行于虚拟环境的Java效率要高一些,这样在简单性和效率的平衡之中,Delphi找到了自己的生存空间。而且预计在未 来的一段时间之内,这个生存空间将仍然是存在的。可以明显的看出,微软放弃了这个领域,他专注于两方面:系统语言C++和未来的Java(其实是. Net)。也许这对于Borland来说,是一件很幸运的事情。如果我能够给Borland提一些建议的话,那就是不要把Delphi弄得越来越复杂,如 果那样,就是把自己的用户赶到了C++或Java的领地。在虚拟机没有最终占领所有的应用程序开发领域之前,Delphi和Delphi的用户仍然会生存 得很好。

  2.2桌面应用程序框架

  目前真正成功的桌面应用程序框架只有两个,一个是MFC,一个是VCL,还有一些其他的,但事实上并未进入应用领域。遗憾的是我对两个桌面应用程序框架都不精通。但这不妨碍我对他做出正确的评价。

  2.2.1MFC

   MFC(还有曾经的OWL)是SDK编程的正常演化的结果,就象是C++是C的演化结果一样。MFC本身是一件了不起但不那么成功的作品,而且它过时 了。这就是我的结论。MFC凝聚了很多天才的智慧——当然,OWL和VCL也一样,侯捷的《深入浅出MFC》把这些智慧摆在了我们的面前。但是这件东西用 起来估计不会有人觉得很舒服,如果你一直在用Java、VB或者Delphi,再回过头来用MFC,不舒服的感觉会更加强烈。我不能够解释MFC为什么没 有能够最终发展成和VCL一样简单好用的桌面程序框架,也许是微软没精力或者没动力,总之MFC就是那个样子了,而且也不会再有发展,它已经被抛弃了。我 有时候想,也许基于C++这种复杂的语言开发MFC这样的东西本身就是错误的——可以开发这样的一个框架,但不应当要求使用它的人熟悉了整个框架之后才能 够使用这个系统,但很显然,如果你不了解MFC的内部机制,是不太可能把它用好的,我不能解释清楚为什么会出现这种现象。

  2.2.2VCL

   相比之下VCL要成功的得多。我相信很多使用VCL的人可能没有像MFC的用户研究MFC那样费劲的研究过VCL的内部机制。但这不妨碍他们开发出好用 好看的应用程序,这就足够了,还有什么好说的呢?VCL给你提供了一种简单一致的机制,让你可以写出复杂的应用程序。在李维的Borland故事那篇文章 中曾经说过,在Borland C++ 3.1推出之后Borland就有人提出开发类似C++ Builder一类的软件,后来竟未成行。是啊,如果C++ Builder是在那个时候出现的,今天的软件开发领域将会是怎么样的世界呢?真的不能想象。也许再过一段时间,这些都将不再重要。因为新生的语言如 Java和C#都提供了类似于VCL的桌面应用程序框架。那个时候,加上Java和C#本身的简单性,如果他们的速度有足够块,连Delphi这种语言也 要消失了,还有什么好争论的呢?只是对于今天的桌面程序开发人员来说,VCL确实是最好的选择。
2.3 企业应用程序框架

  2.3.1 DNA

   Windows DNA的起源无从探究了。随着.Net的推出,事实上Windows DNA将成为历史的陈迹。Windows DNA虽然是几乎所有的企业应用程序开发人员都知道的一个名词,但我相信Windows DNA事实上应用的最广泛的是ASP而不是COM+。真正的COM开发有多少人真正的掌握了呢,更不要提COM+(我有必要解释一下:COM+是COM的 执行环境,它提供了一系列如事务处理、安全等基础服务,让应用程序开发人员尽量少在基础架构设计上花精力)——当然我这里指的COM开发不是指VB下的 COM开发,所以要这么说,是因为我觉得如果不能理解用C++进行COM开发,也就不能真正的理解COM技术。如果以一种技术没有被广泛理解和应用作为失 败的标志,那么Windows DNA实际上是失败了,但这不是它本身的错,而是基于C++的COM技术的失败造成的。多层应用、系统开发角色分离的概念依然没有过时。
 2.3.2 J2EE

   J2EE是第一套成功的企业应用程序开发框架。因为它把事务处理、远程访问、安全这些概念带入了寻常百姓家。这种成功我认为要归因于Java的简单性。 Java的简单,对于J2EE容器供应商来说一样重要。开发一个基于Java的应用服务器要比基于C++的更容易。而且由于Java的简单性,应用系统开 发者出错的机会也会少一些,不会像C++的开发者那样受到那么多挫折。开发基于Java的企业应用系统的周期会更短,这恐怕是不容争辩的事实。不论如何, 是J2EE让事务处理、远程访问、安全这些原来几乎都是用在金融系统中的概念也被一般的企业用户使用并从中获得利益。

  2.3.3 .NET

   .Net有什么好说的呢?其实,它不过是微软的J2EE。事务处理、安全、远程访问,这些概念在.Net中都找得到。更有力的说明是,微软也利用了. Net实现了一个PetStore。所以,.Net与J2EE几乎是可以完全对等的。但微软确实是一家值得尊敬的公司——我指从技术上,象Web form这种东西,我相信很多Web应用开发者都梦想过甚至自己实现过,但Sun却一直无动于衷,而且似乎Borland也没有为此作过太多努力,好像有 过类似的东西,但肯定是不怎么成功——Borland已经很让人敬佩了,我们也许无法要求太多。
2.4 COM技术

  COM应当 是个更广泛的词汇,其实我觉得Axtive X、OLE、Auto mation、COM+都应当提及,因为如果你不理解COM,上面的东西你是无法理解的。而且,我只是想说明COM是一种即将消亡的技术,仅仅说说COM 的复杂性和他的问题就够了,所以不会提及那些东西。为什么会出现COM技术?COM的根本目标是实现代码的对象化的二进制重用,进而实现软件的组件化、软 件开发工作的分工。这要求他做到两点:第一,能够跨越不同的语言,第二,要跨越同一种语言的不同编译器。COM技术为这个目标付出了沉重的代价,尤其是为 了跨越不同的编译器,以至于无论对于使用者而言还是开发者而言,他都是一个痛苦的技术。但幸运的事,这一切终归要结束了。

  让我们从这个 目的出发看看COM为什么会成为它现在的样子。其实COM不是什么新玩意,最初的DLL就是重用二进制代码的技术。DLL在C的年代可能还不错,但到了C ++的年代就不行了。原因在于如果你在.h文件中改变了类定义(增加或者减少了成员变量),代码库用户的代码必须重新编译才可以,否则用户的代码会按你的 旧类的结构为你的新类分配内存,这将产生什么后果可想而知。这就是为什么通过接口继承和通过接口操作对象成为COM的强制规范的原因,能够通过对象的方式 组织代码是COM的重要努力。那么著名的IUnknown接口又是怎么回事呢?这是为了让使用不同编译器的C++开发人员能够共享劳动成果。

 

   首先看QueryInterface,因为COM是基于接口的,那么一个类可能实现了几个接口,而对于用户来说,你又只能通过操作接口来操作类,这样你 必须把类造型成某个特定的接口,使用Dynamic_cast吗?不行,因为这是编译器相关的,那么,就只好把它放在类的实现代码中了,这就是 QueryInterface的由来。至于AddRef和Release,他们产生的第一个原因是delete这个操作要求一个类具有虚析构函数(否则的 话,他的父类的析构函数将不会被调用),但不幸的是不同的编译器中析构函数在vtbl中的位置并不相同,这就是说你不能让用户直接调用delete,那么 你的COM对象必须提供自己删除自己的方法;另外的原因在于一个COM对象可能作为几个接口在被用户同时使用,如果用户粗暴的删掉了某个接口,那么其他的 接口也就不能用了,这样,只好要求用户在想用一个接口的时候通过AddRef通知COM对象“我要使用你了,你多了一个用户”,而在不用之后要调用 Release告诉COM对象“我不用你了,你少了一个用户”,如果COM对象发现自己没有用户了,它就把自己删掉。

  再看看诡异的 HRESULT,这是跨语言和跨编译器的代价。其实,异常处理是物竞天择的结果——连一直用效率作标榜的C++都肯牺牲效率来实现这个try- catch,可见它的意义,但COM为了照顾那些低级的语言居然抛弃了这个特征——产生的结果就是HRESULT。我们可以看看他是多么愚蠢的东西。首 先,我们要通过一个整数来传递错误信息,通过IErrorInfo来查找真正的错误描述,本来在现代语言中一个try-catch可以解决的问题,现在我 们却需要让用户和开发者都走很多路才能解决,你怎么评价这个结果?其次,由于这个返回计算结果的位置被占用了,我们不得不用怪异的out参数来返回结果。 想想一个简单的int add(intop1,intop2)在COM中竟然要变成HRESULT add(intop1,intop2,int* result),我不知道你对此作何感想。而且由于COM的方法无法返回一个对象而只能返回一个指针,为了完成一个简单的std::string GetName()这一类的操作,你要费多少周折——你需要先分配一块内存空间,然后在COM实现中把一个字符串拷贝到这个空间,用完了你要删掉这个空 间,不知道你是否觉得这种工作很幸福,反正我觉得很痛苦。还有COM为了照顾那些解释性的语言,又加入了Automation技术,你有没有为此觉得痛 苦?本来一个简单的方法调用,现在却需要传给你一个标志变量,然后让你根据这个标志变量去执行相应的操作。(这一点我现在仍然不明白,为什么解释性的语言 需要通过这个方式来执行一个方法)。“我受够了,我觉得头痛”,你会说,是啊,我想所有的人都受够了,所有这些因素实际上是把COM技术变成了一头让人无 法驾驭的怪兽。

  人对复杂事物的掌控能力终究是有限的,C++本身已经够复杂了,COM的复杂性已经超出了我们大部分人的控制能力,你需 要忍受种种痛苦得到的东西与你付出的代价相比是不是太不值得了?我们学习是为了解决问题,而现在我们却需要为了学习这件事情本身耗费太多的精力。这些痛苦 的东西太多了,我在这里说到的,其实只是一小部分而已。计算机技术是为人类服务的,而不是少数人的游戏(我想COM技术可能是他的设计者和一部分技术作者 的游戏),难道我们愿意成为计算机的奴隶吗?通过一种过于复杂的技术抛弃所有的人其实等于被所有的人抛弃,这么多年中选择J2EE的人我相信不乏高手,你 是不是因为COM的过于复杂才选择J2EE的?因为它可以用简单的途径实现差不多的目标——软件的“二进制”重用、组件化、专业分工(容器开发商和应用开 发商的分工)。事实上,你是被微软所抛弃的,同时,你也抛弃了微软。

  现在让我们回来吧,我把你带进了COM的迷宫,现在让我把你领回 来。再让我们看看COM到底想实现什么目标,其实很简单,不过是代码的二进制重用,也就是说你不必给别人源代码,而且你的组件可以象计算机硬件那样“即插 即用”。我们回过头来看看Java,其实,这种二进制重用的困难是C++所带来的(这不是C++本身的错,而是静态编译的错),当Java出现的时候,很 多问题已经不存在了。你不需要一个头文件,因为Java的字节码是自解释的,它说明了自己是什么样子的,可以做什么事情。不像C++那样需要一个头文件来 解释这些事情;也不需要事先了解对象的内存结构,因为内存是在运行的时候才分配的。如果我们现在再回过头来解决COM要解决的问题,你会怎么做呢?首先你 会不再选择C++这种语言来实现代码的“二进制”重用,其次,你会把所有的语言编译成同样的“二进制”代码(实际上,应当说是字节码),这显然是更聪明的 做法,从前COM试图在源代码的级别抹平二进制层次的差异,这实际上是让人在做本来应当由机器做的事情,很愚蠢是吗?但他们一直做了那么多年,而且把这个 痛苦带给了整个计算机世界——因为他们掌握着事实的标准,为了用户,为了利润,为了能够在Windows上运行,尽管你知道你在做着一个很不聪明的事情, 但你还是做了。

  COM技术为了照顾VB这个小兄弟和实现统一二进制世界的野心,实在浪费了太多的精力。首先,落后的东西的消亡是必然 的,就象C、Pascal在应用领域的消亡一样,Basic一点一点的改良运动是不符合历史潮流的做法,先进的东西和落后的东西在一起,要么先进的东西被 落后的东西拖住后腿,要么是同化落后的东西,显然我们更愿意看见后者,现在Basic终于被现代的计算机语言同化了。其次,统一二进制世界好像不是那么简 单的事情,而且也没什么必要,微软的COM技术奋战了10年,现在也只有他自己和Borland支持,.Net终于放弃了这个野心。这一切终于要结束了。

过去J2EE高歌猛进地占领着应用开发的领地,COM在这种进攻面前多少显得苍白无力。现在微软终于也有了可以和J2EE一较长短的.NET,对于开发 人员来讲,基于字节码的组件的二进制重用现在是天经地义的事情;你不用再为了能够以类方式发布组件做那么多乱七八糟的事情,因为现在所有的东西本来就是类 了;实现软件开发的分工也很自然,你是专业人员,就用C#吧,你是应用开发人员,你喜欢用VB.Net,你就用吧,反正你们写的东西最终都被翻译成了一样 的语言(其实我觉得这一点意义不大,因为一些不那么好用的语言被淘汰是正常的事情,C风格成为程序设计语言的主流风格,肯定是有它的原因的,语言的统一其 实是大势所趋,就象中国人民都要说普通话一样,我觉得Java不支持多语言算不上缺点——本来就是一种很好看很好用的语言了,为什么要把简单问题复杂化 呢?)。COM不会在短期内死去,因为我估计微软还不会马上用C#开发Office和Windows的图形界面部分,但我相信COM技术退出历史舞台的日 子已经不远了,作为一般的开发人员,忘了这段不愉快的历史吧——你将不会在你的世界里直接和COM打交道。若干年以后,我想COM也许会成为一场笑话,用 来讽刺那种野心过大、钻牛角尖的愚蠢的聪明人。

0

优秀团队建设–美国式团队(ppt)


美国式团队

一、团队精神

团队精神反映一个人的素质、一个人的能力,一个人与别人合作的精神和能力。一个团队是个有机的整体,作为个人,只有完全融入到这个有机整体之中,才能最大限度地体现自己的价值。

 

团队是由一群有缺点的人构成的,没有哪一个个体是完美的,只有总体搭配起来,才能够发挥出团队的最大力量;各种不同人才的搭配,才会实现一个完美的团队。所以,每一个人都应该明确在团队当中应该扮演一个什么样的角色,在这个团队中究竟能够起到多大的作用。

所有团队成员都必须记住:世上没有完美的个体,只有完美的团队。惟有一个建立健全的团队,才能带给个体最大的发展机会,使个体始终立于不败之地。

 

企业要使自身处于最佳发展状态,团队精神是必不可少的,团队精神是企业发展的灵魂。一个群体不能形成团队,就是一盘散沙;一个团队没有共同的价值观,就不会统一意志、统一行动,当然就不会有战斗力。说到底,团队精神是一个企业的灵魂,也是一个人能否被重用的重要标准!

 

    团队精神是指团队的成员为了团队的利益和目标而相互协作、尽心尽力的意愿和作风。

二、团队与工作群体

什么是团队?

工作群体,指两个或两个以上相互作用、相互依赖的个体,为了实现某一特定工作目标而组成的集合体。

团队是一种为了实现某一目标而由项目协作的个体组成的正式群体。

 

团队和工作群体最大的不同,就是团队成员既需要个人责任感,也需要相互负责。团队比工作群体更依赖于讨论、争论、冲突和决策,更依赖于分享信息和交流最佳经验,更依赖于在业绩水平上的相互提高和共同进步。

 

美国团队理念认为,每一个团队成员的工作,都是为了与其他的团队成员共同完成团队的目标。他们通过共同的努力产生积极协同作用,这种作用的结果使得个人所做的贡献形成互补,取得比工作群体更大的业绩,使团队的绩效水平远远高于个体成员绩效的总和。

 

团队内个体间的互助及信息共享,会直接影响一个团队,从而对一个企业的工作效率起到深远的影响。

 

企业拥有强大竞争力的根源,不在于其员工个人能力的卓越,而在于其员工整体“团队合力”的强大。

 

团队和工作群体的关系应该是:工作群体是团队的基础,团队始于工作群体,但团队能达到更高的质量水准。所有的团队都是群体,只有正式群体才能成为团队。

 

美国将团队定义为,是由两个或两个以上、相互依赖、承诺共同的规则、具有共同的愿望、愿意为共同的目标而努力的互补技能成员组成的群体,通过相互的沟通、信任、合作和承担责任,产生群体的协作效应,从而获得比个体成员绩效总和大得多的团队绩效。

 

三、团队精神核心

团队精神的核心在于协同合作,强调团队合力,注重整体优势,远离个人英雄主义。

协同合作的实质是要充分利用和发挥团队所有成员的个体优势去作好这项工作,所以,必须善用团队的各种资源,才能在有限的资源下创造最佳的工作绩效。

团队合作的最大特色是团队成员在才能上应该是互补的,在共同完成目标任务时必须发挥每个人的特长,并注重在流程中发挥作用,才能使之产生协同效应。

 

团队合作不等于简单的相互帮助,最终目的是为了使团队的工作业绩超过成员个人的业绩,让团队业绩由各部分组成而又大于各部分之和,这就是协作精神。

案例:攀岩

 

四、团队成员的合作能力

案例:鱼与渔杆的故事

团队成员间应该互相依存、同舟共济、互敬互重、礼貌谦逊;彼此宽容,尊重个性的差异;彼此信任,待人真诚,遵守承诺;互相关怀,大家共同提高;利益和成就共享,责任和义务共担。

作为团队中的一员,团队合作能力是其生存之本,因此,必须让自己得到可能多的认可和支持,而其中的关键是尊重他人。

培养团队合作能力,最核心的一点,就是培养良好的与人相处的心态与交流、沟通能力。这不仅是培养团队精神的需要,而且也是获得快乐人生的重要方面。

要培养自己的团队合作能力,需要从两方面着手:一是让他人喜欢你,二是对他人寄予希望。

团队是众多个体的有机组合,它不需要独行狼式的我行我素,而需要蚂蚁般的抱成团儿的集体精神。

五、如何培养团队合作能力

 

1、欣赏,学会欣赏、懂得欣赏

很多时候,同处于一个团队中的工作伙伴常常会乱设“敌人”,尤其是大家因某事而分出了高低时,落在后面的人的心里就会很容易酸溜溜的。所以,每个人都要先把心态摆正,用客观的目光去看看“假想敌”到底有没有长处,哪怕是一点点比自己好的地方都是值得学习的。

欣赏同一个团队的每一个成员,就是在为团队增加助力;改掉自身的缺点,就是在消灭团队的弱点。

欣赏就是主动去寻找团队成员的积极品质,尤其是你的“敌人”,然后,向学习这些品质,并努力克服和改正自身的缺点和消极品质。这是培养团队合作能力的第一步。

三人行,必有我师。每一个人的身上都会有闪光点,都值得我们去挖掘并学习。要想成功地融入团队之中,善于发现每个工作伙伴的优点,是走进他们身边、走进他们之中的第一步。

适度的谦虚并不会让你失去自信,只会让你正视自己的短处,看到他人的长处,从而赢得众人的喜爱。

每个人都可能会觉得自己在某个方面比其他人强,但你更应该将自己的注意力放在他人的强项上。因为团队中的任何一位成员,都可能是某个领域的专家。因此,你必须保持足够的谦虚,这种压力会促使你在团队中不断进步,并真正看清自己的肤浅、缺憾和无知。

总之,团队的效率在于每个成员配合的默契,而这种默契来自于团队成员的互相欣赏和熟悉——欣赏长处、熟悉短处,最主要的是扬长避短。如果达不到这种默契,团队合作就不可能真正成功,团队成员的个人前途也将渺茫。

2、尊重,无论新人或旧人

尊重没有高低之分、地位之差和资历之别,尊重只是团队成员在交往时的一种平等的态度。平等待人,有礼有节,既尊重他人,又尽量保持自我个性,这是团队合作能力之一——尊重的最高境界。

团队是由不同的人组成的,每一个团队成员首先是一个追求自我发展和实现的个体人,然后才是一个从事工作、有着职业分工的职业人。

虽然团队中的每一个人都有着在一定的生长环境、教育环境、工作环境中逐渐形成的与他人不同的自身价值观,但他们每一个人也同样都有渴望尊重的要求,都有一种被尊重的需要,而不论其资历深浅、能力强弱。

尊重,意味着尊重他人的个性和人格,尊重他人的兴趣和爱好,尊重他人的感觉和需求,尊重他人的态度和意见,尊重他人的权利和义务,尊重他人的成就和发展。

尊重,还意味着不要求别人做你自己不愿意做或没有做到过的事情。当你不能加班时,就没有权力要求其他团队成员继续“作战”;尊重,还意味着尊重团队成员有跟你不一样的优先考虑,或许你喜欢工作到半夜,但其他团队成员也许有更好的事情可以做。

只有团队中的每一个成员都尊重彼此的意见和观点,尊重彼此的技术和能力,尊重彼此对团队的全部贡献,这个团队彩绘得到最大的发展,而这个团队中的成员也才会赢得最大的成功。

尊重能为一个团队营造出和谐融洽的气氛,使团队资源形成最大程度的共享。而如果一个团队中的每一个成员都能够将彼此的知识、能力和智慧共享,那么,这对整个团队以及每一个成员来说,无疑是一笔巨大的财富。

3、宽容,让心胸更宽广

美国人崇尚团队精神,而宽容正是他们最为推崇的一种合作基础,因为他们清楚这是一种真正的以退为进的团队策略。

雨果曾经说过,“世界上最宽阔的是海洋,比海洋更宽阔的是天空,而比天空更宽阔的则是人的心灵”。这句话无论何时何地都是适用的,即使是在角逐竞技的职场之上,宽容仍是能让你尽快融入团队之中的捷径。

宽容是团队合作中最好的润滑剂,它能消除分歧和战争,使团队成员能够互敬互重、彼此包容、和谐相处、从而安心工作,体会到合作的快乐。

试想一下,如果你冲别人大发雷霆,即使过错在于对方,谁也不能保证他不以同样的态度来回敬你。这样一来,矛盾自然也就不可避免了。反之,你如果能够以宽容的胸襟包容同事的错误,驱散弥漫在你们之间的火药味,相信你们的合作关系将更上一层楼。

如果有人握着拳,还用一副愤怒的表情来见我,我敢肯定,我的拳头会比他握的更紧,我会比他更加愤怒。

 

团队成员间的相互宽容,是指容纳各自的差异性和独特性,以及适当程度的包容,但并不是指无限制地纵容,一个成功的团队,只会允许宽容存在,不会让纵容有机可乘。

宽容,并不代表软弱,在团队合作中它体现出的是一种坚强的精神,它是一种以退为进的团队战术,为的是整个团队的大发展,以及为个人奠定有利的提升基础。

首先,团队成员要有较强的相容度,即要求其能够宽厚容忍、心胸宽广、忍耐力强。其次,要注意将心比心,即应尽量站在别人的立场上,衡量别人的意见、建议和感受,反思自己的态度和方法。

4、平等,不论地位和等级,真正以人为本

美国企业在这一点上的所作所为让人叹为观止,从无差别的办公室到无等级之分的停车场,每一个管理环节,都充分体现了团队的平等精神。

当每一个团队成员都处于相同的起跑线上时,他们之间就不会产生距离感,他们在合作时就会形成更加默契、紧密的关系,从而使团队效益达到最大化。

 

5、信任,成功协作的基石

美国管理者坚信这样一个简单的理念:如果连起码的信任都做不到,那么,团队协作就是一句空话,绝没有落实到位的可能。

人们在遇到问题时,会首先相信物;其次是相信自己和自己的经验,最后,万不得已才相信他人。而这一点,在团队合作中则是大忌。

团队是一个相互协作的群体,它需要团队成员之间建立相互信任的关系。信任是合作的基石,没有信任,就没有合作。信任是一种激励,信任更是一种力量。

团队成员在承受压力和困惑时,要相互信赖,就象荡离了秋千的空中飞人一样,他必须知道在绳的另一端有人在抓着他;团队成员在面临危机与挑战时,也要相互信任,就象合作猎捕猛兽的猎人一样,必须不存私心,共同行动。否则,到最后,这个团队以及这个团队的成员只会一事无成、毫无建树。

现代社会的发展,使职业分工越来越细,一个人单打独斗的时代已经成为过去,越来越需要集体的合作。个人的能力再强、工作做的再出色,也不能离开团队这个大的氛围。因此,团队成员只有相互信任、主动做事、乐于分享,才能共同成长,共达成功的彼岸。

信任,是整个团队能够协同合作的十分关键的一步。如果团队成员彼此间没有充分的信任,其交流就很难发生,就会丧失彼此合作的基础,整个团队也就势必形同散沙,毫无力量可言。

高效团队的一个重要特征就是团队成员之间相互信任。也就是说,团队成员彼此相信各自的品格、个性、特点和工作能力。这种信任可以在团队内部创造高度互信的互动能量,这种信任将使团队成员乐于付出,相信团队的目标并为之付出自己的责任与激情。

如果你不相信任何人,你也就不可能接纳任何人。根据团队交往的交互原则,你就不信任别人,别人也就不会信任你;相反,你以坦诚友好的方式待人,对方也往往会以同样的方式待你,那么,结果可想而知。

信任是缔造团队向前的动力,它同时也是团队成员对自身能力的高度自信。正是基于这种自信,他才会将自己的信任和支持真正交付给自己的合作对象。所以,若想获得最大的成功,就必须让自己拥有这份自信!

6、沟通,敢于沟通、勤于沟通、善于沟通,让所有人都了解你、欣赏你、喜欢你

从古至今,中国人一直将“少说话,多做事”,“沉默是金”奉为瑰宝,固执认为埋头苦干才是事业走向辉煌的制胜法宝。可却忽略了一个人身在团队之中,良好的沟通是一种必备的能力。

作为团队,成员间的沟通能力是保持团队有效沟通和旺盛生命力的必要条件;作为个体,要想在团队中获得成功,沟通是最基本的要求。沟通是团队成员获得职位、有效管理、工作成功、事业有成的必备技能之一。

在很多人的头脑中,都不能容忍另类思维的存在。于是,在追寻真理的过程中,我们不断重复着“瞎子摸象”的游戏,也许你摸到了“墙”,我摸到了“绳子”,他摸到了“柱子”……而每个人都抱着固有的思维不放,顽固地坚持着自己的意见,不管这个意见是否全面、具体。

沟通能力在团队工作中是非常重要的,现代社会是个开放的社会,当你有了好想法、好建议时,要尽快让别人了解、让上级采纳,为团队做贡献。否则,不论你有多么新奇的观点和重要的想法,如果不能让更多的人去理解和分享,那就几乎等于没有。

持续的沟通,是使团队成员能够更好地发扬团队精神的最重要的能力。团队成员惟有冲自身做起,秉持对话精神,有方法、层次地对同时发表意见并探讨问题,汇集经验和知识,才能凝聚团队共识,激发自身和团队的力量。

 

建立团队精神时必须掌握的沟通语言:

最重要的八个字:我承认我犯过错误!

最重要的七个字:你干了一件好事!

最重要的六个字:你的看法如何?

最重要的五个字:咱们一起干!

最重要的四个字:不妨试试!

最重要的三个字:谢谢您!

最重要的两个字:我们……

最重要的一个字:您……

7、负责,自信的面对一切

负责,不仅意味着对错误负责,对自己负责,更意味着对团队负责、对团队成员负责,并将这种负责精神落实到每一个工作的细节之中。

一个对团队工作不负责任的人,往往是一个缺乏自信的人,也是一个无法体会快乐真谛的人。要知道,当你将责任推给他人时,实际上也是将自己的快乐和信息转移给了他人。

任何有利团队荣誉、有损团队利益的事情,与每一个团队成员都是息息相关的,所有的人都拥有不可推卸的责任。如果我是公司的老板,如果有谁说那不是我的责任之类的话,我就会立刻把他开除,因为这种人显然对整个团队没有足够的专注和忠诚,缺乏责任心。

 

9、节俭,以小显大

在美国,节约是整个团队的事,而每一个细微之处的浪费都可能会被认为是一种品德上的缺陷。

越是优秀的员工,越要懂得事事从小处着眼,因为很多细小的环节都是与公司的前途休戚相关的。正所谓细节决定命运。所以,为了团队的整体利益,所有的团队成员都应该养成节约成本的好习惯。

由俭入奢易,由奢入俭难,要想在短时间内就将浪费的习惯彻底改掉,确实有很大的难度。但只要你下定决心,从骨子里树立自己的节约思维与习惯,那么,你就一定会在最短的时间内完成由浪费到节约这个艰难的过程。

在今天这个高度竞争的社会里,即使企业员工从小处节俭,最后聚少成多,企业所获得的成果也是十分可观的,甚至真的可以造成企业赚钱和赔钱的本质区别。

因此,当我们在工作中自主、自动和自发地极力减少不必要的浪费时,无形中就会使整个团队减少支出、降低成本,实际上也就等于为整个团队增加了利润。

如果我们在工作中能够形成习惯性节俭,使他成为我们的第二天性,那么我们就会因为这些习惯而获益,并最终赢得辉煌的事业。

 

10、诚信,不容置疑

古人说:人无信则不立。说的是为人处世若不诚实,不讲信用,就不能在社会上立足和建功立业。一个个体,如果不讲诚信,那么他在团队之中也将无法立足,最终会被淘汰出局。

诚信,是做人的基本准则,也是作为一名团队成员所应具备的基本价值理念——它是高于一切的。

没有合格的诚信精神,就不可能塑造出一个良好的个人形象,也就无法得到上司和团队伙伴的信赖,也就失去了与人竞争的资本。唯有诚信,才是让你在竞争中得到多助之地的重要条件。

团队精神应该建立在团队成员之间相互信任的基础上。而只有当你做到了“言必信,信必果”时,你才能真正赢得同事的广泛信赖,同时也为自己事业的兴盛发达注入了活力。

11、肥胖,也关系到整个团队

身处团队之中,发生在团队成员身上的任何一件事情,都将关系到团队的健康发展;每一个团队成员的行为和生活方式,都影响着团队的前进步伐!

 

12、热心,帮助身边每一块“短木版”

职场之内,人们一致认定的竞争法则是:强者有强者的游戏规则,弱者有弱者的生存法则。

作为一个团队成员,必须记住,只有一个完全发挥作用的团队,才是一个最具竞争力的团队;而只有身处一个最具竞争力的团队之中,个体的价值才能得到最大程度的体现!

当你是团队中的那块“短木版”时,应该虚心接受“长木版”的帮助,尽一切努力提高自己的能力,不要让自己拖整个团队的后腿,当你是团队中的那块“长木版”时,你不能只顾自己前进的脚步,而忽略了“短木版”的存在,那么,你收获的终将是与“短木版”一样的成就。

当我们身处于一个团队中时,只有想方设法让短木版达到长木版的高度,或者让所有的板子维持“足够高”的相等高度,才能完全发挥团队作用。

 

13、个性,坚持自己的特质,要的就是与众不同

团队精神不是集体主义,不是泯灭个性、扼杀独立思考。一个好的团队,应该鼓励和正确引导员工个人能力的最大发挥。

团队成员个人能力的最大发挥,其实是个人英雄主义的最好体现。个人英雄主义在工作中往往表现为个性的彰显,更包含有创造性的工作,以及勇于面对压力和敢于承担责任的勇气。团队若能给团队成员提供一个充分施展、表现自己才能的机会,那么,这将会为团队带来永不枯竭的创新能力!

诚然,团队精神的核心在于协同合作,强调团队合力,注重整体优势,远离个人英雄主义,但追求趋同的结果必然导致团队成员的个性创造和个性发挥被扭曲和湮没,而没有个性,就意味着没有创造,这样的团队只有简单复制功能,而不具备持续创新能力。

团队不仅仅是人的集合,更是能量的结合与爆发。

 

作为团队成员,不要因为身处团队之中就抹杀了自己的个性特质。记住,团队制度的建立是为了更好的发挥成员的才能,只要你不逾矩,那你就完全可以随心所欲。“八仙过海,各显神通”地开展你的工作。

 

14、团队利益,至高无上

皮之不存,毛将焉附

团队精神不反对个性张扬,但个性必须与团队的行动一致,要有整体意识、全局观念,要考虑到整个团队的需要,并不遗余力地为整个团队的目标而共同努力。

只有当团队成员自觉思考到团队的整体利益时,他才会在遇到让人不知所措的难题时,以让团队利益达到最大化为根本,义无返顾地去做,自然不会因为工作中跟相关部门的摩擦而耿耿于怀,也不会为同事之间意见的分歧而斤斤计较,更不会因为公司对自己的一时错待而怨恨于心。

对上司和公司的决定需要保持高度的认同感,这也是全局意识的一种体现。因为上司或公司高层正是一支团队的指挥中枢,每位下属或员工都必须听命于他们,与他们精诚合作,这个团队才能保持旺盛而持久的战斗力,企业才能发展壮大。

在团队之中,一个人与整个团队相比,是渺小的,太过计较个人得失的人,永远不会真正融入到团队之中!而拥有极强全局意识的人,最终会是一个最大的受益者!

15、超越自我的团队意识

强调团队合作,并不意味着否认个人智慧、个人价值,个人的聪明才智只有与团队的共同目标一致时,其价值才能得到最大化的体现。

成功的团队提供给我们的是尝试积极开展合作的机会,而我们所要做的是,在其中寻找到我们生活中真正重要的东西——乐趣——工作的乐趣,合作的乐趣。

团队成员只有对团队拥有强烈的归属感,强烈地感觉到自己是团队的一员,才会真正快乐地投身于团队的工作之中,体会到工作对于人生价值的重要性。

16、永远不要抛开你的队友

杰克·韦尔奇有句关于团队的名言:你可以拿走我的企业,但不能拿走我的团队,只要我的团队在,我就能再开创一个更加辉煌的企业。这是通用的路标,也是我们现代企业中生存必须秉持的原则。

现代企业需要协调不同类型,不同性格的人员共同奋斗,如果你不是一个领军型人才,如果你缺乏一定的合作精神,那么,你的晋升之路将倍加坎坷,甚至遥遥无期。

17、“我们”,Forever

不是“他们”、“你们、“你”、“他”、“我”,而是“我们”!

如果你想成为一名合格的团队领导,甚或只是一名合格的团队成员,那么,你就必须努力养成不在团队中使用第一人称的习惯,因为你在团队中所做过的每一件事情,几乎都是与他人一起合作完成的,都是由“我们”共同来承担的。所以,当你又想说出“我”这个字的时候,请你认真回想一下你所有的同事、伙伴和下属,以及那些你可能遗漏的人们……

如果你经常使用“你们”、“他们”等人称,那么在无形中你就会表现出一种疏离感,散发出一种“生人勿近”的气息,久而久之,你会被整个团队孤立起来,成为一个和谐团队中最不和谐的音符。这样的你,又何谈事业与前程?

管理者和企业员工在用“我”来代替整个团队的“我们”时,就已经习惯了把整个团队的功劳归于己身,在论功行赏时忽视整个团队的努力,使整个团队都成为“我”本身的附属品,致使团队人心涣散、一盘散沙,战斗力也无从谈起。

一个企业就象一部机器,机器的正常运转需要每个部件的相互配合,缺一不可,否则,就会影响到整个企业的效率,使整个团队处于瘫痪状态。

 

六、团队管理

1、资源共享,真正意义上的团队合作

团队工作的核心是协同合作,协同合作的重点在于资源共享,只有达到了真正的资源共享,这个团队才是真正意义上的团结合作的组织。

资源共享举措:

图书馆

知识库管理系统,搜集整理各种知识

项目产品事后分析报告,揭露存在的问题

休假会

定期过程审计,是技术交换的过程,是发现先进典型的过程,是学习的过程。

产品质量信息公布

通过学习交流实现资源共享

不同部门不同场合的多种交流

 

成功地将员工们的自身技能、智慧和头脑风暴纳入公司资源,使每一位团队成员都享受到了充分的资源支持,使他们可以没有后顾之忧地彼此切磋、彼此学习,从而获得不断提高,获得和提供友善帮助的机会。

资源共享是成功释放团队成员潜能的良好机制。了解更多的信息,掌握更多的资源,实际上使得员工不得不或者说是主动承担起应负的,甚至更大的责任。

正是团队资源共享的成功实践,它跨越了时间和空间的障碍,让每一位团队成员都可以随时随地的接触和管理自己与整个团队的资源,从而在团队成员之间构筑起资源共享的渠道,使整个团队的办公空间被无限扩大,使团队团结得更紧密。

一位理智的团队成员会做到资源共享,这样可以让自己更清楚团队的实际情况,有利于认清团队工作的目标,从而促进自己工作的积极性,并开创出一片新气象。

 

2、同一个目标

共同的目标能够引导大家共同去追求,去努力,从而明确了企业目标是企业相成团队精神的核心动力。

要想建立一个真正意义上的团队的共同目标,就必须使团队成员之间达成和谐的共识。团队中每一位成员都必须非常清楚团队要做什么,成品会是什么模样,基本的产品策略是什么,什么时候必须完成等。

在任何项目的执行过程中,都会有一些“关键时刻”,要求团队成员在心理和情绪上必须凝聚对目标的共识,对共同的目标产生共鸣,对事情的优先级形成清楚的认识。惟有如此,团队才能团结共进,共创辉煌。

3、沟通,上情下达,下情上达,双向而不拘形式

在一个团队之内,沟通绝不是单向的,必须是一种双向互动的形式。因为,只有团队成员与团队高层之间保有无障碍的通话渠道,这个团队才是健全的,才能够真正地携手共进。

如果一个团队的沟通和互动是正确的、健康而有效的,那么就能够使这一群人的力量完全结合,从而产生相加、相乘的效果,迅速推进团队工作。

最迅速、最方便、最直接、最尊重人性的团队沟通方式,就是利用电子邮件系统。电子邮件系统为内部员工和上下级的交流提供了最大的方便,确保了相互间意见的及时交流,对消除相互间的隔阂十分有利,能够最大限度的统一整个团队的步调,共同前进。

如果一个团队陷入沟通不良的困境时,应该采取不同以往的沟通方式进行改善。比如沟通效率过低,就应考虑设立针对沟通的部门;如沟通欠缺建设性,就应该反省团队内部教育是否滞后不前。

一个成功的团队必须是充分沟通的团队。在上下级之间,如果只有命令,没有交流,必然导致领导者的独裁和团队成员积极性的丧失;在同事之间,如果彼此鼓励隔阂,也只能导致人际关系的僵硬和冷漠。

糟糕的团队沟通就象宇宙的“黑洞”一样,会将团队成员的能量和热情吞噬殆尽。与之相反,顺畅的团队沟通则有如温暖人心的艳阳,为团队成员提供源源不断的能量,帮助他们高效地完成工作。

4、敢于放权,善于授权

充分授权不仅是让团队成员能够全力发挥才能,无所阻碍地工作,也是为他们清除各种不同的障碍,让他们以自己的力量达到某种成就的好方法。自主是充分授权的基石,让他们自主判断和实施计划,自由地思考和表达他们认为应该思考和表达的事情,自由地去冒险尝试,使他们不必怕受到额外的惩罚。

充分授权是充分管理的结果,而不是忽视属下,让他们放任自流。当管理者对属下说“这是你的决定”时,他必须已经提供了完善的支持——训练、信息、资源——让属下能够作出正确的决定,这样才算充分授权。否则的话,让属下做决定等于弃他于不顾。

在充分授权的环境中,不是无政府的混乱,而是用事实和才能领导一切,因而会放弃因为骄傲所造成的愚蠢,去除自我的狭隘心理,给整个团队创造一种和谐统一的合作气氛。

精于授权,敢于担风险是管理者不能忘怀的素质。作为一个好的管理者,要学会放权,不能把权力一人独揽,要充分发挥下属的积极性,不然就会出现只有管理者忙忙碌碌,其他人却无所事事的局面,要学会大权独揽,小权分散,要学会抓大事,放小事,从而调动整个管理机构有机高效地运转。

学会适当放权的最后一部是分清楚什么是可以控制的,什么是不可以控制的,聪明的领导者会发现,想控制下属如何运作项目,如何决定以及他们提什么样的建议是不可能的,因而领导者需要放弃对下属行为的控制,转而让他们以任务为核心,专心致力于自己承担的任务。这样才能更加恰当地把个人的力量转化为整个团队的力量。

5、同等对待,就是抹杀杰出者的贡献

我们最不可忽视的是团队高效率的培养、团队精神的形成,其基础是尊重个人的兴趣和成就,设置不同的岗位,选拔不同的人才,给予不同的待遇、培养和肯定,让每一个成员都拥有特长,都表现特长,并且这样的氛围越浓厚越好。

世界因不同而丰富多彩,人类因差异而个性纷呈,区别对待表明了团队对个性的尊重。一个团队的组成并非是一些完全相同的个体,而是各有不同的个体组合在一起才能为团队带来各种不同的能力。也就是说团队需要的不是每个成员的共同点,恰恰相反,每个成员的不同点的集中才会使团队力量壮大。

经典的团队,是每个成员都经过选拔组合,特别配备的,每个成员都做着与其他人不同的事情,最重要的是团队的管理者区别对待每一个成员,通过精心设计的相应的培训,使每一位成员的个性,特长能够不断的得到发展并发挥出来,这才识名副其实的团队。

所谓的公平对待恰恰是极其不公平的,是对优秀人才的忽视,甚至会迫使优秀人才慢慢走向流失,趋于平庸化,因为他们没有得到应有的肯定而变得不再努力和突出。

6、制定规则的人,就是第一个执行的人

在一个团队中,各级管理者都起着至关重要的作用,所以,在任何一个团队中,每一级的负责人在提出工作要求、颁布管理规则的时候,要求每一个下属做到的,管理者自己必须首先要做到,每一个下属能做到的,管理者必须要做得更好。

管理者以身作则的力量和作用,无论在任何时候都是不能丢弃的,一个人没有规则意识会被认为素质低,一个管理者没有规则意识也绝不是一个优秀的管理者。

管理者决不能忽略自身对下属可能产生的影响,更需要知道自己会对下属产生深刻的影响,自己的乐观和悲观情绪会同样富有感染力,而且自己一举一动、一言一行的表现都会影响到周围所有人的情绪、语言和行为。管理者发出的信号是非常重要的。所以说,管理者的每一个决定和每一个行动都是对下属的一次绝好的培训机会.

发号施令并不能帮助管理者实现自己的意图。真正的领导是通过以身作则来实现的,而不是简单的行政命令。无论管理者喜欢与否,他的做法都会成为组织其他成员的榜样。管理者对他们有着巨大的影响,他们事事都会从他的身上寻找原型。

规则就是规则,确定下来的规则就要坚决执行。我们不缺乏规则,缺乏的是不折不扣的贯彻规则的决心和行动。

管理者应该树立起“规则意识”。否则,规则就难以维持下去,只有真正做到这一点,并且把这些意识贯彻到团队的每一位成员的每一天的工作中去,才能够建设出一个成功的团队。

7、授人以鱼与授人以渔

一个团队的管理者,要做的不仅仅是帮助团队成员完成工作,更重要的是要教会团队成员如何独立完成工作。

有时结果并不能反映出成功与失败,团队的成员们更注重的是一个过程,注重他们在这个过程中学会了什么,得到了什么、做出了什么。只有在工作过程中达到完美的配合和协作才是团队工作的真正意义所在。

团队领导肩负着让队员得到学习和成长的重任。“授人以鱼”只是解决了他一时的低层次的需求,却不可能帮助他从根本上摆脱被动,他难免要等待外界的馈赠或者施舍;“授人以渔”则使成员有了求知的能力,这样才能在今后的工作中掌握主动权,作为一个平等、独立的团队成员立足于团队之中。

帮助手下完成任务,不如教会手下如何去完成任务。

团队合作需要学习,而学习更需要团队合作,如果一个团队中,为了发展而形成一种激烈竞争的局面,不但不会促进团队成员的大力学习,还会阻碍学习的进程,使成员之间互相明争暗斗而各自为政。这样就难以发展成一个学习型组织,要成为学习型组织,先决条件是必须有和谐的内部气愤,组织内的成员才能共享知识。

8、利用内部竞争、激发团队活力

一个团队中不能缺少团结,但是更不能缺少竞争意识。没有竞争的团队就象没有波澜的死水一样,会丧失活力的,既然我们是一个团队的成员,那么就要把团队的意识放在竞争的意识之前,处处从大局考虑就可以了.

利用不同的群体,开展集体间的竞争,要在竞争中培养企业员工的团队精神,首先要巩固他们心中的集体观念。比如说尽量让员工参与集体管理,而在这一过程中,应注意分工明确、互相监督,力求让集体中的所有员工都找到自己在集体中的位置。

在处理和平衡合作与竞争的关系时,一定要强调合作高于竞争。从总体上说,团队通向成功的途径是内部合作,而不是内部竞争。在团队内,胜利必须建立在“我们一起干”的意识的基础上,而不是“我超过了同伙”的意识基础上。

不想被狼吃掉,就要学会与狼共舞,要与狼共舞,先要学会变成狼。

9、细节,体现凝聚力

团队的凝聚力,表现为团队成员对团队强烈的归属感和一体性——每个团队成员都强烈感受到自己是团队中的一分子,真正把个人工作和团队目标联系在一起,对团队表现出一种忠诚,对团队的业绩表现出一种荣誉感,对团队的成功表现出一种骄傲,对团队的困境表现出一种忧虑。

一个成功的团队管理者,必须使团队的每一个成员都能强烈的感受到自己是雄伟城墙中的一块砖,是不可缺少的一分子。而砖与砖之间的紧密结合则是建立城墙的基础,这种紧密结合就是团队的强大凝聚力。

团队凝聚力,是指团队对其成员的吸引力和成员之间的相互吸引力。它包括“向心力”和“内部团结”两层涵义。

10、旁观、还是投入?

作为旁观者,当局者的迷茫和困惑你可能会看得一清二楚,但当你主动伸出援手时,反而可能会得到一张冷脸,当局者有当局者的骄傲和自负,这种实话实说需要高度的技巧与智能,但却是建立团队精神的基础之一。

给予忠告的最佳媒介是情感,单纯的沟通效果可能只会昙花一现,你必须真的以彼此的情谊为赌注,甚至冒着失去工作的危险来讲出实话,如果不是这样,你可能很难突破对方的心理防线,让他打心底里接受你的建议。所以,请付出你那用之不竭的关怀和好意,让你讲述的事实被正面地接受。

总之,学会接受事实和学会传达真实的信息,虽然是两个方向的沟通,但却是团队合作精神的一体两面。

11、单纯,而不是世故,简单而无须复杂

一个团队是由众多的不同动机、需求与特性的人组成的,如果无法建立起一个简单而透明的规范,就会产生很多矛盾,形成大量的内耗,即使花很大的力气,也产生不了相应的成果。

要建立一个团结向上的团队,要想成为一个团结向上的团队中最具发展性的力量,我们必须养成一种“简单”和公开的工作方式。

12、信任,但不放任

一般来说,每个团队里都会有明星员工,就象一个团队的领袖一样,其他人对这个人的某方面的能力一般都特别津津乐道。而作为一名团队管理者,应该善于利用明星员工的这种效应,使他成为最支持这个团队的人,从而借助他的行为去影响其他人。

一个成熟的团队之中,绝不应该任由明星员工主导一切。如果出现了这样的管理方式。那么一定会损害团队自身。如果明星员工特别自傲,表现得难以合作,而沟通也不能解决问题,最好的办法也许是请他走人。

明星员工的存在价值,在于为团队其他成员起到表率作用,引领整个团队共同进步,而不是个人的昙花一现的荣耀。应让他学会主动的追求完美的团队表现。

放眼世界,没有一个企业是由于一个人或者是明星员工的成功而具有持久生命力的,团队的共同表现对公司的稳定、繁荣、业绩卓著才是至关重要的。

个人形象的张力是有限的,真正力挽狂澜的还是整个团队的合作实力。所以,必须正视明星员工在团队中的双面作用,真正化不利为有利,促有利为更有利。

13、提升团队士气

若想有效而持久地提升团队士气,就必须双管齐下,一面要进行激励,以图营造团队奋进的氛围;一面着手进行团队的基础建设,力求从最根本之处提高团队的业绩。

14、员工发展规划,把人才推荐到合适的位置

团队管理者的工作,是导引团队成员将个人的志向融入团队目标,辅导他们懂得配合自己的能力定出合宜的计划,从而为整个团队带来切实的利益。

企业对员工职业计划的管理过程成为职业管理,它应该为员工设计职业发展和职业援助计划,通过员工在职业目标上的努力,谋求企业的持续发展。它帮助员工完成自我定位,帮助员工克服在完成职业目标过程中遇到的挫折,鼓励员工将个人职业目标同团队目标统一起来。

因此,管理者对团队的重要职责之一就是,把人才推举到适合的位置上去,而惟有此,企业才能形成真正的团队凝聚力,才能真正留住人才,共创大业。

有效的职业管理应该处理以下问题:

员工在达成自己的职业目标时会遇到那些问题?

怎样解决这些问题?

员工的职业生涯是否可以分为若干阶段?

这些阶段的主要矛盾是什么?

团队领导者只有掌握了这些问题,才能制定相应的政策与措施,帮助员工实现职业生涯设计,为员工提供畅通的职业发展道路。

转自:http://blog.csdn.net/stevene/archive/2006/01/10/575212.aspx

0

项目管理实战之团队管理


一个系统不仅需要优秀的分析和设计,更需要一个良好的过程将其从蓝图转化为实现。这个过程中最重要的是对团队的管理,也就是人的管理。一个优秀的团队和一个糟糕的团队的效能是天壤之别,她们之间的比例不是1:100或1:1000这样量化的数字能够表示的。就像一个团队建造了一幢摩天大楼屹立于云霄,而另一个团队的建筑物还没有10米高便开始摇摇欲坠!这是质的差别,也是团队灵魂的差别。
    而团队的领头人就是项目经理,他的能力/素质直接影响着项目的成败!我们不需要一个团队的所有成员个个都是优秀的,但是为了确保你的项目成功,请雇佣一个优秀的项目经理!
    以前,自己通常都是单干,最多时也是两三个人合作,项目进展良好。现在负责一个较大项目开发,需要协调整个团队成员,保证项目的进展。原以为,这是一件很简单的事情,和以前一样嘛。结果随着项目的进展,问题越来越多,而其中的绝大多数问题都不是技术上的,而是对组员管理协调的问题。想使一个团队高效并保持高效,我们需要花不少的气力。以下几点是从我前段时间的实践中总结出来的,只是自己的经验小结,也并没有打算写成一篇完整的关于团队管理的论文,毕竟在这方面自己的功力还浅薄的很。希望和大家多多交流这方面的心得。对团队的管理需要重视以下几个方面:

(1)让合适的人做合适的事。了解每一个组员的知识结构和背景,知道他们各自擅长什么,把任务安排给能最有效最迅速解决它的人。

(2)把项目的主要功能/任务以列表的形式形成文档、把每个组员的阶段任务以列表的形式形成文档。这是重要的,否则,你自己和你的组员将会常常忘记目标是什么、自己要做什么。

(3)不要给组员我们的项目不着急的感觉。让每个组员都有紧迫感。一个安逸/懒散的团体不可能按时按质提交项目,即使这个项目本质上并不紧迫。

(4)在组员的上一阶段任务提交之前,就应当安排好该组员的下一阶段任务。不要让任何一个组员闲散着。因为无论在什么时候,系统的任何一个模块都有改进/重构/整理的需要,我们的设计/实现永远都不够优秀。

(5)对某一特定的环节,清晰明确地告诉你的组员你想要的是什么,否则,你就准备把同样的事情告诉他第二遍第三遍。让另外一个人完整地了解你的意图不是一件简单的事情。

(6)充分地交流。就这个项目而言,你和你的组员之间的交流可能还远远不够!

(7)锻炼/指导你的组员、相信你的组员。如果作为项目经理的你是个优秀的程序员,那么千万不要相信自己能完成所有的主要/核心功能。你也许可以完成某一模块,但是更多的模块是由你的组员完成的。

(8)千万不要惟我独尊。也许你很坚信自己的方案是优秀的,但是如果你的组员提出了新的方案,那么请你重视这个新方案,并一视同仁的从这两个方案中抉择更适用于当前项目的那个。我就从组员那里吸收了很多精彩的想法,并将它们运用到项目中。

(9)坚决的执行力!前提是你必须有足够的判断力和决断力。当有些议题没有结论的时候,你需要来拍板。

(10)公平公正的对待每个组员。千万不要偏袒任何一个!

(11)请记住,项目经理不是“官”。

转自:http://blog.csdn.net/zhuweisky/archive/2005/08/08/448535.aspx

0

15所名校计算机专业之特色分析


作者:◎ 清华大学  倪铭辰

   随着IT时代的到来,几乎所有院校都开设了计算机系。计算机专业领域很多,虽然对于本科生来说,基本上是宽领域的全面培养,但是由于有各个学校的特色存在,同学们往往会在强势领域有更多的收获。   

   清华大学:在拥有多位院士的清华大学差不多在所有方向都有相应的强人撑着,相比之下,应用和系统结构更强些,某些方向已经处于世界领先水平。优势领域包括多媒体、网络技术等。同时拥有模式识别与智能控制国家重点学科。

   北京大学:在软件方面尤其在中文视觉听觉信息处理方面有优势,由王选和杨芙清两位院士曾领导的方正和青鸟证实了北大在中国当前软件界的实力。硬件方面有一位院士王阳元。   

   上海交通大学:上海交通大学近年来在走上坡路,软件方向的发展很快,模式识别与智能控制也是国家重点学科。优势领域包括系统软件、网络信息获取与处理、并行与分布理论、数据库等。  

   南京大学:如果说20世纪80年代的软件专业是并蒂莲花的话,那么现在的南大完全可以说是一枝独秀,由孙钟秀院士领导的软件学科甚至已经涉及到大型操作系统的设计。优势领域包括软件自动化与形式化方法、分布计算与并行处理、系统软件及其信息安全、多媒体技术、人工智能与知识工程、数据库技术、语言信息处理等。拥有软件新技术国家重点实验室。

哈尔滨工业大学:深处寒冷北方的哈工大能保持几十年的超强实力可以说是个奇迹,作为当年唯一的计算机应用重点学科,哈工大培养出了大量的人才。现在他们与许多学校和研究机构搞学科并建,吸纳了很多外来人才,增强了哈工大的整体实力。目前哈工大承担的项目经费已超亿元。他们的优势领域包括:智能机器人、CIMS与系统集成、智能化中文信息处理机器翻译技术、计算机网络及系统安全防护技术等。  

   东北大学:建有软件工程国家级工程研究中心,它的软件方向大多与数据库有关,东软集团的发展证实了东大软件的实力。张嗣瀛教授是中科院院士。优势领域:智能控制与智能机器人系统、诊断与容错控制、CIMS中生产计划与存储管理的建模、宽带计算机网络、分布式多媒体信息处理技术、数据库及其应用技术、嵌入式系统技术等。  

   国防科技大学:这是一所不太为人所了解的学校,就像一个淡泊名利的世外高人,我们在感叹她的高大的同时,也会有一种难以接近的感觉。由3位院士领导的系统结构方向曾经研制出了让中国人骄傲的银河系列大型计算机。国防科技大学的优势领域大多和硬件相关。设有网络技术与信息安全研究所及并行与分布处理国家重点实验室。  

    浙江大学:前任校长潘云鹤是浙大计算机系唯一一位院士(现为中国工程院副院长),他所领衔创建的计算机图形学、智能CAD在国内无其右者,而且浙大开放式的校风,吸纳贤才的远见,使其越来越受到人们的认可。浙大建有计算机辅助设计与图形学国家重点实验室。优势领域还有CAD/CIMS、虚拟现实、网络与多媒体、产品创新设计、智能信息与人机交互技术等。  

  东南大学:中国工程院院士顾冠群教授为首。计算机网络、数据库及信息系统软件技术与人工智能CIMS技术是东南大学的优势领域。建有国家863/CIMS网络和数据库实验室、教育部网络和信息集成技术实验室、中国教育和科研计算机网华东(北)地区网络中心。  

   北京航天航空大学:是发展势头最猛的学校之一,在人工智能、软件工程和体系结构、虚拟现实与多媒体技术方向有优势。建有由李未院士领导的软件开发环境国家重点实验室,教育部虚拟现实新技术重点实验室、教育部软件网上联合研发中心。  

     有一些学校的计算机专业是在基础学科如数学、电子(通信)的基础上发展起来的,也就是随着计算机发展的狂热而转型来的。数学带动软件发展,电子通信则对硬件的发展奠定了良好的基础。
    以数学专业发展软件专业的学校有复旦大学、南开大学、中国科技大学等。以电子通讯专业发展硬件专业的学校有西安电子科技大学、西安交通大学、北京邮电大学等。

转自:http://job.csdn.net/n/20070114/100593.html

0

Java替代C语言的可能性


前不久CSDN刊登了一篇《C语言已经死了》的文章,引起了一些争论。其实那篇文章是从Ed Burnette的博客上转载来的,原文题目是“Die, C, die!”,直译过来应该是《去死吧,C!》,表达的是一种诅咒,而不是判断。翻译称《C语言已经死了》,显然是一种煽风点火的误读。CSDN网友对于其观点已经进行了批判,不过坦率地说,由于这些批判基于一个扭曲的翻译文本,所以不但没有什么新鲜的地方,而且也没有抓住原作者的重点。

    实际情况是这样的,最近一段时间,在国外的技术社群里刮起了一股风,不少人在讨论Java做为C语言替代者而成为最主流的基础软件编程语言的可能性。从大部分人发表的观点来看,对于Java替代C的趋势还是支持的。

     基础软件是指这样一类软件,其主要任务是把计算机的潜能充分发挥出来,面向上层应用软件提供一个高效、可靠的功能集。这些软件会被密集地调用,性能上的一点点滞后都会在实践中被成百上千倍的放大。所以对于基础软件来说,性能至少与可靠性一样重要。我们在一些基础软件的源代码里,常常看到一些丑陋的设计,看到一些变态的黑客技巧,在其他的领域里,这是不被鼓励的,但是在基础软件中,这就是合理的,可以接受的。

     C语言目前仍在一些领域里坚挺,在操作系统、虚拟机和设备驱动程序开发方面,它可能是永远的王者。但是在其他的基础软件领域,比如数据库、网络服务器、图形图像处理等,C语言继续占据霸主地位的原因其实只有两个,一是快,二是熟悉的人多,而且经验丰富。

    但是这两点现在都遭到了挑战。

    首先是速度。Java的执行速度在JDK1.4的时候达到了这样一个水平,就是对于一个一般水平的开发者来说,他写的C++程序已经不再比对等的Java程序跑得更快了。随后的JDK 5.0和6.0进一步提高了执行性能,由不同的组织举行的多项评测结果表明,Java与C语言的整体执行效率差距在一倍以内,也就是说,素以速度著称、并且为了速度放弃了很多东西的C语言,现在比装备齐全的Java只快不到一倍了。这还不算,如果考虑到新的计算环境,C语言的速度优势有可能仅仅是一个错觉。因为,世界上只有很少的人有能力在多CPU计算平台上用C语言写出又快又正确的大程序,在这些人中间,又只有很少很少的人有能力用C语言写出一个在大型的、异构的网络环境下能够充分发挥各节点计算能力的大规模并行程序。也就是说,你也许有能力把程序效能提高一倍,从而充分发挥一台价值6000元人民币的PC的计算潜力,为客户节省1000元钱。但如果是在一个由1000台机器组成的大型异构网络并行计算的环境下,你写的C程序恐怕性能还会远远低于对应的Java程序,更不要说巨大的后期维护成本,而由此带来的损失可能是1000万或者更多。

    其次是经验。很多人都宣称自己的C功力如何如何了得,但是实际上,即使是真正的C高手也不得不花相当可观的时间来寻找并且调试错误,尤其是内存方面的错误。大部分用C写的上规模的软件都存在一些内存方面的错误,需要花费大量的精力和时间把产品稳定下来。这还没有把安全方面的缺陷考虑在内,现在大部分的开发者在代码安全方面的知识都很薄弱,安全漏洞在代码中相当普遍,而在C语言中,这一不足暴露得格外明显。最大的挑战或许得说是并发问题了,并发是一个很复杂的问题,需要在相当高的抽象层面上解决,而C语言的抽象机制过于简单,提供不了高层的抽象,因此在开发者只能从一些“并发原语”出发去构造并发程序,这跟用铅笔刀锯大树没什么分别,直截了当地说,大部分C程序员根本没有能力编写高效无缺陷的并发程序。

    所以残酷的事实是,当一个人说自己的C语言如何了得,经验如何丰富时,非常可能他说的是,自己在用C语言写单机、单线程的,不会遭到外界攻击的,在时间预算上没有什么压力,而且用户能够忍受一个很长的产品稳定期的应用程序方面非常有经验。遗憾的是,市场环境和计算环境已经完全变化。面对更复杂的计算环境,用C语言来编写高质量的大规模软件,是只有真正的专家团队才能完成的工作。如果你曾经有过连续数日苦苦追踪和调试一个内存泄露、或者线程错误的经历,你就会明白,你可能不是这样的专家。

    相比之下,Java在抽象机制、基础设施、安全和并发方面,与C语言比起来,就好像是马克沁重机枪对弓箭。比如并发, 5.0加入的java.util.concurrent包,可能是目前主流语言中对于并发问题最强有力的支持库。Java的内存管理和安全机制,也已经被实践证明确实能够有效地减少程序的缺陷。这也就是那篇诅咒文章的原文的意图。

    所以,我的态度明确的,我认为Java替代C是一个进步的想法,不过世界上进步的想法很多,能够美梦成真的却寥寥无几。Java是否真的能够在基础软件领域强有力地替代C语言呢?我看至少短期内还做不到,原因如下:

1. 人的问题。能够用C语言写出优秀基础软件的人固然不多,能用Java写出来的人恐怕更少。Java有好几百万开发者,但是他们在干什么?大部分是去搞企业级开发、Web开发了,有多少人真的理解Java的内存模型?有多少人能够熟练使用concurrent包中提供的那些工具?很多使用Java多年的人没有写过socket程序,不了解Java多线程的开销,不清楚如何进行性能诊断和调优,而这些在写基础软件的时候是必备的技能。大部分Java程序员在刚刚学会Java之后就转向Web开发,把主要精力花费在掌握一个又一个大型的、复杂的、具有厚厚的抽象层和华丽结构的frameworks上,不但对真实计算机体系结构不清楚,对于Java虚拟出来的那个计算环境也不清楚。因此,要把Java社群编程转变成能够担负起下一代基础软件开发工作的尖兵,不但难度很大,而且必须花费足够的时间。

2. Java的内存消耗太大。对于系统级程序来说,内存消耗大,就意味着cache命中率降低,与磁盘交换数据的可能性增大,对性能的影响还是比较严重的。现在很多人还是觉得Java慢,主要的原因已经不是Java跑得慢,而是由于内存消耗过大导致的综合性能下降。这个问题不解决,Java就只能用来做一些比较上层的基础软件。也许随着计算机硬件的发展,这个问题会逐步得到解决?

3. 风格的问题。这个问题我认为是最严重的。基础软件开发崇尚的是自由、直接、透明、简单、高效,要像匕首一样锋利,像战士一样勇猛,像农夫一样朴实,反对繁琐华丽的设计,反对架床迭屋的层层抽象,反对复杂的结构和不必要的灵活性。而Java社群多年来形成的设计风格与此格格不入,甚至可以说是对立的。Java在意识形态上是要面向企业应用软件的开发,所以特别强调架构,强调设计模式,强调标准,强调规规矩矩,强调高姿态,强调一种华贵的宫廷气质。在C中,你吃饭就是吃饭,捧起碗来喝酒,放下筷子骂娘,甩开膀子抓肉,撸起袖子抹油。而在Java中,你经常为了要干某件事,先new一个对象,然后以这个对象为参数new另一个对象,如此这般重复n遍,得到真正需要的对象,最后就是为了调用那个对象的一个方法,就好比吃饭时焚香洗面,漱口净手,战战兢兢,毕恭毕敬。在C中,遇到问题要像亡命徒,像流氓版程咬金,管你三七二十一,冲上去就是三板斧,还怕劈不死你丫的。在Java里,遇到问题要像宋襄公,要张榜檄文,要名正言顺,要礼仪之邦,要把架子拉开了,把谱儿摆足了。Java的口号是,不管劈不劈的死,先把你小子感动了再说。 这套繁琐的东西,对于基础软件开发来说,既不必要,也很难习惯。需要说明的是,这不是Java语言的问题,其实Java本身不必如此复杂、如此巴洛克。从语言本身来看,Java也可以是轻快直接的,也可是酣畅淋漓的。只不过十多年来几乎没有人这样用过,所以大家已经不知道:如果不来个一步三叩首,那么该怎么用Java写程序?

    正是因为上面的这种种原因(可能还不全面),直到最近,第一流的基础软件几乎都还是C语言编写的,或者至少其核心部分还是以C为主。而且我认为,在短期内,这种局面不会有大的改变。当然,如果Java社群能够克服上面的这些问题,充分发挥出Java本身的优势,在基础领域开发出一大批一流的支撑软件,那么局面是可以改变的,而且这种改变也是进步的,值得欢迎的。

转自:http://blog.csdn.net/myan/archive/2007/01/14/1482614.aspx

0

[转][团队管理]从《亮剑》看团队建设之二——PM如何与组员合作


关于团队组建

大家都有一个共同的认识,一个项目组,必然有一个带队的,称为PM。PM如何和组员合作,这是一个争议较多的话题,有人说与手下人如何合作?手下人不干活怎么办?团队成员间关系的协调等等。

项目经理与组员间的关系如何定位,这是一个既简单又复杂的话题。

以前也有一个当经理的同事说过,他是靠着弟兄们吃饭的,所以……

我个人觉得,在《亮剑》中,我们也可以得到不少的启示。

亮剑的过程

李云龙是如何做团长的,大家在第20集中可以看到,为了被杀的魏和尚,李云龙不惜关押了新二团团长孔捷等人,同时动用兵力直接攻打黑云寨。结果,仇报了,他被降职为营长。

快意恩仇的一刀!杀掉了山猫子(二爷)。痛快得一刀!

我相信只要是有血性的中国人,都会喜欢这一刀的!

这一刀也同样体现在他攻打平安县城的时候,也体现在第一集中,返回去救出张大彪的过程中。

这一刀的效果体现在了很多地方,比如骑兵连连长孙得胜带着全连冲锋到阵亡的过程,冲锋到了只剩下一条胳膊,还是继续冲了过去。等等等等。

亮剑的启示

这一刀表现出什么?

表现出李云龙从来没有把团里的人当作手下人,而是拿他们当亲兄弟。亲兄弟死了,自己哪怕拼上一死,也要为他报仇。降职,当不当官都无所谓。

这就是全心的为团队成员考虑的一个典型。

这种管理是不需要任何技巧的,需要的就是一颗心,一颗负责任的心,一颗不考虑自己利益的全心为了团队成员的心。

为什么李云龙带的兵愿意为他玩儿命,我想原因也很明显了,就是他愿意为这些兵的生死发展玩儿命,种豆得豆,种瓜得瓜。

在现代的团队管理上,很少会涉及到某件事情要一个人生死的时刻,但是,这时候团队的管理者应该考虑的就是成员的利益。保证成员的利益,团队成员才会发挥出自己最大的能动性。

说得刻薄一些:资本家剥削的是剩余劳动力。但是,如果团队成员都没有心情干活,在目前这种工资固定的薪酬形式下,剩余劳动力的数量必然会极大地降低。

如果能够让团队的成员完全主动的工作,激发热情的工作,那么即使加些工资,剩余劳动力的数量也会相应的增加。

结论

可惜的是,国内很少有老板会意识到这一点。所以,才会有那么多的劳动纷争。

如果一个团队管理者遇到了管理上的问题,不妨先问问自己,是否做到了这一点。

转自:http://blog.csdn.net/qingrun/archive/2006/11/14/1383795.aspx

Previous Page

Random Posts Recent Comments

  • 女友糖尿病害我蛀牙 Says:

    汗一个…...

  • Htj06 Says:

    zhenyouchuangyi...

  • 电商圈 Says:

    试图该怎么建立啊,,怎在程序中是吸纳...

  • edward Says:

    看得人心旷神怡,好文,情不自禁的顶一下...

  • Daniel Says:

    我也在处理这个问题,没有找到好的方法。我用了楼上兄弟的方法,还是可以的。不知道您找到好的方法了吗、我暂时楼上兄弟的方法。...

  • 卡,卡 Says:

    弱弱问一句:博主,你博客的模板这样设计pv高吗?...

  • 站长工具 Says:

    博主,兔年快乐!...

  • health Says:

    great post!!I hope I can read more in your website....

  • pdu Says:

    好博文,支持分享...

  • 站长工具 Says:

    博主的文章很不错,我是站长工具-站长精灵的作者,一款专业的SEO工具软件(可以帮您提高博客的流量),想跟您交换个链接,不知可否...

Tag Cloud

arm audio blog brew cache class debug flash google html j2me java javascript Joke linux lua mobile mtk php python ror ruby server shell stream unix web windows 优化 动态加载 女人 女生 平台 开发 手机 技术 流媒体 测试 漫画 生活 男人 男生 缓存 芯片