nodejs

  • 上文说到我做了个论坛,其实那时我还没做界面,仅仅把model层做了下,这次借助bootstrap3.0做了下界面,感觉真的有个样子了

    相比nodeclub来说,主要是有了板块这个概念,同时它是响应式的,我更加关注论坛在手机浏览器上的显示效果

    这次制作的原则是留白,一切都要最简单,方便以后的扩展,使用的颜色基本都是灰色和白色

    由于我坚持完全使用bootstrap(主要是我不想放任何静态文件,全靠cdn),因此有不少布局我都有点茫然,一个劲的翻bootstrap官网

    例如这个帖子列表,我一开始都感觉自己不会写了,后来动手设计了一下,试着实现,结果一下子就出来了

    不过这完全依赖bootstrap的栅

  • TDD(Test Driven Development)

    TDD就是先写测试, 后写程序

    不是每个人都想写测试的, 很大原因是懒

    😕我就是开发的, 跑一下看看就知道对不对, 要什么测试, 而且测试就是我写的, 没啥用啊

    测试的意义

    • 有说服力: 如果测试说测出bug了, 至少我能告诉他, 在这个case下程序是正确的
    • 容易接手: 同事要辞职, 我却不能肯定他的代码对不对, 如果有测试就没这么多忧虑了
    • 卖相好: 自己写一个项目, 写的明明比别人好, api比人家简洁, 但为啥大家不选我的项目呢. 这时候就要去看看是不是自己的测试用例不如别人长

    TDD和Unit Test的关系

    什么是U

  • 数据库一直都是我做项目的一个痛点, 首先我希望能兼容mongo, mysql, sqlite. 其次, 我并不能记住这些数据库的用法, 你可能会说, nodejs中不是有sequelize这样的orm嘛, 是, 但这还是太复杂了, 学习成本很大, 每次升级也跨度大

    我希望做一个数据库, 简洁明了, 只支持es6, 只支持如下几个操作

    var user = db.Model('user')
    user.add(some_user) // (C)RUD
    user.find(some_user_attr) // C(R)UD
    user.update(some_user_id, some_user_k_
  • harmony generator是ES6中的新玩具, 为了更好的避免回调金字塔, 学习这个特性是重要的, 这个特性在各大浏览器以及nodejs中已经都可以使用

    nodejs中需要0.11.*版本, 官网找不到可以用nvm来下载(nvm install v0.11.9), 同时启用harmony generator还需要使用node --harmony, 为了方便, 我们一般会先取个别名alias node='node --harmony'

    在chrome中使用该特性需要先打开chrome://flags/, 搜索harmony, enable之, 重启chrome即可

    准备工作好了, 进入正

  • 案发现场

    npm 安装 chromedriver 时,偶尔会出错,错误提示类似于:

    > chromedriver@2.27.2 install /Users/Mario/Work/Lab/waylens-all-in-one-site/node_modules/chromedriver
    > node install.js
    
    Downloading https://chromedriver.storage.googleapis.com/2.27/chromedriver_mac64.zip
    Saving to /var/folders/7l/mhhqzhps0y59by7pf04ny