代理模式:

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

模式作用:

  1. 远程代理(一个对象将不同空间的对象进行局部代理)
  2. 虚拟代理(根据需要创建开销很大的对象如渲染网页暂时用占位图代替真图)
  3. 安全代理(控制真实对象的访问权限)
  4. 智能指引(调用对象代理处理另外一些事情如垃圾回收机制)

注意事项:

  1. 不能滥用代理,有时候仅仅是给代码增加复杂度
    阅读全文 »

观察者模式

观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。
观察者设计模式定义了对象间的一种一对多的依赖关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。

模式作用:

  1. 支持简单的广播通信,自动通知所有已经订阅过的对象
  2. 页面载入后目标对象很容易与观察者存在一种动态关联,增加了灵活性
  3. 目标对象与观察者之间的抽象耦合关系能够单独扩展以及重用

注意事项:

  1. 监听要在触发之前
阅读全文 »

背景

在开发过程中,有时候需要对浏览器环境进行检测,比如封装一个AJAX函数的时候需要写一个函数进行检测,但是常规的写法有点累赘了,会检测很多遍,但是浏览器环境是固定不变的,检测只需要检测一遍.这样就会造成每次调用这个函数的时候浏览器都会浪费太多时间去再检测一次.这时候就应该用到惰性函数来解决这个问题

阅读全文 »

黑客

那些传统意义上的黑客不认同这样使用“黑客”这个词。他们认为,历史上确实有一些正直的黑客,为了亲自了解系统,做过违反法规的入侵举动。但是,那些人并没有恶意,而且从一开始恶作剧就是黑客文化的一部分,仅仅由此推断入侵和破坏系统就是黑客文化的实质完全是错误的。真正的黑客致力于改变世界,让世界运转得美好。媒体对黑客的定义未免过于片面。
为了澄清“黑客”这个概念,他们提出只有传统意义上的黑客才能被称为hacker,而那些恶意入侵计算机系统的人应该被称为cracker(入侵者)。这个观点已经在程序员社区中得到普通认同。
本书正是在这个意义上使用“黑客”这个词。在本书中,“黑客”就是指最优秀的程序员,而不是入侵计算机系统的人。

网评

一本稍嫌啰嗦的好书,立意高远,内涵丰富,我觉得属于创业者必读。
本书告诉你以下事实:
1,全世界都别指望在IT领域超越美国。历史差距太大,这从LISP的起源可以看出来。
2,要做一个独立思考的人,不从众,善于从生活中汲取智慧,譬如绘画、雕刻。
3,如何打败大公司:小、快、高技术、紧贴用户、保密。
4,书呆子以后将改变世界,请不要在他们还没发达前嘲笑他们。

如何创造财富

从经济学观点看,你可以把创业想象成一个压缩过程,你的所有工作年份被压缩成了短短几年。你不再是低强度地工作四十年,而是以极限强度工作四年。在高科技领域,这种压缩的回报尤其丰厚,工作效率越高,额外报酬就越高。承受较大的压力通常会为你带来额外的报酬,但是你还是无法逃避基本的守恒定律。如果创业那么轻松,那么所有人就都去创业了。任何公司的成功历程中,运气都是一个很大的随机因素。那些你在报纸上读到的成功人士固然很聪明,很努力,但是他们的运气也不坏。

通过创造有价值的东西而致富,这种方法的优势不仅仅在于它是合法的,还在于它更简单。你只需要做出别人需要的东西就可以了。创造有价值的东西就是创造财富。最可能明白财富能被创建出来的人就是那些善于制作东西的人,也就是手工艺人。他们做出来的东西直接放在商店里卖。目前还存在的最大的手工艺人群体就是程序员。

阅读全文 »


过去一段时间心态没放正,总是很浮躁,弄出了点小东西总喜欢显摆,打代码也是,总想着把一下子把所有事情做好,做完美,还喜欢打一下代码就刷刷微博,看看新闻,明明没什么好看的,最后结果是什么事都没做好,还浪费不少时间.这毛病该改改了

最近做HybridApp的项目,尝试边开发边用Markdown记录开发时候遇到的问题,思路,和解决办法以及现阶段和下阶段要做的事情,把事情分解成一个个步骤,白天尽量整理思路,晚上打代码.之前写代码想都不想直接开工,结果是思维容易混乱,没有大的方向,遇到一点难题就要做大的改动.

现在最大的感觉是把事情分解成一个个小步骤,只专注一件事情更容易把事情做好,效率也高了

拒绝拖延症,拒绝拖延症,拒绝拖延症

做事前先告诉自己先做3分钟,等到真正动手的时候自然就停不下来了.
自控是一种能力,很多时候成败就取决于自控的能力。

柯里化

柯里化(curring)的概念最早由俄国数学家Moses_Schönfinkel发明,而后由著名的数理逻辑学家Haskell将其丰富和发展,curring由此得名

curring又称部分求值.一个curring的函数首先会接受一些参数,接受了这些参数之后,该函数不会立即求值,而是继续返回另一个函数,刚才传入的参数在函数形成的闭包中被保存起来.待到函数被真正需要求值的时候,之前传入的所有参数都会被一次性用于求值

阅读全文 »