javascript与我

看到标题,前端同学估计会抽我了,因我本是一个PHP程序员。

不过我对js是绝对的热爱,甚至超过PHP。就如我这个烂博客,后端主要是Nodejs+Redis构建的。

经过许许多多项目的洗礼,发现js有一个地方最令我着迷:

  1. 函数式编程风格

  2. 异步编程风格

  3. OO风格

值得一提的是匿名函数,它犹如整个上下文环境中的眼睛,通过它可以看到一切。然而它又是那么谦卑,甚至连名字都没有。它就是js里的活雷锋,随叫随到,而且每次,它都是新的面孔且保证只被执行一次,它满怀激情的来,在你欢呼声中消失的无影无踪...

channel.on('fired', function(){...});

异步,是的,异步。你没法估计它什么时候到来,但却清楚的知道它一定会...要么成功要么失败。你只能事先为它安排好一切,然后,去喝杯茶吧。活雷锋简直是它的绝配,天生一对。让人好生艳羡...那如果创建了好多异步任务,它们会不会让引擎大哥忙得不可开交啊?呵呵,引擎大哥可聪明了:来得早不如来得巧,俺同一时间只处理一个事,来晚了排队吧。老大哥虽然耍了一点小聪明,但它做事却一丝不苟,不会有丝毫遗漏,异常专注。什么聪明天赋都是骗人的,专注,才是最大的财富。静下心来,整个世界都是灵动的。"潭中鱼可百许头,皆若空游无所依"说的就是"入微"的境界。

再看看js里的任督二脉:原型链和作用域链。无法直接观察到但却真实存在着。当你访问一个对象的属性,在使用"."或者"[]"时,有没有觉得这其实是一个顺藤摸瓜的活儿...千里姻缘一线牵,若无缘,便异常终止吧,自挂东南枝。然而造化弄人,你找到的,不一定是你最爱的。姻缘一线牵,并没有说牵的只是你和她,在你和她之间,说不定还牵着别人。而能找到的,却是离你最近的。所以,异地恋是多么的脆弱与可怕...

可以说,人永远都只活在现在,当前,此刻。永远也无法逃离此刻,不管逃到哪里,它都如影随形跟着你,它就是"this"。只好仰头望天,长叹一声:"再也回不去了..."

亲,原谅我这小疯子的疯言疯语吧...晚安。

Tags: javascript js 心情
Time: 1378485420557

天蓝色

天空的蓝色,总是让人那么着迷。

今早醒来,发现窗外天空一片洁净无暇的蓝,白亮的阳光照进屋子。

心想着,原来自己还不是太孤单。

至少宁静而深邃的蓝色,微笑着的蓝海洋,一直萦绕在脑海,不曾改变。

对蓝色,情有独钟的喜爱。

心想着,便平静下来,仿佛这世上的喧嚣浮华,悲喜苦乐,再没丝毫关系。

我还是原来的我,而,你呢?

你也还是原来的你,广博而高远。让我这游荡在人世间的浪子喜爱万分却又心痛万分。

困了...好想回到你身边,什么也不说,看着你微笑。

我却不是原来的我了。变得有些...冷漠了,无情了,迟钝了

知我者谓我心忧,不知我者谓我何求。

Tags: 心情
Time: 1378392403690

这些天

无感

无想

无眠


月上中天

月下中天

日上中天



Tags: 心情
Time: 1376959462508

快速排序法-递归

/*
 ==============================================================================
 Name: 快速排序法-递归
 Desc: 设定数组中一个元素下标为i值为e,使得0~(i-1)均小于e,i+1~n均大于e,依次递归
 =============================================================================
 */
#include <stdio.h>
#define N 10
void quicksort(int a[], int low, int high);
int  split(int a[], int low, int high);
int main(void)
{
    int a[N], i;
    printf("Please enter number to quicksort(lt<%d): \n", N);
                                                                    
    for(i = 0; i < N; i++){
        scanf("%d", &a[i]);
    }
                                                                    
    quicksort(a, 0, N - 1);
    for (i = 0; i < N; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");
    return 0;
}
void quicksort(int a[], int low, int high)
{
    int middle_idx;
                                                                    
    if (low >= high) return;
    middle_idx = split(a, low, high);
    quicksort(a, low, middle_idx - 1);
    quicksort(a, middle_idx+1, high);
}
int split(int a[], int low, int high)
{
    int part_element = a[low];
                                                                    
    for(;;){
        /* step 1 */
        while(low < high && part_element <= a[high]) {
            high--;
        }
        if (low >= high) break;
        a[low++] = a[high];
        /* step 2 */      
        while(low < high && part_element >= a[low]) {
            low++;
        }
        if (low >= high) break;
        a[high--] = a[low];
    }
    a[high] = part_element;
    return high;
}
  1. 将问题分割为性质相同、规模变小的多个问题,不关心具体实现;

  2. 针对具体一个问题思考解决办法,如此递归;

http://zh.wikipedia.org/wiki/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F#C

Tags: c语言 排序 数组
Time: 1371007511720

最大公约数之欧几里得算法

/*
 ================================================
 Name: 输入两个正整数m,n, 打印二者最大公约数GCD
 Desc: gcd(m, n) = gcd(n, m % n) (m > 0, n >= 0)
 ================================================
 */
#include <stdio.h>
int main(void)
{
    int m, n, tmp;
    printf("Please enter two integers: ");
    scanf("%d%d", &m, &n);
    while(n > 0) {
        tmp = m % n;
        m   = n;
        n   = tmp;
    }
    printf("GCD is %d\n", m);
    return 0;
}
Tags: gcd 最大公约数 c语言
Time: 1370457245401