Luckyscript's Blog
  • 前端路由应用部署的一些看法

    客户端渲染的发展

    随着Angularjs带入了MVVM思想,ReactVue的兴起,客户端渲染应用在前端开发中变得流行起来。所谓客户端渲染,指的是页面的dom结构都由前端js来生成,而服务端只是渲染了一个基础模板,这样大大的减少了服务端的压力。尤其是一些后台管控系统等对seo等不敏感的场景下,应用非常广泛。

    路由

    因为面向服务端的只是一个模板文件,所以前端应用的路由都是由前端自己来控制的。而通常前端路由的实现方式一种是hash方式,一种是history方式。我比较推荐history方式。

    部署

    关于客户端渲染应用的部署,我觉得有几点要注意:

  • 关于优化博客

    迫于贫穷,博客挂在境外,国内的访问速度本来就比较慢,加上之前自己开发这个博客的时候都是在下班后,为了快速看到效果很多地方都没有考虑清楚,导致无论是前台还是后台都有很多问题,这也是我一直羞于开源的原因。但是底子不好不代表我们后天不努力,最近,我还是决定要将博客的体验做的更好点。首先放出目前的优化效果: 优化结果

    合并css

    之前写博客为了本地开发方便,直接用postcss自动编译,每个模块有自己的css,然后在相应的模块中引入,但是这样造成了一个页面请求多个css的情况。所以合并了css的编译结果。 【优点】:减

  • 3D in web

    OpenGL介绍

    • OpenGL 是一种跨平台的图形 API,其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。
    • 目前OpenGL已经停止更新了,同一公司下的Vulkan引擎在将来可能会大放异彩。但是这并不妨碍我们学习WebGL与OpenGL。

    WebGL简要介绍

    • WebGL是一种3D绘图协议。
    • 在Linux/Unix和MacOS上,WebGL是基于OpenGL的,而在Windows系统上,则是基于微软的DirectX。
    • 这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,WebGL可以为HTML5 Canvas
  • virtual method table in C++

    最近闲逛v2ex的时候,发现了这么一个帖子:求助 C++大神看一个问题

    点进去一看代码,一脸懵逼,这是啥。。。

    class B {
    public:
        virtual void foo() {}
    };
    class D: public B {
    public:
        D() : mA(0) {}
        virtual void foo() {
            cout<<"D::foo::mA "<<mA<<endl;
        }
        int mA;
    };
    int main() {
        D d1;
        D* pD = &d1;
        cout<<pD<<endl;
        typedef void (*PFun)();
        PFun fun =  (PFun)((long *)*((long *)*(long*)(pD))); //???
        fun();
        cout<<"D::pD::mA: "<<pD->mA<<endl;
    }
  • C++ keyword extern

    extern关键字在C++中通常有三个作用

    存储类指定符

    extern作为存储类指定符的时候,被声明的对象具有静态存储期。 所谓静态存储期就是和static以及全域变量一样,在程序的运行周期都存在。

    // extern.h
    extern int e;
    // extern.cc
    int e = 0;
    //main.cc
    #include "extern.h"
    void fun()
    {
        e++;
        cout << e << endl;
    }
    int main()
    {
        fun();
        fun();
    }

    运行这段代码:

    $ g++ extern.cc main.cc
    $ ./a.out
    1
    2