Spiga

回忆孔先生

2008-12-25 04:31 by 梁逸晨, 3484 visits, 收藏, 编辑

鲁镇的网吧的格局,是和别处不同的:都是当街一个曲尺形的大柜台,柜里面预备着热水和各色各样的饮料和酒。做工的人,傍午傍晚散了工,每每花五块钱,来通宵上网,还可以附送一碗酒,一边喝酒一边上网。——这是二十多年前的事,现在每晚要涨到十块钱,——靠柜外站着,热热的喝了休息;倘肯多花一块钱,便可以买一碟茴香豆,做下酒物了,如果 出到十几块钱,那就能买一样荤菜,但这些顾客,多是短衣帮,上网看的东西都是拿不上台面的,所以都是站着上网的,衙门一来,也好撒腿就跑,短衣帮大抵没有这样阔绰。只有穿长衫的,才踱进店面隔壁的房子里,要酒要菜,慢慢地一边坐喝,一边看着屏幕上那些说不出口的东西。


  我从十二岁起,便在镇口的咸亨网吧里当伙计,这个网吧比较大,除了给客人上网的服务,还有帮客人定制一些不三不四的工具的开发部门。一开始,掌柜说,样子太傻,怕侍候不了长衫主顾,就在外面做点事罢。外面的短衣主顾,虽然容易说话,但唠唠叨叨缠夹不清的也很不少。他们往往亲自带着怀表,结帐的时候要看看网吧有没有少算钟点,有的还亲自打电话到格林尼治天文台校对自己怀表有没有跑快了,然后才放心:在这严重兼督下,对计时器做手脚也很为难。所以过了几天,掌柜又说我干不了这事。幸亏荐头的情面大,辞退不得,另一个原因也是我在巨软中国研究院做过几年码农,所以便改为专管写一些psp.net程序的一种无聊职务了。


  我从此便整天的站在柜台里,专管我的职务。虽然没有什么失职,但总觉得有些单调,有些无聊。掌柜是一副凶脸孔,主顾也没有好声气,教人活泼不得;只有孔乙己到店,才可以笑几声,所以至今还记得。


  孔乙己是站着上网而穿长衫的唯一的人。他身材很高大;青白脸色,皱纹间时常夹些伤痕;一部乱蓬蓬的花白的胡子。穿的虽然是长衫,可是又脏又破,似乎十多年没有补,也没有洗。他对人说话,总是满口之乎者也,教人半懂不懂的。因为他姓孔,别人便从描红纸上的上大人孔乙己这半懂不懂的话里,替他取下一个绰号,叫作孔乙己。孔乙己一到店,所有喝酒的人便都看着他笑,有的叫道,孔乙己,你脸上又添上新伤疤了!他不回答,对柜里说,上两个小时,要一碟茴香豆。便排出十九块钱。他们又故意的高声嚷道,你一定又偷了人家的东西了!孔乙己睁大眼睛说,你怎么这样凭空污人清白……”“什么清 白?我前天亲眼见你反编译了kernel32.dll,被鲍掌柜吊着打。孔乙己便涨红了脸,额上的青筋条条绽出,争辩道,借鉴不能算偷……借鉴!……科学家的事,能算偷么?接连 便是难懂的话,什么骆驼命名法是大写在前还是小写在前,什么“using各有几种用法之类,随口便抛出一句:你们这些人,要回家复习功课了,引得众人都哄笑起来:店内外充满了快活的空气。

 
  听人家背地里谈论,孔乙己原来也读过书,还是NVPNCSE,但终于没有进学,又不会营生;于是愈过愈穷,弄到将要讨饭了。幸而写得一手漂亮的代码,运行起来很快很强大,便接一些私活,换一碗饭吃。可惜他又有一样坏脾气,便是摆着看过几本书的架子愤世嫉俗。坐不到几天,便在同事的代码里面挑刺,说这段不符合什么规矩原则,那段没有实现接口……搞得团队很紧张,经常延误工时。如是几次,叫他做事的人也没有了。孔乙己没有法,便免不了偶然做些入侵银行主机的事。但他在我们店里,品行却比别人都好,就是从不拖欠;虽然间或没有现钱,暂时记在粉板上,但不出一月,定然还清,从粉板上拭去了孔 乙己的名字。


  孔乙己喝过半碗酒,涨红的脸色渐渐复了原,旁人便又问道,孔乙己,你当真会编程么?孔乙己看着问他的人,显出不屑置辩的神气。他们便接着说道,你怎的连半个秀才也捞不到呢?孔乙己立刻显出颓唐不安模样,脸上笼上了一层灰色,嘴里说些话;这回可是全是指针堆之类,一些不懂了,随口便抛出一句:“你们这些人,要回家复习功课了,在这时候,众人也都哄笑起来:店内外充满了快活的空气。

 
  在这些时候,我可以附和着笑,掌柜是决不责备的。而且掌柜见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向 孩子说话。有一回对我说道,你写过程序么?我略略点一点头。他说,写过,……我便考你一考。茴香豆的茴字,怎样在屏幕上打印出来?我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,不会罢?……我教给你,记着!这些模式应该记着。将来做掌柜的时候,写账要用。我暗想我和掌柜的等级还很远呢,而且我们掌柜也从不将茴香豆上账;又好笑,又不耐烦,懒懒的答他道,谁要你教,不是Console.WriteLine一个草头,然后再一个来回的回字么?孔乙己显出极高 兴的样子,将两个指头的长指甲敲着柜台,点头说,对呀对呀!……回字有四样写法,你知道么?你的这个办法不好,有很多冗余,万一有人写错了,也不好追查责任,我写给你看,你看我综合使用了模板方法模式、桥接模式、抽象工厂模式、通用数据库兼容模式,优美极了:

 

