摘要: 说来惭愧,研究angularjs也有一段时间了,却一直抛弃了angularjs最大的好处之一——测试。这个周末下决心研究下怎么用给angularjs应用做测试。#安装karma其实,这么久以来一直没用到angularjs的测试就是因为不会配置karma。因为项目一开始的时候看着文档跑了一遍,没跑成功就放下了。这两天有细读了文档,发现当初也不能全怪我笨,angularjs的文档写的确实操蛋。karma都更新好多了,它还是旧的文档、代码,难怪我跑不通。好了,开始安装karma。第一: 打开cmd,输入> npm install -g karma 就行了第二:配置文件,这个版本(0.10)配置 阅读全文
posted @ 2013-08-18 17:19 chaos.forfun 阅读(893) 评论(0) 推荐(0) 编辑
摘要: 今天看到了一个特别的绝对居中的方法,很有创意,记录下来。原博客地址http://codepen.io/shshaw/full/gEiDt。这种方法唯一的缺点就是需要父元素指定高度,但是它可以用min/max-height来所响应式设计。如果以上连接可以打开就看上面的连接,如果连接失效了才看下面的复制出来的内容。Absolute Centering in CSSThanks for the positive comments! Now you can read this article onSmashing Magazineand experience a few new demos (like 阅读全文
posted @ 2013-08-12 13:44 chaos.forfun 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式用于透明的把对象包装在具有同样接口的对象中。在不改变接口的情况下,装饰者模式比创建子类更合适。相较于创建子类,装饰者模式可以节省很多代码。装饰者模式和组合模式有很多共同点,它们都用来包装对象,它们都与所包装的对象实现同样的接口并且会把任何方法调用传递给这些对象。那么二者间有什么区别呢,组合模式的目的是组织子对象并不修改方法调用,而装饰者模式的目的是修改方法调用。装饰者修改对象的方式有四种: 1、在方法调用之后添加行为,原有行为基础上添加或修改返回结果 2、在方法调用之前添加行为,在原有行为之前进行处理或者修改原有行为的参数 3、替换方法 4、增加新方法适用场景: 需要为类... 阅读全文
posted @ 2013-08-09 16:21 chaos.forfun 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 随想随记,不定时更新。1、贵公司有几个设计人师,设计师从业经验? 阅读全文
posted @ 2013-08-08 14:49 chaos.forfun 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 门面模式有两个作用: 一是简化类的接口;二是消除类与使用它的客户端代码间的耦合。门面模式就相当于桌面上的快捷方式,为一些列操作建立一个快捷键。适配器模式适配器可用来在现有接口和不兼容的类之间适配。适配器模式有助于避免大规模重写现有客户端代码。从表面上看,适配器模式很想门面模式。他们都要对别的对象尽心封装并改变其呈现的接口。二者的区别在于他们如何改变接口。门面模式呈现的是一个简化的接口,它并不提供额外的选择,而且又时为了完成任务还会做一些假设。而适配器要把一个接口转换为另一个接口,它并不会滤除某些功能,也不会简化接口。 阅读全文
posted @ 2013-08-08 13:27 chaos.forfun 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 这两个模式都比较简单,多以放在一个笔记里了。桥接模式桥接模式用来弱化API与调用API的类或者对象之间的耦合。按GoF的定义,桥接模式的作用在于“将抽象与实现隔离开来,以便二者独立变化”。我对桥接模式的理解就是把杂乱的混在一起的代码分割开来,在用一个第三方函数或者特权函数把他们连接起来。组合模式组合模式是一种可以简化代码的模式。它把一些列实现了相同借口的对象(叶对象)组合当做一个对象(组合对象)来操作,你可以把它想象成一棵树,对这棵树执行“砍”操作,就会对这个树的每一个树叶执行“砍”操作。这个模式的核心就是 这些叶对象都是实现了同一借口,而组合对象也实现了这个借口。说白了就是把迭代隐藏起来了。 阅读全文
posted @ 2013-08-07 15:50 chaos.forfun 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 对象或类内部往往会包含别的对象,在创建成员对象时你可能习惯于使用使用传统的new来创建对象。但是这种方式会造成两个对象之间的依赖。工厂模式就是一种有助于消除或减弱这种依赖的设计模式。书中用自行车商店的例子阐述了简单工厂模式。先是用传统的方式,在 BicycleShop 类内部用new来创建各种自行车。然后说了这种方式的弊端,当情况发生变化时,如要填一个自行车种类,这时候就需要修改 BicycleShop 的代码,哪怕是这个类实际功能没有发生改变。更好的方法是把创建各种自行车的部分转交给一个简单工厂对象—— BicycleFactory ,在 BicycleFactory 内new各种自行车,B 阅读全文
posted @ 2013-08-05 11:11 chaos.forfun 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 从年初上班开始进行Angular+jqmo开发html5手机应用。遇到各种问题,这里吐槽一下。先是跨域问题,这个可以用cors来解决,但是在电脑上可以到跨域获取到数据,安装到手机上就不行了。以前一直以为是Android 2.3的手机浏览器不支持跨域,今天突然发现是代码问题。因为做测试代码里服务器地址写的是localhost/囧。这要是能在手机里获取到数据才怪。太特么粗心了。还有个问题就是Angular和jqmobi的路由冲突问题。我选择了修改jqmobi源码禁用掉了jqmobi的路由功能。这样就需要用到addContentDiv来将ng-view内通过Angular加载进来的内容转换为jqmo 阅读全文
posted @ 2013-02-27 10:01 chaos.forfun 阅读(314) 评论(0) 推荐(0) 编辑
摘要: Android屏幕适配问题太烦人了,查阅了各种学术名词终于搞定了,下面是调研过程和结果。各种名词中关键是dpi,通俗来讲dpi就是单位尺寸中的点数。这个“点”是什么东西呢,点是个物理概念,你可以把他看作一个像素(注意只是看成,不完全一样)。把点理解为像素dpi就变成了ppi——单位尺寸中的像素数。Android设备分辨率差异比较大,而且各设备dpi还不一样。这就比较操蛋了,导致同样的像素在不同设备下显示大小不一样。举个简单的抽象例子,设备A大小为100*100英寸,分辨率为100*100,这个时候A的dpi为1。设备B大小同样为100*100英寸,分辨率变为了200*200,这个时候B的dpi 阅读全文
posted @ 2013-02-18 12:16 chaos.forfun 阅读(2668) 评论(0) 推荐(0) 编辑
摘要: 关于Css Font的一些详细研究 阅读全文
posted @ 2012-11-17 22:48 chaos.forfun 阅读(217) 评论(0) 推荐(0) 编辑