当前位置: 首页 > 2014年3月发布的所有日志
  • 13种编程语言名称的来历

    可能程序员们都认为编写代码时给变量取名是件烦人的事,不过他们还需要给另外一个东西取名,那就是新的编程语言。编程语言命名通常有几个规律,如根据特性取缩写(如BASIC,COBOL,TCL和LISP),以已有的语言为基础(如C++,C#和CoffeeScript),或直接是数学和计算机领域杰出人物的名字(如Ada,Pascal和Turing)。有时,设计者取名时更充满想象力。下面是13个意味深长的名字,以及它们背后的故事。

    Python

    于20世纪80年代末,由GuidovanRossum发明,初衷据说是为了打发圣诞节的无趣,1991年首次发布,是ABC语言的继承,同时也是一种脚本语言,目前已经很流行。取名时,GuidovanRossum认为它应该“短小,独特,还有一点神秘感”,他是英国著名剧团MontyPython的忠实粉丝,所以就是Python了。

    Java

    于20世纪90年代初期诞生,源自Sun公司的智能家电程序开发,如互动电视。最初名为Oak,不过Sun公司的律师发现这个名字已经被注册。通过一系列的会议,公司从一个包含有Silk,DNA和Java的名单中选择了它。是谁第一个建议使用Java这个名字的不得而知,不过普遍猜测是灵感来自Peet咖啡店,因为Sun公司的工程师们很喜欢到这里喝咖啡。

    Forth

    于20世纪60年代,由CharlesMoore创造。1968年CharlesMoore在一家名为Mohasco的家装公司工作,只有一台最多2250图形显示点数的IBM1130微型计算机,不过却要用它来设计地毯,而FORTRAN却不能满足要求,所以他发明了Forth。最初其名为Fourth,不巧,IBM1130最多支持5个字符的文件名,“u”去而“Forth”生。

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 标签:, , ,
  • C#23种设计模式汇总

    创建型模式

    工厂方法(Factory Method)
    在工厂方法模式中,工厂方法用来创建客户所需要的产品,同时还向客户隐藏了哪种具体产品类将被实例化这一细节。工厂方法模式的核心是一个抽象工厂类,各种具体工厂类通过抽象工厂类将工厂方法继承下来。如此使得客户可以只关心抽象产品和抽象工厂,完全不用理会返回的是哪一种具体产品,也不用关系它是如何被具体工厂创建的。

    抽象工厂模式(Abstract Factory)
    抽象工厂模式的主要优点是隔离了具体类的生成,使得客户不需要知道什么被创建了。犹豫这种隔离,更换一个具体工厂就变得相对容易。所有的具体工厂都实现了抽象工厂中定义的那些公共接口,因此只需改变具体工厂的实例,就可以在某种程度上改变这个软件的系统的行为。另外,应用抽象工厂模式符合GRASP纯虚构的模式,可以实现高内聚低耦合的设计目的,因此抽象工厂模式得到了广泛应用。

    建造者模式(Builder Pattern)
    建造者模式将一个复杂对象的生成责任作了很好的分配。它把构造过程放在指挥者的方法中,把装配过程放到具体建造者类中。建造者模式的产品之间都有共通点,但有时候,产品之间的差异性很大,这就需要借助工厂方法模式或抽象工厂模式。另外,如果产品的内部变化复杂,Builder的每一个子类都需要对应到不同的产品去做构建的动作、方法,这就需要定义很多个具体建造类来实现这种变化。

    单件模式(Single Pattern)
    Singleton单例模式为一个面向对象的应用程序提供了对象唯一的访问点,不管它实现何种功能,此种模式都为设计及开发团队提供了共享的概念。然而,Singleton对象类派生子类就有很大的困难,只有在父类没有被实例化时才可以实现。值得注意的是,有些对象不可以做成Singleton,比如。net的数据库链接对象(Connection),整个应用程序同享一个Connection对象会出现连接池溢出错误。另外,。net提供了自动废物回收的技术,因此,如果实例化的对象长时间不被利用,系统会认为它是废物,自动消灭它并回收它的资源,下次利用时又会重新实例化,这种情况下应注意其状态的丢失。

    原型模式(Protype Pattern)
    原型模式得到了广泛的应用,特别是在创建对象成本较大的情况下(初始化需占用较长时间,占用太多CPU资源或网络资源。比如通过Webservice或DCOM创建对象,或者创建对象要装载大文件),系统如果需要重复利用,新的对象可以通过原型模式对已有对象的属性进行复制并稍作修改来取得。另外,如果系统要保存对象的状态而对象的状态变化很小,或者对象本身占内存不大的时候,也可以用原型模式配合备忘录模式来应用。相反地,如果对象的状态变化很大,或者对象占用内存很大,那么采用状态模式会比原型模式更好。原型模式的缺点是在实现深层复制时需要编写复杂的代码。

    阅读全文
    作者:驽鸟 | 分类:dotNet, 电脑网络 | 标签:, , ,
  • Git 认识以及安装配置

    git 简介

    Git是用C语言开发的分布版本控制系统。版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态)。另一个状态可以是不同的文件,也可以是不同的文件内容。举个例子,你可以将文件集合转换到两天之前的状态,或者你可以在生产代码和实验性质的代码之间进行切换。文件集合往往被称作是“源代码”。在一个分布版本控制系统中,每个人都有一份完整的源代码(包括源代码所有的历史记录信息),而且可以对这个本地的数据进行操作。分布版本控制系统不需要一个集中式的代码仓库。

    当你对本地的源代码进行了修改,你可以标注他们跟下一个版本相关(将他们加到index中),然后提交到仓库中来(commit)。Git保存了所有的版本信息,所以你可以转换你的源代码到任何的历史版本。你可以对本地的仓库进行代码的提交,然后与其他的仓库进行同步。你可以使用Git来进行仓库的克隆(clone)操作,完整的复制一个已有的仓库。仓库的所有者可以通过push操作(推送变更到别处的仓库)或者Pull操作(从别处的仓库拉取变更)来同步变更。

    Git支持分支功能(branch)。如果你想开发一个新的产品功能,你可以建立一个分支,对这个分支的进行修改,而不至于会影响到主支上的代码。

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 标签:, ,