using System;
using System.Data;
using System.Data.Common;

  //转载本文请注明来源:

  //http://www.cnblogs.com/kvspas/archive/2008/12/25/1361932.html

 

namespace kongyiji
{

    
interface IHui
    
{
        
void Print();
        
void Print(int step);
    }


    
/// <summary>
    
/// 抽象基类,实现通用的草字头输出
    
/// </summary>

    abstract class AHui: IHui
    
{
        IHui i;

        
private IDbCommand comm;
        
private IDbConnection conn;
        
private DbProviderFactory _dbFac;

        
private IDbDataParameter pram;

        
public AHui(DbProviderFactory DbFac)
        
{
            Console.WriteLine(
"");
            _dbFac 
= DbFac;
        }


        
public abstract void Print();

        
protected void SaveSwitch(string hui_type)
        
{
            conn 
= _dbFac.CreateConnection();
            conn.ConnectionString 
= @"Data Source=localhost;Initial Catalog=local_db;Persist Security Info=True;User ID=sa;Password=123456789";
            comm 
= conn.CreateCommand();

            comm.CommandText 
= "INSERT INTO LOG(hui_type) VALUES(@hui_type);";
            pram 
= comm.CreateParameter();
            pram.DbType 
= DbType.String;
            pram.ParameterName 
= "@hui_type";
            pram.Value 
= hui_type;

            
//conn.Open();
            
//comm.ExecuteNonQuery();
            
//conn.Close();
        }


        
public void Print(int step)
        
{
            i 
= HuiFactory.Hui(_dbFac,step);
            i.Print();
        }

    }


    
/// <summary>
    
/// 回字写法
    
/// </summary>

    class SelectHui: AHui
    
{
        
string _hui;

        
public SelectHui(string select_hui, DbProviderFactory DbFac)
            : 
base(DbFac)
        
{
            _hui 
= select_hui;
        }

        
public override void Print()
        
{
            Console.WriteLine(_hui);
            SaveSwitch(_hui);
        }

    }



    
class HuiFactory
    
{

        
public static IHui Hui(DbProviderFactory DbFac,int step)
        
        
{
            IHui temp 
= null;

            
switch(step)
            
{
                
case 1:
                    temp 
= new SelectHui("", DbFac);
                    
break;
                
case 2:
                    temp 
= new SelectHui("", DbFac);
                    
break;
                
case 3:
                    temp 
= new SelectHui("", DbFac);
                    
break;
                
case 4:
                    temp 
= new SelectHui("", DbFac);
                    
break;
                
default:
                    temp 
= new SelectHui("", DbFac);
                
break;
            }


            
return temp;
        }

    }




    
class Program
    
{
        
static void Main(string[] args)
        
{
            DbProviderFactory fac 
= DbProviderFactories.GetFactory("System.Data.SqlClient");
            

            IHui i 
= HuiFactory.Hui(fac,4);
            i.Print();
            i.Print(
2);
        }

    }

}

 

