Profilo di Mountain蓝色山峰FotoBlogElenchi Strumenti Guida

Blog


08 gennaio

新年新气象

年末了(农历),也像别人的样子做个总结。
 
2005年做的事情:
       换了个工作,但还是干老本行
       sql还是写得一塌糊涂,做的单据bug多的要命,连自己都感到脸红
       net本质论看了一半,另外一半搞不定了
       asp.net组件编程还是没有看  功力太浅(给自己找的好借口)
       设计模式又是一半
       sps的开发举步维艰 等着高手来帮忙
 
2006年想做的事情
       看完设计模式
       但愿don box的webservices图书能够出来  较清楚地了解iis和webservices
       能用2005写一个小的自定义工作平台的模版  ajax怎么办??
       vista / winfx / avalon indiog winfs当然是越早越好(跟着ms 腿都块累断了)  
       恩  有机会看看ruby  曾经看过一个帖子  对动态语言感到就像是遇到了火星人一样
 
未完待续~~~~~~~~~~~~~~~~~~~~~
 
昨天(2006-2-21)刚刚在程序员上看到一片采访don box的文章,看来 essential webservices 不可能出来了,倒是很可能会出一本 essential indiog,这个当然是我的猜测,因为don box 在做indiog。
'用在soa方面是首选,如果相对程序的消息等作更精确的控制,那么indiog比较擅长'
25 novembre

转帖

一个程序员对自己的未来很迷茫,于是去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Lippman,他现在领导的程序员的队伍可能是地球上最大的”
于是他去问Lippman。
Lippman说“程序员的未来就是驾驭程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Gates,他现在所拥有的财产可能是地球上最多的”
于是他去问Gates。
Gates说“程序员的未来就是榨取程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的”
于是他去问侯捷。
侯捷说“程序员的未来就是诱惑程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝摇摇头“唉,我的孩子,你还是别当程序员了”)

24 novembre

用C#写面向过程的程序

        半年前还自以为是的认为自己对于OO的概念还是比较可以的,3个月前来LC面试谈到这个(我的简历上写的)的时候就心虚了,一直到现在竟然更加的迷茫起来。
        每天对着数据库的增删该查,每天就是功能相同的类,这些类唯一作用就是有个函数对于传进来的数据作处理(最简单的依赖关系),其实这个功能如果不用类而用函数实现,效果是一样的,甚至会更好一些。
 
         以前看类的时候总是在看实例,而且是从继承链的最底层开始,把东西拆分成很小个体,然后使用继承或者组合,为恐划分的不细小,不复杂。
         仔细想一想类的定义:类是物体的描述。既然是描述,那么总是要描述共有的特征,而不是仅仅描述一个具体而微的细节。现在真切地感觉到应该从整体入手,找出实例的共有特征,注重功能,使用接口。可变部分利用多态,不变部分使用继承。
          C#中的范型,最近炒得火热的AOP,哪一个不是从宏观总体的方向来把握。看来我只是个小男人,不能从大处着眼,到现在才开这么点窍,或许是还未开窍,仅仅是有点要开的意思,至于是不是能开开,还不知道呢。
 
          又想起在上海的时候那个老工程师教导的话“现在的面向对象的思想是接口的复用…………”
28 luglio

圣人和凡人的区别

