摘要:在涉及Web前端开发时, 有时会遇到\uXXXX格式表示的字符, 其中XXXX是16进制数字的字符串表示形式, 在js中这个叫Unicode转义字符, 和\n\r同属于转义字符. 在其他语言中也有类似的, 可能还有其它变形的格式.多数时候遇到需要解码的情况多点, 所以会先介绍解码decode, 后介... 阅读全文
posted @ 2014-11-21 14:54 赵学智 阅读 (395) 评论 (0) 编辑
摘要:对于做ios的人来说,安装安卓开发环境,最好是在mac下安装了,我的mac是10.8.2,64位系统的安卓开发环境需要下面几个东西:1 jdk(mac下已经默认有了,可以在命令提示符下输入java -version验证一下)2 eclipse3 ADT不过不用单独下载eclipse和adt了,现在google提供的adt 下载地址,下载后会连eclipse也下载了,并且已经设置好了,好方便啊第一步,下载ADT Bundle,下载地址:http://developer.android.com/sdk/index.html下载的内容包括:Eclipse + ADT pluginAndroid SD 阅读全文
posted @ 2013-07-08 16:43 赵学智 阅读 (22008) 评论 (5) 编辑
摘要:关于IOS开发的内存管理的文章已经很多了,因此系统的知识点就不写了,这里我写点平时工作遇到的疑问以及解答做个总结吧,相信也会有人遇到相同的疑问呢,欢迎学习IOS的朋友请加ios技术交流群:190956763,共同学习,共同进步! 假如在.h文件里,定义一个变量@property(nonatomic,retain) AController *aController; 疑问1:创建对象时候,一般会使用alloc,new,copy或者mutalbeCopy等方法, 哪种写法是正确的? A self.aController=[[AControlleralloc] init]; B se... 阅读全文
posted @ 2013-07-06 18:59 赵学智 阅读 (1919) 评论 (1) 编辑
摘要:结论如下:1> 如果是在rootViewController中添加了方向控制,则他的子视图都默认继承rootViewController的方向控制子视图的解释是:1 如果rootviewcontroller是普通的uiviewcontroller,则通过presentViewController方法进来的也都叫做子视图,同时这种方法也受到info.plist的限制,他们是继承关系,也可以覆盖父类设置,但是覆盖范围只能越来越小2 >如果rootViewController是导航UINavigationController,又有2种情况:1通过push,进来的各种子页面,则必需在nav 阅读全文
posted @ 2013-06-02 19:29 赵学智 阅读 (5204) 评论 (3) 编辑
摘要:昨晚下班回家做地铁上,为了打发无聊的时间,看着窗外胡思乱想,偶然想起一个问题,为了学习一个新知识,我经常是怎么做的呢?回想一下,我的做法就是网上到处找资料,然后看来看去,最后感觉有点眉目了,就动手实践,在实践中发现和解决问题。这种方法貌似也没有错,但是这种方法貌似有点眉毛胡子一把抓的感觉,很容易一下子接收太多知识,很多看的也似懂非懂,最后虽然明白个大概,但是还是感觉有太多不理解的东西,那是不是有更好的学习方法或者途径呢? 我想或许这样去学习没准更好点!就是用提问-解答的方法,也可以叫做织网的方式,很多人包括我,也许都在有意识无意识的在用把。这种方式的大概思路也很简单:就是首先确定要学习什么知. 阅读全文
posted @ 2012-10-31 11:27 赵学智 阅读 (3821) 评论 (14) 编辑
摘要:在处理WCF异常的时候,有大概几种方式:第一种是在配置文件中,将includeExceptionDetailInFaults设置为true<behavior name="serviceDebuBehavior"><serviceDebug includeExceptionDetailInFaults="true" /></behavior>但是这种方式会导致敏感信息泄漏的危险,一般我们仅仅在调试的时候才开启该属性,如果已经发布,为了安全,我们一般会设置成false。第二种方法是自定义错误,通过FaultExceptio 阅读全文
posted @ 2012-10-26 18:27 赵学智 阅读 (4467) 评论 (7) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.htmlIBatis.Net中提供了方便的日志处理,可以引用IBatisNet.Common.Logging.Log4Net.dll写日志,当然IBatisNet.Common.dll这个是必须引用的。IBatis.Net处理日志不需要写代码实现,只需要配置就可以了,下面贴出Log4Net的配置文件Log4net.config,并加以解释。(这个文件一般放在站点根目录下,当然放其他目录下也行,只要能在程序运行时的global.asa的Application_ 阅读全文
posted @ 2012-10-24 16:11 赵学智 阅读 (3526) 评论 (4) 编辑
摘要:一、Linux下MemCached安装和启动如果是centos可以yum安装# yum install libevent-devel如果不支持yum的系统,可以这样装libevent# cd /usr/local/src # wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz # tar vxf libevent-1.4.12-stable.tar.gz # cd libevent-1.4.12 # ./configure --prefix=/usr/local/libevent # make && 阅读全文
posted @ 2012-07-16 14:02 赵学智 阅读 (3737) 评论 (0) 编辑
摘要:一、定义:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 二、意图: 1 为一个复杂子系统提供一个简单的接口 2 减少客户端和子系统的耦合 外观(Facade)模式是最简单的模式,我们在开发中不自觉的在使用外观模式,比如我们在三层结构中,DataAccessLayer,BusinessLayer,InterfaceLayer... 阅读全文
posted @ 2012-06-01 17:04 赵学智 阅读 (660) 评论 (0) 编辑
摘要:摘要: 查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html一、定义将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。二、应用场景当一个产品需要复杂的构造,但是构造过程是稳定的,只是构造的对象有不同表示时,就可以使用建造模式。三、代码实现class Product { IList<string> parts=new List<string>(); public void Add(string part) { ... 阅读全文
posted @ 2012-06-01 16:17 赵学智 阅读 (729) 评论 (0) 编辑
摘要:查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html一、定义定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。二、应用场景Template Method模式非常简单,但是在面向对象系统中有着大量的应用。比如我们先提供一个父类,然后先把固定不变的算法放在父类中实现,但是一些可变的行为就先不实现它,留给子类实现。这时候我们发布出去了,如果使用者需要扩展功能,则你可以继承这个抽象类,然后覆写里面的抽象方法或 阅读全文
posted @ 2012-06-01 14:27 赵学智 阅读 (1629) 评论 (0) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html成功是大部分人都梦想的,如果想成功,我们都需要些什么?下面是我的总结,正确不正确都请欢迎拍砖!一、 成功必须有正确的目标。 目标就像是航海的灯塔,如果没有,我们很容易迷失方向。目标也是动力的源泉,试想一下,比如我们跑步,如果我们目标都没有,可能跑几步觉得累,停下来休息了,如果我们目标是1500米,那我们可能就会呼呼的跑了1500米,停了下来休息,如果我们目标是10里地,我们可能真的超乎想象,跑完了10里地。 所以目标是成功第一因素,目标越大,人就会走 阅读全文
posted @ 2012-05-31 23:31 赵学智 阅读 (6957) 评论 (9) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html一、什么是原型模式?原型模式:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象原型模式(Prototype结构图)原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。二、原型模式代码实现:abstract class prototype{ private string id; public prototype(string id) { this.id = i... 阅读全文
posted @ 2012-05-18 18:00 赵学智 阅读 (984) 评论 (0) 编辑
摘要:查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html一、 什么是代理模式?代理模式,为其他对象提供一种代理以控制对这个对像的访问。代理模式结构图:二、 代理模式都用在一些什么场合?1. 远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在不两只的地址空间的事实。(他所使用到的例子。Webservice在.net 中的应用,当我应用程序的项目中加入一个Web引用,引用一个WebService,此时会在项目中生成一个Webreference的文件夹和一些文件,其实它们就是代 阅读全文
posted @ 2012-05-18 17:40 赵学智 阅读 (2135) 评论 (1) 编辑
摘要:查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html一、定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。二、概述应用场景: 1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。 2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。 3、 对客户隐藏具体策略(算法)的实现细节,彼此完全独立。三、代码实现需求:商场收费系统,根据商品的单价和数... 阅读全文
posted @ 2012-05-11 23:17 赵学智 阅读 (2219) 评论 (4) 编辑
摘要:查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html在工厂方法里讲到了加减乘除的例子,请查阅http://www.cnblogs.com/seesea125/archive/2012/05/02/2478981.html一、抽象工厂的定义提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。二、实现思路实现思路:如果说简单工厂与工厂方法是对同一个问题的两种不同的解决方法的话,抽象工厂就是解决一系列这种问题的方法。因为其主要的作用就是生产一系列相互依赖的对象,而不用去关心它们具体的实现 阅读全文
posted @ 2012-05-11 14:44 赵学智 阅读 (2392) 评论 (7) 编辑
摘要:查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html一、简单工厂和工厂方法定义:简单工厂模式是由一个工厂类根据参数来决定创立出哪一种产品类的实例。工厂方法模式通过调用不同的方法返回需要的类,而不是去实例化具体的类。 对实例创建进行了包装。 工厂方法是一组方法, 他们针对不同条件返回不同的类实例,这些类一般有共同的父类。工厂方法模式实施一种按需分配的策略, 即传入参数进行选择, 工厂方法根据参数进行选择,返回具体的实例。二、实例讲解:实现加减乘除程序需求:处理两个数的+,-,*,/等运算1. 是面向 阅读全文
posted @ 2012-05-02 14:16 赵学智 阅读 (3814) 评论 (4) 编辑
摘要:查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html一、面向对象的术语?1. 类 类作为设计蓝图来创建对象的代码段,它描述了对象的特征;该对象具有什么样的属性,怎样使用对象完成一些任务,他对事件进行怎样的响应等! 对象具有状态,一个对象用数据值来描述它的状态。 对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。 对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。 2. 对象 对象是类的一个实例,通常通过调用类的一个构造函数来创建它! 3. 方法 方法是在类中定义的... 阅读全文
posted @ 2012-04-20 10:50 赵学智 阅读 (3604) 评论 (2) 编辑
摘要:查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html动机:一个方法里的参数过长,过长的参数列导致方法很难使用,因为这些参数太长难以理解,而且调用者和被调用者都必须记住这些参数的用途,另一个原因是一旦需要更多数据,就可能要增加参数或者重载这个方法。所以消除过长参数往往能提高代码的可读性。方法:一、如果参数的值是通过调用某个函数的结果得来的,则去掉该参数,让接受该参数的函数直接调用该函数。二、如果这些参数是来自同一实体对象,则传递这个实体对象过去即可,如果这个实体不存在,那就先创建一个。注意:如果被调 阅读全文
posted @ 2012-04-17 23:06 赵学智 阅读 (4143) 评论 (5) 编辑
摘要:查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html动机:重命名是重构最基础的一个重构,也是最简单的重构,但是这个重构也是很重要的,它是让代码具有可读性的关键第一步,“要想成为一个真正的编程高手,起名的水平是至关重要的“,如果你看到一个函数名称不能很好的表达它的用途,应该马上加以修改,记住,你的代码首先是为人写的,其次才是为计算机写的。而人需要良好名称的函数。”方法:首先考虑给这个函数写上一句怎样的注释,然后想办法将注释函数名称。注意:一 不要怕名字长,长度不是问题,关键在于函数名称和函数本体之间 阅读全文
posted @ 2012-04-17 14:22 赵学智 阅读 (3224) 评论 (14) 编辑
摘要:本人致力于学习面向对象、设计模式、重构、极限编程、大型网站架构设计、管理等知识,希望有不正确之处多多指出,共同学习提高,为了方便查阅,特做出索引一页。序言WEB架构师成长之路之一-走正确的路WEB架构师成长之路之二-大牛的法宝WEB架构师成长之路之三-架构师都要懂哪些知识第一篇 设计模式什么是对象,为什么要面向对象,怎么才能面向对象?面向对象基础设计模式培训之一:为什么要用单例模式?设计模式培训之二:简单工厂、工厂方法设计模式培训之三:抽象工厂设计模式培训之四:策略模式设计模式培训之五:代理模式设计模式培训之六:原型模式设计模式培训之七:模版方法设计模式培训之八:建造者模式设计模式培训之九:外 阅读全文
posted @ 2012-04-17 10:39 赵学智 阅读 (16450) 评论 (4) 编辑
摘要:查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html我们在编程中最常用的模式就是单例模式了,然而单例模式都用在什么场合?为什么不用静态方法而要用单例模式呢?要搞清这些问题,需要从静态方法和非静态方法的区别和联系说起。一、静态方法常驻内存,非静态方法只有使用的时候才分配内存?一般都认为是这样,并且怕静态方法占用过多内存而建议使用非静态方法,其实这个理解是错误的。为什么会这样,先从内存分配开始说起:托管堆的定义:对于32位的应用程序来说,应用程序完成进程初始化后,CLR将在进程的可用地址空间分配一块保 阅读全文
posted @ 2012-04-05 17:31 赵学智 阅读 (32063) 评论 (37) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html Web架构师究竟都要学些什么?具备哪些能力呢?先网上查查架构师的大概的定义,参见架构师修炼之道这篇文章,写的还不错,再查查公司招聘Web架构师的要求。 总结起来大概有下面几点技能要求:一、架构师有优秀的编码能力,解决开发人员无法解决的难题。二、架构师对系统的大数据容量高性能高并发高容错的网站有架构设计和开发经验。三、架构师对操作系统、数据库、服务器各种软件使用的配置比较了解,比如Linux、Web负载均衡、反向代理、数据库集群、容灾等比较了解。四、 阅读全文
posted @ 2012-04-04 16:49 赵学智 阅读 (28233) 评论 (25) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html一、 面向对象,这个对象到底是什么? 这个对象不是C#中的实例,C#中我们把一个类的实例也叫做对象,这种对象严格的说应该是面向对象的编程实现(OOP)中的对象,面向对象编程,也不是面向类的实例编程。对象的定义是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。也有的定义为“一切都是对象”然而面向对象也不能简单的等价理解成面向任何事物编程,面对一切编程?开玩笑,呵呵。因此面向对象 阅读全文
posted @ 2012-04-03 18:55 赵学智 阅读 (62649) 评论 (17) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html 要成为WEB架构师,首先要找到通往成功的正确方向,详见第一篇,WEB架构师成长之路http://www.cnblogs.com/seesea125/archive/2012/03/30/2425281.html,接下来我们就要往这个方向努力。然而如唐僧去西天取经一样,要历经种种磨难,一路上打败各种妖魔鬼怪才能继续前行,所以唐僧取经,第一件事,就是招徒弟,遇见妖魔鬼怪就让技术高超的徒弟打败它,徒弟不听话就念紧箍咒,徒弟也搞不定的妖怪,就请观音菩萨搞定 阅读全文
posted @ 2012-04-02 23:36 赵学智 阅读 (11448) 评论 (15) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路,如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员们,你们有没有下面几种感觉?一、 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。二、 我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Jquery用的人最近比较多啊,听说最近MV 阅读全文
posted @ 2012-03-30 14:48 赵学智 阅读 (63743) 评论 (90) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html下面介绍一下MySQL-Cluster7.2.5安装和配置,按照此步骤本人已配置成功,如有疑问请联系我环境:一台10.32.33.120 做一个数据节点,SQL节点,管理节点一台 10.32.34.116 做一个数据节点,SQL节点。操作系统都是 CentOS5.4 64位。一 下载MySql Cluster7.2.5http://www.mysql.com/downloads/cluster/注:如果已经存在MySql,需要先删除,方法:如果能联网 阅读全文
posted @ 2012-03-28 14:50 赵学智 阅读 (19115) 评论 (3) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html安装Php的人目的不同,如果是开发人员,不是专门的DBA,只是想安装PHP和MySql,然后迅速转入编程工作,自然对Linux以及配置都不熟悉,这种情况下,如果从Apache开始都重新安装,则需要各种包的下载和配置,而且各种包还互相具有依赖性,对于菜鸟来说无疑是一场噩梦,我就是这种情况,一开始想认真了解下这些软件的安装和配置,但是这样害我折腾2,3天,还是没有配置好,几乎灰心绝望,最后转变思路,用最简单的方法安装和配置成功,这样对于初学Linux,也 阅读全文
posted @ 2012-03-17 15:46 赵学智 阅读 (6443) 评论 (1) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.htmlIBatis.net官方下载地址:http://www.mybatis.org/IBatis.net作用是把数据库查询与对象的属性间建立映射关系。但它并不是一个实体关系映射工具,仅用于帮助程序人员建立实体和SQL语句或者存储过程间的映射。因此只能叫半自动OR/M工具。IBatis.net的配置:一、引用几个DLL,注意在数据层引用即可。单独使用映射的情况下,只需要引用IBatisNet.DataMapper.dll就可以了其中IBatisNet.Co 阅读全文
posted @ 2012-03-02 18:07 赵学智 阅读 (5964) 评论 (1) 编辑
摘要:查看文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html 第一次使用VmWare和CentOS6,中间遇到不少问题,记性不好,还是记下来留作以后查看,也方便遇到这些问题的朋友能做个参考:),我的操作系统是WIN7旗舰版,VMware版本是VMware-workstation-full-7.1.0,CentOS的版本是CentOS-6.0-i386,32位的(注意如果Windows本身是32位的,CentOS版本也应该选择32位的,否则会提示不支持,也可能装上也能用,但为了不引起不必要的麻烦,就装32位的. 阅读全文
posted @ 2012-02-25 23:35 赵学智 阅读 (52214) 评论 (5) 编辑