我愈不耐烦了,努着嘴走远。写完后,孔乙己向掌柜的讨来一支烟,还想继续说些什么,见我毫不热心,便又叹一口气,显出极惋惜的样子。


  有几回,邻居孩子听得笑声,也赶热闹,围住了孔乙己。他便给他们吃茴香豆,一人一颗。孩子吃完豆,仍然不散,眼睛都望着碟子。孔乙己着了 慌,伸开五指将碟子罩住,弯腰下去说道,谁能告诉我一个TCP/IP数据包能容纳多少个字,这盘豆子就给谁。,孩子们你望我,我望你,有的伸出五个手指,有的伸出二个手指……孔乙己直起身又看一看豆,自己摇头说,不多不多!多乎哉?不多也。于是这一群孩子都在 笑声里走散了。


  孔乙己是这样的使人快活,可是没有他,别人也便这么过。


  有一天,大约是中秋前的两三天,掌柜正在慢慢的结账,取下粉板,忽然说,孔乙己长久没有来了。还欠十九块钱呢!我才也觉得他的确长久没有 来了。一个喝酒的人说道,他怎么会来?……他打折了腿了。掌柜说,哦!”“他总仍旧是那副看不起人的嘴脸。这一回,是自己发昏,竟然当街和城管争论汇编语言有几种数据类型。那些人,惹得起的么?”“后来怎么样?”“怎么样?先录口供,后来是打,打了大半夜,再打折了腿。”“后来呢?”“后来打折了腿了。”“打折了怎样呢?”“ 样?……谁晓得?许是死了。掌柜也不再问,仍然慢慢的算他的账。


  中秋之后,秋风是一天凉比一天,看看将近初冬;我整天的靠着火,也须穿上棉袄了。一天的下半天,没有一个顾客,我正合了眼坐着。忽然间听得 一个声音,上三个小时,要间包房。这声音虽然极低,却很耳熟。看时又全没有人。站起来向外一望,那孔乙己便在柜台下对了门槛坐着。他脸上黑而且瘦,已经不成样子; 穿一件破夹袄,盘着两腿,下面垫一个蒲包,用草绳在肩上挂住;见了我,又说道,上三个小时,要间包房。掌柜也伸出头去,一面说,孔乙己么?你还欠十九块钱呢!孔乙己很颓唐的仰面答道,……下回还清罢。这一回是现钱,房间要干净,陪上网的要长得漂亮。掌柜仍然同平常一样,笑着对他说,孔乙己,你又惹事了!但他这回却不十分分辩,单说了一句不要取笑!”“取笑?你不惹事,怎么会打断腿?孔乙己低声说道,跌断,跌,跌……”他的眼色,很像恳求掌柜,不要再提。此时已经聚 集了几个人,便和掌柜都笑了。我安排了房间,带他进去。他从破衣袋里摸出六块钱,放在我手里,见他满手是泥,原来他便用这手走来的。三个小时后,他上完网。孔乙己在结帐的时候从来不和我们计较钟点,这次,我还多给他上了十分钟。这次他从包房里走出来,是满脸的惆怅,看到他的脸色,有人取笑道:孔乙己,德鲁伊升到几级了?,孔乙己答道:尽是MFC,服务器也没有使用AEAWEBLOGIC,升级模块里面一大堆冗余数据,玩这种东西丢人不丢人?””丢人?我亲眼看着你玩的,你又破解人家的DLL想偷代码了?,孔乙己立刻显出颓唐不安模样,脸上笼上了一层灰色:君子故穷,其言显富,皆等货色,何需窃乎。你们这些人,要回家复习功课了。便又在旁人的说笑声中,坐着用这手慢慢走去了。

 

 
  自此以后,又长久没有看见孔乙己。到了年关,掌柜取下粉板说,孔乙己还欠十九块钱呢!到第二年的端午,又说孔乙己还欠十九块钱呢!到中秋可是没有说,再到年关也没有看见他。

  我到现在终于没有见——大约孔乙己的确死了。

