04 2016 档案

摘要:介绍 最近几个月忙得实在是不可开交,终于把《深入理解JavaScript系列》的最后两篇“补全”了,所谓的全是不准确的,因为很多内容都没有写呢,比如高性能、Ajax安全、DOM详解、JavaScript架构等等。但因为经历所限,加上大叔希望接下来写点其它东西,所以此篇文字就暂且当前完结篇的总结吧,以 阅读全文
posted @ 2016-04-29 17:15 爱你爱自己 阅读(190) 评论(0) 推荐(0)
摘要:介绍 本篇我们介绍的一些模式称为初始化模式和性能模式,主要是用在初始化以及提高性能方面,一些模式之前已经提到过,这里只是做一下总结。 立即执行的函数 在本系列第4篇的《立即调用的函数表达式》中,我们已经对类似的函数进行过详细的描述,这里我们只是再举两个简单的例子做一下总结。 立即执行的对象初始化 该 阅读全文
posted @ 2016-04-29 17:14 爱你爱自己 阅读(197) 评论(0) 推荐(0)
摘要:介绍 本篇主要是介绍Function方面使用的一些技巧(上篇),利用Function特性可以编写出很多非常有意思的代码,本篇主要包括:回调模式、配置对象、返回函数、分布程序、柯里化(Currying)。 回调函数 在JavaScript中,当一个函数A作为另外一个函数B的其中一个参数时,则函数A称为 阅读全文
posted @ 2016-04-29 17:13 爱你爱自己 阅读(282) 评论(0) 推荐(0)
摘要:介绍 本篇主要是介绍创建对象方面的模式,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。 模式1:命名空间(namespace) 命名空间可以减少全局命名所需的数量,避免命名冲突或过度。一般我们在进行对象层级定义的时候,经常是这样的: 如果层级很多的话,那就要一直这样继续下去,很是混乱 阅读全文
posted @ 2016-04-29 17:12 爱你爱自己 阅读(255) 评论(0) 推荐(0)
摘要:介绍 本篇主要是介绍创建对象方面的模式的下篇,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。 模式6:函数语法糖 函数语法糖是为一个对象快速添加方法(函数)的扩展,这个主要是利用prototype的特性,代码比较简单,我们先来看一下实现代码: 扩展对象的时候,可以这么用: 这样就给P 阅读全文
posted @ 2016-04-29 17:12 爱你爱自己 阅读(232) 评论(0) 推荐(0)
摘要:介绍 任何编程都提出代码复用,否则话每次开发一个新程序或者写一个新功能都要全新编写的话,那就歇菜了,但是代码复用也是有好要坏,接下来的两篇文章我们将针对代码复用来进行讨论,第一篇文避免篇,指的是要尽量避免使用这些模式,因为或多或少有带来一些问题;第二排是推荐篇,指的是推荐大家使用的模式,一般不会有什 阅读全文
posted @ 2016-04-29 17:11 爱你爱自己 阅读(321) 评论(0) 推荐(0)
摘要:介绍 本文介绍的四种代码复用模式都是最佳实践,推荐大家在编程的过程中使用。 模式1:原型继承 原型继承是让父对象作为子对象的原型,从而达到继承的目的: 同时,ECMAScript5也提供了类似的一个方法叫做Object.create用于继承对象,用法如下: 而且,也可以更细粒度地在第二个参数上定义属 阅读全文
posted @ 2016-04-29 17:11 爱你爱自己 阅读(236) 评论(0) 推荐(0)
摘要:介绍 桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化。 正文 桥接模式最常用在事件监控上,先看一段代码: 上述代码,有个问题就是getBeerById必须要有浏览器的上下文才能使用,因为其内部使用了this.id这个属性,如果没用上下文,那就歇菜了。所以说一般稍微有经验 阅读全文
posted @ 2016-04-29 17:10 爱你爱自己 阅读(327) 评论(0) 推荐(0)
摘要:介绍 状态模式(State)允许一个对象在其内部状态改变的时候改变它的行为,对象看起来似乎修改了它的类。 正文 举个例子,就比如我们平时在下载东西,通常就会有好几个状态,比如准备状态(ReadyState)、下载状态(DownloadingState)、暂停状态(DownloadPausedStat 阅读全文
posted @ 2016-04-29 17:09 爱你爱自己 阅读(192) 评论(0) 推荐(0)
摘要:介绍 原型模式(prototype)是指用原型实例指向创建对象的种类,并且通过拷贝这些原型创建新的对象。 正文 对于原型模式,我们可以利用JavaScript特有的原型继承特性去创建对象的方式,也就是创建的一个对象作为另外一个对象的prototype属性值。原型对象本身就是有效地利用了每个构造器创建 阅读全文
posted @ 2016-04-29 17:08 爱你爱自己 阅读(209) 评论(0) 推荐(0)
摘要:介绍 模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法是一种代码复用的基本技术,在类库中尤为重要,因为他们提取了类库中的公共行为。模板方法导致一种反向的控制结构,这种结构 阅读全文
posted @ 2016-04-29 17:07 爱你爱自己 阅读(228) 评论(0) 推荐(0)
摘要:介绍 组合模式(Composite)将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 常见的场景有asp.net里的控件机制(即control里可以包含子control,可以递归操作、添加、删除子control),类似的还有DOM的机制,一个 阅读全文
posted @ 2016-04-29 17:07 爱你爱自己 阅读(231) 评论(0) 推荐(0)
摘要:介绍 适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。速成包装器(wrapper)。 正文 我们来举一个例子,鸭子(Dock)有飞(fly)和嘎嘎叫(quack) 阅读全文
posted @ 2016-04-29 17:06 爱你爱自己 阅读(153) 评论(0) 推荐(0)
摘要:介绍 职责链模式(Chain of responsibility)是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。 也就是说,请求以后,从第一个对象开始,链中收到请求的对象要么亲自处理它,要么转发给链中 阅读全文
posted @ 2016-04-29 17:06 爱你爱自己 阅读(230) 评论(0) 推荐(0)
摘要:介绍 中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 主要内容来自:http://www.addyosmani.com/resources/essentialjsdesignpattern 阅读全文
posted @ 2016-04-29 17:05 爱你爱自己 阅读(230) 评论(0) 推荐(0)
摘要:介绍 享元模式(Flyweight),运行共享技术有效地支持大量细粒度的对象,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类)。 享元模式可以避免大量非常相似类的开销,在程序设计中,有时需要生产大量细粒度的类实例来表示数据,如果能发现这些实例除了几个参数以外,开销基本相同的 阅读全文
posted @ 2016-04-29 17:05 爱你爱自己 阅读(207) 评论(0) 推荐(0)
摘要:介绍 命令模式(Command)的定义是:用于将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及执行可撤销的操作。也就是说改模式旨在将函数的调用、请求和操作封装成一个单一的对象,然后对这个对象进行一系列的处理。此外,可以通过调用实现具体函数的对象来解耦 阅读全文
posted @ 2016-04-29 17:04 爱你爱自己 阅读(178) 评论(0) 推荐(0)
摘要:介绍 迭代器模式(Iterator):提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示。 迭代器的几个特点是: 正文 一般的迭代,我们至少要有2个方法,hasNext()和Next(),这样才做做到遍历所有对象,我们先给出一个例子: 使用方法和平时C#里的方式是一样的: 当然,你也可 阅读全文
posted @ 2016-04-29 17:04 爱你爱自己 阅读(206) 评论(0) 推荐(0)
摘要:介绍 观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。 使用观察者模式的好处: 正文(版本一) JS里对观察者模式的实现是通过回调来实现 阅读全文
posted @ 2016-04-29 17:03 爱你爱自己 阅读(218) 评论(0) 推荐(0)
摘要:介绍 策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。 正文 在理解策略模式之前,我们先来一个例子,一般情况下,如果我们要做数据合法性验证,很多时候都是按照swith语句来判断,但是这就带来几个问题,首先如果增加需求的话,我们还要再次修改这段 阅读全文
posted @ 2016-04-29 17:03 爱你爱自己 阅读(202) 评论(0) 推荐(0)
摘要:介绍 代理,顾名思义就是帮助别人做事,GoF对代理模式的定义如下: 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 代理模式使得代理对象控制具体对象的引用。代理几乎可以是任何对象:文件,资源,内存中的对象,或者是一些难以复制的东西。 正文 我们来举一个简单的例子,假如dudu 阅读全文
posted @ 2016-04-29 17:02 爱你爱自己 阅读(246) 评论(0) 推荐(0)
摘要:介绍 装饰者提供比继承更有弹性的替代方案。 装饰者用用于包装同接口的对象,不仅允许你向方法添加行为,而且还可以将方法设置成原始对象调用(例如装饰者的构造函数)。 装饰者用于通过重载方法的形式添加新功能,该模式可以在被装饰者前面或者后面加上自己的行为以达到特定的目的。 正文 那么装饰者模式有什么好处呢 阅读全文
posted @ 2016-04-29 17:01 爱你爱自己 阅读(223) 评论(0) 推荐(0)
摘要:介绍 外观模式(Facade)为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口值得这一子系统更加容易使用。 正文 外观模式不仅简化类中的接口,而且对接口与调用者也进行了解耦。外观模式经常被认为开发者必备,它可以将一些复杂操作封装起来,并创建一个简单的接口用于调用。 外观模 阅读全文
posted @ 2016-04-29 17:01 爱你爱自己 阅读(166) 评论(0) 推荐(0)
摘要:介绍 与创建型模式类似,工厂模式创建对象(视为工厂里的产品)时无需指定创建对象的具体类。 工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。该模式使一个类的实例化延迟到了子类。而子类可以重写接口方法以便创建的时候指定自己的对象类型。 这个模式十分有用,尤其是创建对象的流程赋值的时 阅读全文
posted @ 2016-04-29 17:00 爱你爱自己 阅读(227) 评论(0) 推荐(0)
摘要:介绍 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳 阅读全文
posted @ 2016-04-29 16:59 爱你爱自己 阅读(179) 评论(0) 推荐(0)
摘要:介绍 从本章开始,我们会逐步介绍在JavaScript里使用的各种设计模式实现,在这里我不会过多地介绍模式本身的理论,而只会关注实现。OK,正式开始。 在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个 阅读全文
posted @ 2016-04-29 16:58 爱你爱自己 阅读(249) 评论(0) 推荐(0)
摘要:介绍 构造函数大家都很熟悉了,不过如果你是新手,还是有必要来了解一下什么叫构造函数的。构造函数用于创建特定类型的对象——不仅声明了使用的对象,构造函数还可以接受参数以便第一次创建对象的时候设置对象的成员值。你可以自定义自己的构造函数,然后在里面声明自定义类型对象的属性或方法。 基本用法 在JavaS 阅读全文
posted @ 2016-04-29 16:58 爱你爱自己 阅读(191) 评论(0) 推荐(0)
摘要:介绍 上一章我们介绍了JavaScript的基本内容和DOM对象的各个方面,包括如何访问node节点。本章我们将讲解如何通过DOM操作元素并且讨论浏览器事件模型。 本文参考:http://net.tutsplus.com/tutorials/javascript-ajax/javascript-an 阅读全文
posted @ 2016-04-29 16:57 爱你爱自己 阅读(218) 评论(0) 推荐(0)
摘要:文档对象模型Document Object Model DOM(Document Object Model,文档对象模型)是一个通过和JavaScript进行内容交互的API。Javascript和DOM一般经常作为一个整体,因为Javascript通常都是用来进行DOM操作和交互的。 主要内容来自 阅读全文
posted @ 2016-04-29 16:56 爱你爱自己 阅读(251) 评论(0) 推荐(0)
摘要:前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第4篇,接口隔离原则ISP(The Interface Segregation Principle)。 接口隔离原则的描述是: 当用户依赖的接口方法即便只被别的用户使用而自己不用,那它也得实现这些接口,换而言之,一个用户 阅读全文
posted @ 2016-04-29 16:55 爱你爱自己 阅读(306) 评论(0) 推荐(0)
摘要:前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第5篇,依赖倒置原则LSP(The Dependency Inversion Principle )。 依赖倒置原则 依赖倒置原则的描述是: 依赖倒置原则的最重要问题就是确保应用程序或框架的主要组件从非重要的底层组件实现 阅读全文
posted @ 2016-04-29 16:55 爱你爱自己 阅读(244) 评论(0) 推荐(0)
摘要:题目1 代码看起来是想说:如果window不包含属性a,就声明一个变量a,然后赋值为1。 你可能认为alert出来的结果是1,然后实际结果是“undefined”。要了解为什么,我们需要知道JavaScript里的3个概念。 首先,所有的全局变量都是window的属性,语句 var a = 1;等价 阅读全文
posted @ 2016-04-29 16:54 爱你爱自己 阅读(220) 评论(0) 推荐(0)
摘要:介绍 本章是关于ECMAScript面向对象实现的第2篇,第1篇我们讨论的是概论和CEMAScript的比较,如果你还没有读第1篇,在进行本章之前,我强烈建议你先读一下第1篇,因为本篇实在太长了(35页)。 注:由于篇幅太长了,难免出现错误,时刻保持修正中。 在概论里,我们延伸到了ECMAScrip 阅读全文
posted @ 2016-04-29 16:52 爱你爱自己 阅读(235) 评论(0) 推荐(0)
摘要:介绍 本章,我们将讲解在ECMAScript向函数function传递参数的策略。 计算机科学里对这种策略一般称为“evaluation strategy”(大叔注:有的人说翻译成求值策略,有的人翻译成赋值策略,通看下面的内容,我觉得称为赋值策略更为恰当,anyway,标题还是写成大家容易理解的求值 阅读全文
posted @ 2016-04-29 16:52 爱你爱自己 阅读(330) 评论(0) 推荐(0)
摘要:介绍 在本篇文章,我们考虑在ECMAScript中的面向对象编程的各个方面(虽然以前在许多文章中已经讨论过这个话题)。我们将更多地从理论方面看这些问题。 特别是,我们会考虑对象的创建算法,对象(包括基本关系 - 继承)之间的关系是如何,也可以在讨论中使用(我希望将消除之前对于JavaScript中O 阅读全文
posted @ 2016-04-29 16:51 爱你爱自己 阅读(209) 评论(0) 推荐(0)
摘要:介绍 本章节我们要着重介绍的是一个非常常见的ECMAScript对象——函数(function),我们将详细讲解一下各种类型的函数是如何影响上下文的变量对象以及每个函数的作用域链都包含什么,以及回答诸如像下面这样的问题:下面声明的函数有什么区别么?(如果有,区别是什么)。 平时的惯用方式: 或者,下 阅读全文
posted @ 2016-04-29 16:50 爱你爱自己 阅读(277) 评论(0) 推荐(0)
摘要:介绍 本章我们将介绍在JavaScript里大家经常来讨论的话题 —— 闭包(closure)。闭包其实大家都已经谈烂了。尽管如此,这里还是要试着从理论角度来讨论下闭包,看看ECMAScript中的闭包内部究竟是如何工作的。 正如在前面的文章中提到的,这些文章都是系列文章,相互之间都是有关联的。因此 阅读全文
posted @ 2016-04-29 16:50 爱你爱自己 阅读(302) 评论(0) 推荐(0)
摘要:前言 在第12章关于变量对象的描述中,我们已经知道一个执行上下文 的数据(变量、函数声明和函数的形参)作为属性存储在变量对象中。 同时我们也知道变量对象在每次进入上下文时创建,并填入初始值,值的更新出现在代码执行阶段。 这一章专门讨论与执行上下文直接相关的更多细节,这次我们将提及一个议题——作用域链 阅读全文
posted @ 2016-04-29 16:49 爱你爱自己 阅读(293) 评论(0) 推荐(0)
摘要:介绍 JavaScript编程的时候总避免不了声明函数和变量,以成功构建我们的系统,但是解释器是如何并且在什么地方去查找这些函数和变量呢?我们引用这些对象的时候究竟发生了什么? 大多数ECMAScript程序员应该都知道变量与执行上下文有密切关系: 并且,很多程序员也都知道,当前ECMAScript 阅读全文
posted @ 2016-04-29 16:48 爱你爱自己 阅读(256) 评论(0) 推荐(0)
摘要:介绍 在这篇文章里,我们将讨论跟执行上下文直接相关的更多细节。讨论的主题就是this关键字。实践证明,这个主题很难,在不同执行上下文中this的确定经常会发生问题。 许多程序员习惯的认为,在程序语言中,this关键字与面向对象程序开发紧密相关,其完全指向由构造器新创建的对象。在ECMAScript规 阅读全文
posted @ 2016-04-29 16:48 爱你爱自己 阅读(190) 评论(0) 推荐(0)
摘要:本篇是ECMA-262-3 in detail系列的一个概述(本人后续会翻译整理这些文章到本系列(第11-19章)。每个章节都有一个更详细的内容链接,你可以继续读一下每个章节对应的详细内容链接进行更深入的了解。 适合的读者:有经验的开发员,专业前端人员。 我们首先来看一下对象[Object]的概念, 阅读全文
posted @ 2016-04-29 16:46 爱你爱自己 阅读(185) 评论(0) 推荐(0)
摘要:简介 从本章开始,我将陆续(翻译、转载、整理)http://dmitrysoshnikov.com/网站关于ECMAScript标标准理解的好文。 本章我们要讲解的是ECMAScript标准里的执行上下文和相关可执行代码的各种类型。 定义 每次当控制器转到ECMAScript可执行代码的时候,即会进 阅读全文
posted @ 2016-04-29 16:46 爱你爱自己 阅读(323) 评论(0) 推荐(0)
摘要:前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第3篇,里氏替换原则LSP(The Liskov Substitution Principle )。 开闭原则的描述是: 在面向对象编程里,继承提供了一个机制让子类和共享基类的代码,这是通过在基类型里封装通用的数据和行为 阅读全文
posted @ 2016-04-29 16:44 爱你爱自己 阅读(301) 评论(0) 推荐(0)
摘要:前言 写这篇文章的目的是经常看到开发人员说:把字符串转化为JSON对象,把JSON对象转化成字符串等类似的话题,所以把之前收藏的一篇老外的文章整理翻译了一下,供大家讨论,如有错误,请大家指出,多谢。 正文 本文的主题是基于ECMAScript262-3来写的,2011年的262-5新规范增加了JSO 阅读全文
posted @ 2016-04-29 16:44 爱你爱自己 阅读(232) 评论(1) 推荐(0)
摘要:前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第2篇,开闭原则OCP(The Open/Closed Principle )。 开闭原则的描述是: open for extension(对扩展开放)的意思是说当新需求出现的时候,可以通过扩展现有模型达到目的。而Clo 阅读全文
posted @ 2016-04-29 16:42 爱你爱自己 阅读(382) 评论(0) 推荐(0)
摘要:前言 Bob大叔提出并发扬了S.O.L.I.D五大原则,用来更好地进行面向对象编程,五大原则分别是: 五大原则,我相信在博客园已经被讨论烂了,尤其是C#的实现,但是相对于JavaScript这种以原型为base的动态类型语言来说还为数不多,该系列将分5篇文章以JavaScript编程语言为基础来展示 阅读全文
posted @ 2016-04-29 16:40 爱你爱自己 阅读(310) 评论(0) 推荐(0)
摘要:前言 JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型。 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大。实现传统的类继承模型是很简单,但是实现 JavaScript 中的原型继承则要困难的多。 由于 Jav 阅读全文
posted @ 2016-04-29 16:39 爱你爱自己 阅读(221) 评论(0) 推荐(0)
摘要:前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行。在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法也不一定完全对,主要是看个人如何理解,因为有的人说立即调用,有的人说自动执行,所以你完全可以按照你自己的理解来取一个名字 阅读全文
posted @ 2016-04-29 16:38 爱你爱自己 阅读(307) 评论(0) 推荐(0)
摘要:前言 网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点。 简单的说,命名函数表达式只有一个用户,那就是在Debug或者Profiler分析的时候来描述函数的名称,也可以使用函数名 阅读全文
posted @ 2016-04-29 16:37 爱你爱自己 阅读(317) 评论(0) 推荐(0)
摘要:简介 Module模式是JavaScript编程中一个非常通用的模式,一般情况下,大家都知道基本用法,本文尝试着给大家更多该模式的高级使用方式。 首先我们来看看Module模式的基本特征: 关于Module模式,最早是由YUI的成员Eric Miraglia在4年前提出了这个概念,我们将从一个简单的 阅读全文
posted @ 2016-04-29 16:37 爱你爱自己 阅读(266) 评论(0) 推荐(0)
摘要:才华横溢的Stoyan Stefanov,在他写的由O’Reilly初版的新书《JavaScript Patterns》(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会是件很美妙的事情。具体一点就是编写高质量JavaScript的一些要素,例如避免全局变量,使用单变量声明,在循环 阅读全文
posted @ 2016-04-29 16:36 爱你爱自己 阅读(222) 评论(0) 推荐(0)
摘要:本系列内容为本人平时项目实践和参照MDN,MSDN,《javascript语言精粹》,《Effective Javascript》等资料,并且整理自己EverNote的日常积累整理所写,时间太长有一些代码样例来源不可考。本系列不允许任何形式的转载,谢谢。 from yeanzhi 大纲 第一天:ja 阅读全文
posted @ 2016-04-29 16:25 爱你爱自己 阅读(234) 评论(0) 推荐(0)
摘要:说明 本系列属于进阶系列,语常用语法等不在本系列介绍范围之内。 在我刚开始做一个程序员并开发项目的时候,我总是喜欢使用开发语言的各种特性,每次m$发布新版C#的时候我总是会把开发者预览版下好,亲自体验,并期望从中获得快感,每次使用新的语言进行程序设计的时候,我总是喜欢掌控他有趣的地方,尽管很多与软件 阅读全文
posted @ 2016-04-29 16:24 爱你爱自己 阅读(378) 评论(0) 推荐(0)
摘要:问题描述 以前的文章中《 PHP微信墙制作,开源 》已经用PHP搭建了一个微信墙获取信息的服务器,然后我就在想推送技术应该怎么解决,上一篇已经用了.NET 的signalr做了一个微信墙,PHP一直没什么好思路,本来想用websocket,但自己写socket要解析websocket协议,PHP有一 阅读全文
posted @ 2016-04-29 16:21 爱你爱自己 阅读(1191) 评论(1) 推荐(0)
摘要:phpstorm&Laravel PHPstorm是我见过的最好的PHP的IDE,前年用的时候就毫不犹豫的抛弃了zend studio :) ,Laravel是我用过最好的框架,除了做手游后台这类有高并发需求的项目的时候会使用swoole,像yii,thinkPHP,zend之类已经直接不在项目中用 阅读全文
posted @ 2016-04-29 16:20 爱你爱自己 阅读(3388) 评论(0) 推荐(0)
摘要:微信墙 上一篇文章中已经用PHP搭建了一个微信墙获取信息的服务器,我这里使用微软的signalr搭建一个客户端,signalr是一个为开发者开发实时应用的 一个库文件,支持windows server 2008 r2+,win7,win8 windows azure,可以使用iis8托管,iis7必 阅读全文
posted @ 2016-04-29 16:20 爱你爱自己 阅读(1178) 评论(0) 推荐(0)
摘要:问题描述 Laravel是PHP下当今最受欢迎的web应用开发框架,github上start数远超第二名Symfony,以前我用这个框架做项目的时候通常就是扔到apache里面,然后配置.htaccess文件移除路由里面的public字样,达到Pretty URLs效果,这这两天在完善各个版本的微信 阅读全文
posted @ 2016-04-29 16:19 爱你爱自己 阅读(1583) 评论(0) 推荐(0)
摘要:微信墙 PHP 注意:由于微信官网不定时会更新,其中模拟登陆以及爬取数据的方式可能会失效,最近这12个月里,就有两次更新导致此功能需要重写。 服务端源码->github地址传送门 思路 其实实现思路就是通过模拟登陆的方式登录到微信平台,然后通过正则表达式获取指定的内容放到数据库里面,同时这个操作要在 阅读全文
posted @ 2016-04-29 16:18 爱你爱自己 阅读(259) 评论(0) 推荐(0)
摘要:第一章 针对系统调用过多的优化 我这次的优化针对syscall调用过多的问题,所以使用strace跟踪apache进行分析。 1. apache2ctl -X & 使用-X(debug)参数启动httpd进程,这个时候只启动1个httpd进程 2. ps -ef | grep httpd 找到需要s 阅读全文
posted @ 2016-04-29 16:05 爱你爱自己 阅读(435) 评论(0) 推荐(0)
摘要:mysql5.5数据库多实例部署,我们可以分以下几个步骤来完成。 1、 mysql多实例的原理 2、 mysql多实例的特点 3、 mysql多实例应用场景 4、 mysql5.5多实例部署方法 一、mysql多实例的原理 mysql多实例,简单的说,就是在一台服务器上开启多个不同的mysql服务端 阅读全文
posted @ 2016-04-29 16:01 爱你爱自己 阅读(354) 评论(0) 推荐(0)
摘要:在Yii中,当请求一个Url的时候,首先在application中获取request信息,然后由request通过urlManager解析出route,再在Module中根据route来创建controller并处理request。如:http://www.yiifans.com/index.php 阅读全文
posted @ 2016-04-29 13:56 爱你爱自己 阅读(396) 评论(0) 推荐(0)
摘要:1.js [javascript] view plain copy $("input#upload").change(function () { $.ajaxFileUpload({ url: '/members/web-members-rest/upload.html', secureuri: f 阅读全文
posted @ 2016-04-28 22:44 爱你爱自己 阅读(1295) 评论(0) 推荐(0)
摘要:select GROUP_CONCAT(id) as ids from yii_role_menu where roleId=1; 阅读全文
posted @ 2016-04-26 17:12 爱你爱自己 阅读(4025) 评论(0) 推荐(0)
摘要:免费视频教程地址https://laravist.com/series/laravel-5-basic 在开始之前,我们把界面先美化一点点先: 首先到https://github.com/JellyBool/blog-css-js得到静态文件,然后分别修改下面三个文件: 下面的视图代码的修改部分,如 阅读全文
posted @ 2016-04-22 22:44 爱你爱自己 阅读(6663) 评论(0) 推荐(0)
摘要:免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇写了一些Laravel Blade的基本用法和给视图传递变量的几种方式, 这一节我们来说说跟数据库打交道的数据库配置和Laravel强大的Eloquent。 Laravel的数据库配置 本部 阅读全文
posted @ 2016-04-22 22:43 爱你爱自己 阅读(906) 评论(0) 推荐(0)
摘要:免费视频教程地址https://laravist.com/series/laravel-5-basic 期间受到很多私事影响,终于还是要好好写写laravel的教程了。 上一篇我们说了数据库和Eloquent的基本用法,如计划一样,这一篇文章我们说说Laravel中Model,Controller, 阅读全文
posted @ 2016-04-22 22:43 爱你爱自己 阅读(842) 评论(0) 推荐(0)
摘要:免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就要进入Laravel的神奇世界了,主要是讲解Laravel的Router,Views,Controllers的工作流程, 阅读全文
posted @ 2016-04-22 22:41 爱你爱自己 阅读(1572) 评论(0) 推荐(0)
摘要:免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇我们简单地说了Router,Views和Controllers的工作流程,这一次我就按照上一篇的计划,来说说下面几个内容: 向视图中传递变量 我们在开发web应用当中,通常都不是为了写静态页 阅读全文
posted @ 2016-04-22 22:41 爱你爱自己 阅读(2141) 评论(0) 推荐(0)
摘要:免费视频教程地址https://laravist.com/series/laravel-5-basic 最近在SF上面看到越来越多的Laravel相关的问题,而作为一个Laravel的脑残粉,本来打算有机会录视频教程放出来的,不过这个计划貌似由于某些原因必须得推迟一段时间,所以现在先把文章的系列教程 阅读全文
posted @ 2016-04-22 22:40 爱你爱自己 阅读(5946) 评论(0) 推荐(1)
摘要:这一篇文章的开头就无需多言了,紧接着上一篇的内容和计划,这一篇我们来说说Yii2的Behavior和Validations。 Behavior 首先我们来说说Behavior,在Yii2中Behavior主要是可以用于一些常用的Model字段当中,对其进行自动化操作,比如自动添加一些时间戳字段等,这 阅读全文
posted @ 2016-04-22 22:39 爱你爱自己 阅读(672) 评论(0) 推荐(0)
摘要:上一篇文章我们实现了简单的用户权限管理,至于更先进的RBAC,我后面会单独出一篇文章来说说。在这一篇文章当中,我主要想写的是在Yii2中集成一个编辑器,因为在我们的实际开发当中,一个简单的textarea一般都是不能满足我们的需求的,因为我们需要多种多样的文本样式如标题,表格啦,并且很多时候我们在这 阅读全文
posted @ 2016-04-22 22:38 爱你爱自己 阅读(1843) 评论(0) 推荐(0)
摘要:上一篇文章讲了用户的注册,验证和登录,这一篇文章按照约定来说说Yii2之中的用户和权限控制。 你可以直接到Github下载源码,以便可以跟上进度,你也可以重头开始,一步一步按照这个教程来做。 鉴于本教材基于Yii2 Basic,所以对RBAC的详细讲解我后面再单独出文章来说说吧,这里主要是简单地说一 阅读全文
posted @ 2016-04-22 22:37 爱你爱自己 阅读(4179) 评论(0) 推荐(0)
摘要:上一篇写了一点点Yii2的数据库相关知识和强大的Gii,这一篇就如上一篇的最后所说的一样:在Yii2中实现用户的注册和登录。 你可以直接到Github下载源码,以便可以跟上进度,你也可以重头开始,一步一步按照这个教程来做。本期的用户注册和登录,我会使用一个很棒的composer package :d 阅读全文
posted @ 2016-04-22 22:36 爱你爱自己 阅读(2626) 评论(0) 推荐(0)
摘要:上一篇文章我们理了一下Yii2的MVC,Forms和Layouts,这篇文章就直接按照约定来说说Yii2与数据库相关的一些事情,如果你觉得不够的话,不急,更具体的用法我会在后续的教程给出,并且这里也会介绍Yii2的代码生成工具:强大的Gii。 你可以直接到Github下载项目源码:https://g 阅读全文
posted @ 2016-04-22 22:35 爱你爱自己 阅读(806) 评论(0) 推荐(0)
摘要:http://www.yiiframework.com/ 安装Yii2 打算从头开始,所以,连安装Yii2也稍微写一点吧。安装Yii2最好的方式就是使用composer: 等待一小段时间之后(如果等太久或直接报错,请使用VPN),在这两步你应该会看到类似下面的信息: 这里的第一条命令跟官方文档的有稍 阅读全文
posted @ 2016-04-22 22:34 爱你爱自己 阅读(2013) 评论(0) 推荐(0)
摘要:上一篇文章我们简单地实现了Yii2框架安装和Hello World,而在这一篇文章当中,我们会带着好奇之心去探索一下在Yii2中的几个重要的元素组成:MVC,Forms和Layouts。 本文的目标是创建一个小小的表单应用,就是实现一个简单的类似发微博的功能,但是我还不想牵扯到数据库那一块,因为其实 阅读全文
posted @ 2016-04-22 22:34 爱你爱自己 阅读(1304) 评论(0) 推荐(0)
摘要:1.概述 简单说,我们使用PSR-2兼容规范,所以应用于PSR-2的一切对我们的代码也同样适用。 文件必须使用 <?php 或 <?= 标签。 文件未尾应该有一个新行。 PHP代码文件必须只能使用无BOM的UTF-8。 代码缩进必须使用4个空格,而不是tab按键。 类名必须使用大驼峰式(首字母大写) 阅读全文
posted @ 2016-04-21 08:37 爱你爱自己 阅读(2379) 评论(0) 推荐(0)
摘要:添加带验证码的登陆: 1.先在模型modules下的LoginForm.php定义一个存储验证码的变量:public $verfyCode; 2.然后在rules()方法里定义:array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::check 阅读全文
posted @ 2016-04-20 22:20 爱你爱自己 阅读(303) 评论(0) 推荐(0)
摘要:在网站项目中,没必要把公用的函数写成一个工具类,有时候面向过程其实更方便。 在入口文件index.php里添加 require_once('protected/function.php'); 即可对其引用,成为公用的函数集合。 function.php如下: <?php /** * This is 阅读全文
posted @ 2016-04-20 22:18 爱你爱自己 阅读(346) 评论(0) 推荐(0)
摘要:在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出。灰常感谢!!! 一、查询数据集合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 阅读全文
posted @ 2016-04-19 10:02 爱你爱自己 阅读(708) 评论(0) 推荐(0)
摘要:先添加配置文件: 在视图和控制器等其他地方是这样使用的: 并且,如果配置了之后 Grid 可以这样转化时间: 阅读全文
posted @ 2016-04-18 23:17 爱你爱自己 阅读(1545) 评论(0) 推荐(0)
摘要:常用指令 ls 显示文件或目录 mkdir 创建目录 cd 切换目录 touch 创建空文件 echo 创建带有内容的文件。 cat 查看文件内容 cp 拷贝 mv 移动或重命名 rm 删除文件 find 在文件系统中搜索某文件 wc 统计文本中行数、字数、字符数 grep 在文本文件中查找某个字符 阅读全文
posted @ 2016-04-16 13:05 爱你爱自己 阅读(253) 评论(0) 推荐(0)
摘要:命名规范 自动序号 非特殊情况,设计数据表时一般都会带有一个自增长的整形序号字段作为主键,字段名为id. 在其他关联表中引用时需补充表名,如:a表中需一个字段表示b_c表中的id字段,那么就在a中增加一个bCId的字段. 索引设计 索引效率 enum 以及 tinyint(1) 无需索引 阅读全文
posted @ 2016-04-16 13:04 爱你爱自己 阅读(247) 评论(0) 推荐(0)
摘要:PSR-0 命名标准,官方已基本废弃 PSR-1 基本代码规范 本篇规范制定了代码基本元素的相关标准,以确保共享的PHP代码间具有较高程度的技术互通性。 关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、“将会”("SHALL")、“ 阅读全文
posted @ 2016-04-16 13:01 爱你爱自己 阅读(2806) 评论(0) 推荐(0)
摘要:Git中从远程的分支获取最新的版本到本地方式如下,如何更新下载到代码到本地,请参阅ice的博客基于Github参与eoe的开源项目指南方式一1. 查看远程仓库 1 2 3 4 5 6 $ git remote -v eoecn https://github.com/eoecn/android-app 阅读全文
posted @ 2016-04-15 13:19 爱你爱自己 阅读(6088) 评论(0) 推荐(0)
摘要:Url的重写 nginx的配置文件 [plain] view plain copy print? [root@localhost protected]# vim /etc/nginx/conf.d/default.conf server { listen 80; server_name localh 阅读全文
posted @ 2016-04-14 09:55 爱你爱自己 阅读(2489) 评论(0) 推荐(0)
摘要:我是使用免安装的包mysql-5.6.30-linux2.6-x86_64.tar.gz(在http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz)的。直接解压,然后配置,初始化数据 阅读全文
posted @ 2016-04-12 14:48 爱你爱自己 阅读(5162) 评论(0) 推荐(0)
摘要:首先需要装好CentOS系统,作为测试,你可以选择装在虚拟机上,这样比较方便。这步默认你会,就不讲了。有了CentOS,那么如何搭建Git服务器呢?1、首先需要安装Git,可以使用yum源在线安装: 2、创建一个git用户,用来运行git服务 3、初始化git仓库:这里我们选择/data/git/l 阅读全文
posted @ 2016-04-12 08:43 爱你爱自己 阅读(283) 评论(0) 推荐(0)
摘要:GIT在Linux上的安装和使用简介 GIT最初是由Linus Benedict Torvalds为了更有效地管理Linux内核开发而创立的分布式版本控制软件,与常用的版本控制工具如CVS、Subversion不同,它不必服务器端软件支持,速度和效率也有着相当程度的提高。 www.2cto.com 阅读全文
posted @ 2016-04-11 10:48 爱你爱自己 阅读(405) 评论(0) 推荐(0)
摘要:目录[-] 一、环境准备: 二、升级系统: 三、做一些准备工作(以下Linux命令均在su到root用户操作): 四、开始编译安装mysql-5.7.9: 一、环境准备: 二、升级系统: 三、做一些准备工作(以下Linux命令均在su到root用户操作): 四、开始编译安装mysql-5.7.9: 阅读全文
posted @ 2016-04-08 17:33 爱你爱自己 阅读(638) 评论(0) 推荐(0)
摘要:1.下载和解压mysql数据库 wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.9-linux-glibc2.5-x86_64.tar.gzs tar -xvf mysql-5.7.9-linux-glibc2.5-x86_64 阅读全文
posted @ 2016-04-08 17:23 爱你爱自己 阅读(486) 评论(0) 推荐(0)
摘要:目录(?)[-] 服务器上的 Git 协议 本地协议 优点 缺点 SSH 协议 优点 缺点 Git 协议 优点 缺点 HTTPS 协议 优点 缺点 在服务器部署 Git 将纯目录转移到服务器 小型安装 SSH 连接 生成 SSH 公钥 架设服务器 公共访问 网页界面 GitWeb 权限管理器 Git 阅读全文
posted @ 2016-04-08 16:45 爱你爱自己 阅读(544) 评论(0) 推荐(0)
摘要:git是一个不错的版本管理的工具。现在自己在搞一个简单的应用程序开发,想使用git来进行管理。在Google了配置文档后,还是受了N多的挫折。某些文档质量不高,浪费了好多时间...... 好,切入正题: 安装必要的git工具 #apt-get install git git-core centos 阅读全文
posted @ 2016-04-08 16:44 爱你爱自己 阅读(22520) 评论(0) 推荐(1)
摘要:目录(?)[-] git的基本概念 git的四种对象 git快速上手三步曲 创建一个目录建立一个版本库进入目录运行 git-init-db 放入要加入版本库中的文件并植入跟踪系统git-add 提交内容到版本库中去git-commit 一些常用的命令 查看当前版本库的状态git-status 分支管 阅读全文
posted @ 2016-04-08 16:40 爱你爱自己 阅读(1863) 评论(0) 推荐(0)
摘要:在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。这个文件每一行保存了一个匹配的规则例如: # 此为注释 – 将被 Git 忽略 *.a # 忽略所有 .a 结尾的文件 !lib.a # 但 lib.a 除外 /TODO # 仅仅忽略项目根目 阅读全文
posted @ 2016-04-08 14:42 爱你爱自己 阅读(312) 评论(0) 推荐(0)
摘要:1、到mysql官网(http://dev.mysql.com/downloads/mysql/)下载压缩包,我的是win7 64位的,根据自己的系统进行下载 2、解压到自己的目录,我的是 E:\software\dataBase\mysql-5.7.11-winx64,并修改其目录下的my-def 阅读全文
posted @ 2016-04-07 16:50 爱你爱自己 阅读(1517) 评论(0) 推荐(0)
摘要:Git客户端安装 客户端要同时安装在远程服务器和自己的电脑上,下载地址:http://msysgit.github.io/ 选择安装组件 :也可以默认选择; 图标组件(Addition icons) : 选择是否创建快速启动栏图标 或者 是否创建桌面快捷方式; 桌面浏览(Windows Explor 阅读全文
posted @ 2016-04-07 15:09 爱你爱自己 阅读(6664) 评论(1) 推荐(0)
摘要:修改MySQL的登录设置: # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 例如: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-name-resol 阅读全文
posted @ 2016-04-07 14:09 爱你爱自己 阅读(11128) 评论(0) 推荐(0)
摘要:iptables 禁止端口和开放端口 1.首先介绍一下指令和相关配置文件 启动指令:service iptables start 重启指令:service iptables restart 关闭指令:service iptables stop 然后是相关配置:/etc/sysconfig/iptab 阅读全文
posted @ 2016-04-07 08:57 爱你爱自己 阅读(63188) 评论(1) 推荐(1)
摘要:Linux VSFTP服务器 1、开启服务 [root@localhost root]# service vsftpd start Starting vsftpd for vsftpd: [ OK ] 再次查看发现已经处于启动状态: [root@localhost root]# service vs 阅读全文
posted @ 2016-04-06 17:29 爱你爱自己 阅读(1087) 评论(0) 推荐(0)