上次qtec活动,大家交流的时候气氛很好,开心提到了TestDriven,这东西以前看过资料,当时觉得就是个疯子的想法,可是开心说“这是把代码的需求具体化到测试的程度”(具体怎么说得忘记了,但是大概就是这个意思),听后豁然开朗。马上想起了《白鹿原》中的片断。嘉轩眼见白鹿,并且亲手划出了模样,可是却怎么也看不出是白鹿,确是朱先生一句话,迷雾顿开。
      “凡人与圣人的差别就在眼前的那一张纸,凡人投胎转世都带着前世死去时蒙在脸上的蒙脸纸,只有圣人是被天神揭去了那张纸投胎的。凡人永远也看不透眼前一步的世事,而圣人对纷纭的世事洞若观火。凡人只有在圣人揭开蒙脸纸点化时才恍悟一回,之後那纸又变得黑瞎糊涂了。”(《白鹿原》http://www.mypcera.com/book/xian/da/other/white-deer/002.htm
      技术上的壁垒不提,大凡软件做的失败,一般是需求出了问题。需求并不仅仅是软件中的整体设计的前的需求,达到每一个增量得实现,小到每一个函数都有需求。如果我们把每一个模块、每一个类、每一个模块的需求都细化并且明确到测试代码的程度,那么至少在代码质量是可以保证的。
26 luglio

笔记

近现代有学识的人可以分为三等。下者为学者,能够在学习中充实自己,并在某一领域中有所得,这不难,只有智商不低,有孜孜不倦的专注于求学,总能学有所成,院士,科学家颇有人在;中者为识者,此类人能够在学识中有所思考,博而专,于学问游刃有余,如让人敬重的钱钟书,季羡林;上者为思者,不但能够在浊浊尘世独善其身,还能够昂立于群,坚持真知灼见,威武而不屈之,称为思想之集大成者,如在文革中宣扬古罗马民主制度的顾准,在马列主义遍布神州,还不让共产主义研究进入的历史思想家陈寅恪。
29 giugno

工厂--不仅仅是工厂

    SimpleFactory:
    Factory类里面有一个Static方法用来创建具体的产品(自行车,摩托车……),而这些具体产品都继承一个基类产品(抽象的车)。所以Static的方法的返回类型就是这个基类产品(抽象的车)(编译时)。而运行时返回的却是派生的实例(自行车,摩托车……)。
    优点:当消费者需要新的实例(滑板车)的时候,消费者无需改动。插入一个新的实例(滑板车),然后改动Factory的方法。一定程度上实现了“OCP”。
    缺点:1,Factory类成了万能类。
             2,产品的种类较多并且实现了不同的接口(两栖车--船的接口)的时候,对于判断是哪一种产 品将发生混 乱。
 
    FactoryMethod:
    "讲条件转移语句改写成多态性"----------当我看到SimpleFactory中的static方法的时候,我就想起了这句话。结果,多态来了。带来了好多的派生类。那么多的类,那么复杂的树型结构,很恶心。
    当产品增加的时候,我的相应的工厂也增加,恶心。
 
    AbstractFactory:
    对FactoryMethod中的工厂进行抽象。产品种类增加是产品间总是能找到些相同之处进行抽象。而我的工厂的方法就是定义时返回这些抽象的产品接口,但是运行时返回的是产品的实例。工厂借口中的方法是返回"产品族“,产品进行了横向划分和纵向划分。
 
    Factory:
    传统的做法是谁消费 谁负责生产
    而工厂是消费产品对象的责任与创建产品对象的责任分开。
 
    好长时间没有更新了,这是我在qtec上写的   顺便贴一下吧
 
坚持做一件事情很难,我又是特别懒得那种人。这个帖子超常使劲没有更新了。总是给自己找些借口…………

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

刚开始接触这个东西,是超级菜鸟,写这个东西的感觉不亚于第一次吃螃蟹。希望大虾们能多多指点,最见的开发比较忙。我会在业余的时间慢慢写出来(我是一遍看,一边写,呵呵),希望我能坚持下来。就开这一个帖,以后的东西在这个帖子上慢慢修改笑脸 :)

 

SimpleFactory:

    Factory类里面有一个Static方法用来创建具体的产品(自行车,摩托车……),而这些具体产品都继承一个基类产品(抽象的车)。所以Static的方法的返回类型就是这个基类产品(抽象的车)(编译时)。而运行时返回的却是派生的实例(自行车,摩托车……)。
    优点:当消费者需要新的实例(滑板车)的时候,消费者无需改动。插入一个新的实例(滑板车),然后改动Factory的方法。一定程度上实现了“OCP”。
    缺点:1,Factory类成了万能类。
             2,产品的种类较多并且实现了不同的接口(两栖车--船的接口)的时候,对于判断是哪一种产 品将发生混乱。
   
 
    想起那个麦当劳的设计模式,可惜找不到了,谁要是有把它贴上。笑脸 :)
    mm喜欢麦当劳,每次带她去吃(消费产品),到了麦当劳,不是自己去做甜桶或者汉堡,而是排队叫服务(通过一个工厂来制造产品)。只要告诉漂亮的waiter你需要什么(通过静态的方法传递你想要产品的参数),waiter就会把你要的东西(不管是甜桶还是汉堡,都是麦当劳的产品,他们继承<麦当劳产品>的接口。)给你了(waiter用那个静态的方法,根据你传进来的参数,造出了你想要得汉堡和甜桶)。
 