标签: 开发
Add your comment

65 条回复

  1. #1楼 小弱      2008-12-25 06:57
    呵呵,一笑解千愁
     回复 引用 查看   
  2. #2楼 Ivan-Yan      2008-12-25 08:11
    太有才了!
     回复 引用 查看   
  3. #3楼 非空      2008-12-25 08:17
    寓教于乐 ,楼主叫你梁老师吧 :-)
     回复 引用 查看   
  4. #4楼 aspnetx      2008-12-25 08:18
    叫孔先生可能就没有那个味儿了,乍一看我以为楼主说的是北大的那个孔先生呢,呵呵.
     回复 引用 查看   
  5. #5楼 xyzd[未注册用户]2008-12-25 08:22
    情節不好,重寫...
     回复 引用   
  6. #6楼 李战      2008-12-25 08:25
    你强!
     回复 引用 查看   
  7. #7楼 火之光      2008-12-25 08:29
    楼主真是太有才了!
     回复 引用 查看   
  8. #8楼 小猴子      2008-12-25 08:33
    最近感觉不好,看了文章。怎么有点感觉自己象这位孔先生了!
    对于自己的工作,总是看得很重很真,结果就是现在弄得自己有时候很尴尬啊。
    正迷途呢!
    这两天写代码的时候,装糊涂。放了几个BUG给同事瞧瞧,让他们也找找批我的感觉,不然怎么能够平衡呢?
    用心之良苦,感叹人际之复杂!
     回复 引用 查看   
  9. #9楼 非空      2008-12-25 08:36
    楼主想说偷dll不算偷 哈哈
     回复 引用 查看   
  10. #10楼 阿邱      2008-12-25 08:39
    高手!
     回复 引用 查看   
  11. #11楼 rami[未注册用户]2008-12-25 08:41
    人才
     回复 引用   
  12. #12楼 沉没的青蛙      2008-12-25 08:45
    厉害~
     回复 引用 查看   
  13. #13楼 3echo      2008-12-25 08:54
    真服你!
     回复 引用 查看   
  14. #14楼 横刀天笑      2008-12-25 08:56
    只能说四个字:太有才了,佩服的天昏地暗啊
     回复 引用 查看   
  15. #15楼 Judas      2008-12-25 08:57
    真的是好文啊,看完之后很有感觉
     回复 引用 查看   
  16. #16楼 Po[未注册用户]2008-12-25 09:02
    淫才啊
     回复 引用   
  17. #17楼 peace      2008-12-25 09:04
    山寨现代版《孔乙己》 ? 呵呵 顶下
     回复 引用 查看   
  18. #18楼 惠致澜馨      2008-12-25 09:08
    很好,很有才!
     回复 引用 查看   
  19. #19楼 aaaa[未注册用户]2008-12-25 09:16
    有点意思.楼主好文笔!
     回复 引用   
  20. #20楼 路过3[未注册用户]2008-12-25 09:18
    牛,没得说!
     回复 引用   
  21. #21楼 黑羽飘舞      2008-12-25 09:19
    此文不得不赞一个。
     回复 引用 查看   
  22. #22楼 pythonic      2008-12-25 09:21
    这个好~
     回复 引用 查看   
  23. #23楼 zzticzh1[未注册用户]2008-12-25 09:22
    高手
     回复 引用   
  24. #24楼 MLY@[未注册用户]2008-12-25 09:23
    好东西.NB~~
     回复 引用   
  25. #25楼 !@>[未注册用户]2008-12-25 09:28
    不错,但情节都猜得出来了,毕竟鲁迅写的嘛,大家都学过

    你改改情节,多好的
     回复 引用   
  26. #26楼 _sk      2008-12-25 09:30
    很有才.
     回复 引用 查看   
  27. #27楼 wenw      2008-12-25 09:30
    LZ有才啊,不顶不行了。
     回复 引用 查看   
  28. #28楼 peace      2008-12-25 09:32
    --引用--------------------------------------------------
    !@&gt;: 不错,但情节都猜得出来了,毕竟鲁迅写的嘛,大家都学过

    你改改情节,多好的
    --------------------------------------------------------
    要是改成个让孔乙己大翻身的结局 那个叫人大跌眼镜了 哈哈
     回复 引用 查看   
  29. #29楼 五味果      2008-12-25 09:52
    太有才了!
     回复 引用 查看   
  30. #30楼 John Rambo      2008-12-25 09:59
    强贴留名。
     回复 引用 查看   
  31. #31楼 me_kk[未注册用户]2008-12-25 10:08
    哈哈 不错不错
     回复 引用   
  32. #32楼 风过 无痕      2008-12-25 10:14
    感动的稀里哗啦
     回复 引用 查看   
  33. #33楼 随便吧[未注册用户]2008-12-25 10:18
    太有才啦,佩服的五体投地
     回复 引用   
  34. #34楼 蓝色海岸线      2008-12-25 10:18
    果然很山寨~~~呵呵,不错。
     回复 引用 查看   
  35. #35楼 stonespawn      2008-12-25 10:21
    顶下
     回复 引用 查看   
  36. #36楼 代码工人      2008-12-25 10:28
    NX
     回复 引用 查看   
  37. #37楼 BrianLei      2008-12-25 10:30
    04:31写博,不要继续Coding人生了,不是 “不要命的人”就是 “有毛病的人” 还是 “有时差”
     回复 引用 查看   
  38. #38楼 痴情客      2008-12-25 10:38
    孔乙己 有错吗?
     回复 引用 查看   
  39. #39楼 2008s[未注册用户]2008-12-25 11:25
    “你怎的连半个秀才也捞不到呢?”
    可改成
    “你怎的连半个系分也捞不到呢?”
     回复 引用   
  40. #40楼 编号9527[未注册用户]2008-12-25 11:28
    《孔乙己》居然也出IT版了
     回复 引用   
  41. #41楼 金色海洋(jyk)      2008-12-25 11:48
    好多专业术语不懂哦。又落后了。
     回复 引用 查看   
  42. #42楼 金色海洋(jyk)      2008-12-25 11:53
    Console.WriteLine("茴");

    不就搞定了吗?

    o(∩_∩)o...哈哈
     回复 引用 查看   
  43. #43楼 阿滨       2008-12-25 12:12
    精彩!
     回复 引用 查看   
  44. #44楼 IChina      2008-12-25 12:13
    o(∩_∩)o...哈哈
     回复 引用 查看   
  45. #45楼 沙加      2008-12-25 14:06
    哇卡卡~~~
     回复 引用 查看   
  46. #46楼 赵忠印[未注册用户]2008-12-25 15:05
    还有代码,太狠了
     回复 引用   
  47. #47楼 赵忠印[未注册用户]2008-12-25 15:10
    怎么楼主的回五种写法,比孔乙己的四中还多一种
     回复 引用   
  48. #48楼 赵忠印[未注册用户]2008-12-25 15:17
    不好意思,看错了
     回复 引用   
  49. #49楼[楼主] 梁逸晨      2008-12-25 17:45
    感谢各位有血有肉的朋友们捧场。
     回复 引用 查看   
  50. #50楼 一万光年外      2008-12-25 19:52
    这么好的文章,自然要顶了!
     回复 引用 查看   
  51. #51楼 韦恩卑鄙      2008-12-25 22:53
    竟然偷wow服务器端...
     回复 引用 查看   
  52. #52楼 testX[未注册用户]2008-12-26 08:34
    错乎哉,不错矣?哈哈。。
     回复 引用   
  53. #53楼 kivenhou      2008-12-26 08:46
    学的太僵硬,应该编出一点新意的好。
    为什么要让孔已己死呢?
     回复 引用 查看   
  54. #54楼 路过回帖[未注册用户]2008-12-26 10:41
    果然好文,看的人心里酸酸的
     回复 引用   
  55. #55楼 andy.wu      2008-12-26 11:32
    楼主不做文学青年可惜了。
     回复 引用 查看   
  56. #56楼 残香恨      2008-12-26 12:32
    ============================================
    他们便接着说道,“你怎的连半个秀才也捞不到呢?”孔乙己立刻显出颓唐不安模样,脸上笼上了一层灰色,嘴里说些话;
    ==============================================

    我觉得应改成:“你怎的连半个项目组长也捞不到呢?”更适合!
     回复 引用 查看   
  57. #57楼 玉开      2008-12-26 12:49
    挺不错的哟
     回复 引用 查看   
  58. #58楼 玉开      2008-12-26 12:59
    挺不错的哟
     回复 引用 查看   
  59. #59楼 Kevin-moon      2008-12-26 13:53
    太有才了!
     回复 引用 查看   
  60. #60楼 双击      2008-12-26 15:47
    看了楼主的好文,我这潜水多年的人也不得不出来回帖

    楼主你太强大了!!!



     回复 引用 查看   
  61. #61楼 HollenZhao      2008-12-26 19:07
    耐人寻味啊
     回复 引用 查看   
  62. #62楼[楼主] 梁逸晨      2008-12-27 03:26
    回答几位提出的为什么孔乙己会死:

    文中并没有明确指明他一定是死了,但是大约有80%的可能也就是死了。
    那么回到现实来:这样的程序员不会做人,固然是技术水平再高,也难以让别人接受他。

    这个故事是我真的在某个QQ群里面见有其人,而并非一时“灵感发作”。
     回复 引用 查看   
  63. #63楼 小猴子      2008-12-29 08:33
    请宽恕我直言:
    LZ的道理我也认同,不过当前的开发人员基本上都是做人比做技术强,个个都花心思去处理麻烦的人际关系了,技术上一般弄个三五年后再有长进的就很少了。
    在我们这里:要做到对事对人区别对待,感觉太难。
    我们现在开发环境我认为是很不正常的,很多人经常拿印度和我们比,我个人不了解外面的情况,但我认为我们自己都还有很大的提高余地,为什么不先改进了再去比呢??做技术的如果老是务虚,多少工作也是白搭,整体的水平提高不了多少的。我认为如果我们没有一批40岁以上的老程序员,就不可能有多么好的明天。
    现实中不是我不会做人,而是看不懂一些行为。
    另外:有很多技术牛人,脾气都很不好,我们为什么不能包容下呢???
    而对那些不会做事情只会做人的人,你们是不是包容的太多了,因为他们经常把事情搞杂???
     回复 引用 查看   
  64. #64楼[楼主] 梁逸晨      2008-12-29 11:36
    回猴兄:


    我本人也是极看不惯那些你所说的所谓 “会做人” 的人,那是到了什么田地呢?口若悬河、黑白颠倒。

    但是凡事有个度,“太会做人”不行,“不会做人”也不行。所谓的“不会做人”是什么含义呢?如果孔乙己的故事还说不明白的话,那就看看稍微具象点的,而且是我亲眼所见的:

    A:“兄台,你的程序用什么语言写的?”
    B:“啊,用.NET写的”
    A:“你怎么会用这种破烂东西呢?又不开源,又不安全,服务器又贵,运行又慢,简直太烂了,一看你就是个门外汉……”
    B:“朋友,这是我们最后一次谈话了,再见。”
     回复 引用 查看   
  65. #65楼 wyl      2009-01-17 16:54
    --引用--------------------------------------------------
    梁逸晨: 回猴兄:


    我本人也是极看不惯那些你所说的所谓 “会做人” 的人,那是到了什么田地呢?口若悬河、黑白颠倒。

    但是凡事有个度,“太会做人”不行,“不会做人”也不行。所谓的“不会做人”是什么含义呢?如果孔乙己的故事还说不明白的话,那就看看稍微具象点的,而且是我亲眼所见的:

    A:“兄台,你的程序用什么语言写的?”
    B:“啊,用.NET写的”
    A:“你怎么会用这种破烂东西呢?又不开源,又不安全,服务器又贵,运行又慢,简直太烂了,一看你就是个门外汉……”
    B:“朋友,这是我们最后一次谈话了,再见。”

    --------------------------------------------------------
    哈哈
     回复 引用 查看