FactoryMethod:
 
    这么长时间没有来更新,不好意思~~~~
    "其中一个重构的方法是--将条件转移语句改写成多态性"。
    SimpleFactory的方法就是靠一个switch来判断你想要哪种产品。将他改成多态,每一种产品都对应着一个工厂,产品都是继承自一个基类的,所以对应的工厂也都是继承自一个基类。工厂和产品是一一对应的。
     个人认为,那么一大堆得类,看起来真有点头大~~~~~~~~~~``
 
     又带mm去吃麦当劳,想不到麦当劳扩张了,好多新的东东可以吃。一个服务生不可能负责得了所有的产品。于是又专门负责甜桶的服务生,专门负责鸡翅的服务生****但是不管怎么说,这些服务生都是麦当劳的服务生(子工厂继承自工厂基类)。这些服务生提供的产品,也还是麦当劳的产品(产品也是继承自产品的基类)。mm说要吃甜桶(消费一种产品),我马上跑去找负责甜桶的服务生(子工厂)。mm好吃汉堡,我马上又跑去找负责汉堡的服务生~~~~~~~~~~~`
     从麦当劳出来,我已经被那些那么多的服务生和那么多的好吃的弄得头晕脑涨    困乏的笑脸 |-)困乏的笑脸 |-)
 
AbatractFactory:
   factorymethod中的工厂和产品是一一对应的关系。产品太多了,工厂也太多了,我们把它分类吧
   我们试着把跟不不同的分类方法把产品分类(横向的是产品族,纵向的是产品等级结构。),当然最后实际形成的产品结构只能是其中的一种分类方式(比如说是产品族)。而工厂的分类却是另一种分类方式(比如说是等级结构)(当然工厂的分类方式也是根据产品的分类方式来的,工厂就是要生产产品么)。这样工厂和产品不再是factorymethod中的一一对应的关系,而是不同根类方式上的交错。------上面的这些话有些拗口。我也不知道该如何更好的表达讽刺的笑脸 ^o)
      
     据说麦当劳和肯德及合并了----就像前段时间全国的大学都合并一样,麦当劳和肯德基来到中国也要学着中国的国情嘛,可以理解开口笑脸 :D泡mm就是不断的带她去吃麦当劳,来到合并后的麦肯,发现这里的产品种类多了。一种是鸡腿,另一种是可乐。鸡腿分两种--麦当劳的鸡腿和肯德基的鸡腿。可乐也分两种,一种是麦当劳的可乐,另一种是肯德基的可乐(废话)。而他们的服务业分两种,一种提供麦当劳的鸡腿和麦当劳的可乐,另一种提供肯德基的鸡腿和肯德基的可乐。---------看到工厂和产品的分类的不同了吧。
      mm要了一份麦当劳套餐=麦当劳可乐+麦当劳鸡腿,呼呼,看着mm心满意足的吃着,我也很高兴~~~~~~~~
 
Singleton:
      ensure a class has only a instance, and provide a global point of access to it.
      几乎在每一个应用程序中,都需要有一个从中进行全局访问和维护某种类型数据的区域。
      如果我们希望我们的实例可以被全局访问并且在整个application中只有一个此实例。则建议用singleton模式。
     
      mm当然只有偶一个男朋友(整个application中只有一个此实例),每次mm说“gg,我要去吃kfc”“gg,我要kitty的包包”,“gg,我要去ktv唱歌”,“gg,我要@#$%^&*()窘迫的笑脸 :$(别想歪了)”…………这些都是偶的事情。mm不能每次都new一个新gg的。
 
   singleton模式是我接触过的第一个模式,但是现在看来他的并不是我当初想象的那样简单。
    
class Singleton
{
      private static Singleton _instance = null;
      private Singleton(){}
      public static Singleton GetInstance
      {
            if( _instance==null )
            {
                      lock(typeof(Singleton))                      
                 {                                             
                           if(_instance==null)
                           {
                                 _instance = new Singleton();
                      }
                      }
            }
            return _instance;
      }
}
 
Multiton:
   singleton的实现的类中有一个以用本身的静态变量,如果我们把静态变量改写成维持静态变量的数组。呼呼…………
    比起singleton来,如果一个资源支持并发,但是这种资源比较昂贵,初始化这种资源需要很大力气。而系统又恰恰反复的使用这种资源。那么multiton就可以派上用场了。比如说连接池技术………………
   mm去了麦当劳就要这要那,没有办法,谁让俺心疼她呢。可是她还咄咄逼人。一会儿要俺给她买可乐,一会儿又要俺给她去那个汉堡,一会儿…………。其实俺是不想做这个滴,俺想做的是俺就做在mm身边,趁她吃汉堡的时候使劲往她身上靠(汗害羞 /:^$^ BS自己一下先),按这个时候就想,要是能有一大堆的俺在身边排队,一个负责卖汽水,一个负责排队领汉堡,一个负责专门往身上靠。哈哈,恩,那可以给这些克隆人装一个状态的属性,每次mm有新的任务,俺就从这一顿克隆人中找那个状态为“闲”得来听mm使唤。等他们忙完了就把状态修改为“闲”。然后放在那里等着,哈哈…………
 
 
16 giugno

SmartClient

刚开始接触,好像是这个样子-----------C/S结构的程序不再像以往那个样子用DCOM、CORBA、Java RMI来通讯,连Remoting都不用,而是用WebServices(实在是因为WebServices这东西在.net中封装的得太好,使用起来太方便了)。同时C端有一个程序可以探测新版本(不知道这功能是在c端还是在s端,或者是IE的技巧)。我觉得kugoo(那个音乐下载工具)早就是smartClient了,有一次打开kugoo竟然自动升级,不升级还不能用(当然好多的杀毒软件也早就是了)。还可以把c嵌入到IE里面,部署就容易多了。--------------------如有理解错误的地方。望各位大虾亲切指点。

 

昨天晚上问WH,他说ActiveX如果要与S端进行通讯,用Socket就是了。------我以前认为ActiveX也是通过IIS于S端进行通讯的---看来这个想法是错误的