主页

你所看到的那些大V大牛都是如何产生的?

「1」

在如今这个互联网时代,内容的产出以及获取方式都实在太方便了,让人目不暇接,再也没有你想了解一件事情或是询问一个问题,而不知道去哪里找的情况了,相反却是有太多的相关答案在你面前,而你不知道如何选择的问题。

倒退回去十年,是内容搜索的天下,那时是搜索领域全面碾压门户网站的时候,当时著名的内容分类门户巨头雅虎就是在这个时候渐渐开始没落的,取而代之的就是Google一类的搜索公司。互联网上的内容越来越多,单纯的靠人工分类获取的方式已经过时了,大家更加习惯于输入一个关键词就能找到我们想要的结果。而当内容再一次膨胀,数据量成指数增长,以至于我们搜索出来的内容多到我们不知道如何去选择的时候,那就是另一个时代的变革到来了 - 智能推荐。

目前,我们就处在不再是依靠搜索去找内容的时代了,而是内容提供商主动推荐,我们被动获取内容的时代,他们会推荐符合我个人特征的一些内容。我喜欢看科技互联网内容,那么我打开「今日头条」首屏显示的尽是科技相关新闻资讯;我喜欢数码设备,打开「亚马逊」购物网站,映入眼前的就是手机,耳机,电脑等等产品。

「2」

这些说明了什么,说明了这个时代已经产生了大量的数据内容,无处不在。掏出手机,各种APP奋力的往外弹通知消息,在系统层面关掉通知,打开APP的一瞬间像打开了鸟笼,消息就像小鸟拼命的往外跑,生怕不能引起你注意。

正是由于这种信息膨胀的时代,才产生了知识输出的一些细分市场,内容太多了,我不想看,如果有人能帮我梳理,提炼,归纳再给我讲出来就好了;互联网上的内容太杂太乱了,如果有个人能帮我指导一下就好了,最好是一些有经验的名人就再好不过了;正是由于有了这类的用户需求,于是一系列关于知识输出的平台就出来了。例如: 得到,知乎Live,分答,极客时间等等,通过订阅别人的专栏,你可以快速的学习以及了解该领域的一些知识,这些内容不再是杂乱无章,而是通过大V大牛整理并输出的,通过直接学习这些内容,你相当于「站在巨人的肩膀上」。遇到困惑的时候,你不再想去搜索「海底捞针」似的去找答案,你更想有个人生导师直接给你指引方向。

「3」

通过这种方式的学习吸收,你的确可以更加快速的取得成果,但是如果你只是停留在这种纯粹的输入过程中,你永远也不会得到突破性的成长。你学习的东西都是别人经过总结提炼出来的成果,短时间内,你确实可以得到一定的收获,但这不是长久的,接下来你要做的事就是将别人的成果加上你自己的思考,最后沉淀出新的认知,这才是进步。

就像是微积分在1000年前就已经发明了,但是1000年后我们的大学课程还在学习这些内容,但是现在的我们并不会再去创造新的微积分,而是接受并学习它的原理,去创造更加深层次的知识,去探索新的领域,其实这就是一个知识输入,总结归纳再输出的一个过程。每一次学习别人输出的知识过后再输出新知识的这个过程就是一次成长,是一次创造,我们正是经历这样的一个不断成长,不断循环的过程,才推动社会的进步,才拥有现在的人工智能。

所以,我们在接受别人输出的同时「可能是看一本,听一课专栏,看一节视频课程」,你尝试着换个角色,把自己也当作一个知识输出者「写上一篇书评,把你所学的讲给别人听,亦或是做一个简单的学习会」,不要小看这么个过程,这个过程,你需要将接收到的信息融合到自身的知识体系中,进而产出新的知识,最后还要归纳总结分享出去。其实这个过程并不是轻松的,反而是很痛苦的,正是因为有你的努力,所以才会有价值。持续的去做知识输出,将来你就是别人眼中的那个大V大牛。

「4」

很早之前看过一篇文章,是关于Kevin Kelly讲「未来十年的大趋势」的内容,他讲到未来十年的大趋势包含四点内容: 屏幕分享注意力。对于那会还没毕业的我来说,除了屏幕能理解一点(在科幻片里看到满是屏幕的世界),看到另外三个词感到很诧异(这跟发展趋势有什么关系)。

现在看来,对分享有了一些认识,「知识不是力量,共享知识才是力量」,不仅仅是对个人,在团体中在企业中更是如此。像在得到,知乎Live等平台上讲课的老师,我相信他们收获的并不仅仅是那份收入,更多的是自身的成长,在分享自己知识的时候,需要对本身的认知进行沉淀,而这一过程必然会促使更大成长,收获更有价值的东西。

我对于分享一词的理解可能有些浅显了,有兴趣的可以点击阅读原文看一下这篇2013年的文章,站在4年后的今天,看你能真正理解多少。

**拓展阅读: **

阅读更多

哇哦,酷毙了,Firefox Quantum

从Chrome转到Firefox阵营下已经有好些年了,当时Google退出中国,由于书签以及组件等的无法访问的原因,选择放弃chrome转而把Firefox作为主力浏览器。

我们所接触的浏览器中可能对IE是最熟悉的,IE浏览器在1995年发布由于一直作为windows系统的默认浏览器基本上垄断了浏览器市场,而真正对IE造成威胁的浏览器正是Firefox,Mozilla Firefox浏览器于2004年11月推出,并多次获得最受欢迎的浏览器称号。

Firefox1.0被公认比IE更安全,特别说明的是Firefox1.0就支持了第三方扩展,这也是Firefox后续版本成功的关键。Firefox 1.5发布的时候,就已经占据了windows系统10%的份额。2008年,在Firefox 3.0发布的时候,创下了24小时内下载最多的吉尼斯记录。在同一年,Google发布了一款重量级产品 - chrome,短短3年时间就已经接近Firefox的使用率,好吧,不说它了,今天主角是Firefox。

大多数人离开Firefox的原因是Firefox不够快,而Firefox最让人诟病的也是速度慢,所以这次新发布的Firefox Quantum浏览器针对访问速度的提升做了重大改进。采用了全新的浏览引擎, 充分利用现代设备中的处理能力。通过使用Rust语言来重建组件提高浏览器的速度,使组件的使用更加有效率。新的CSS引擎可以并行使用多个CPU来缩短加载时间,而Firefox历史版本仅在一个CPU核心上运行任务。

为了进一步提高速度,Mozilla将用户打开的选项卡放在首位,并且采用多进程架构。 Firefox Quantum在某些网站上的打开速度甚至超过Chrome。外观设计方面也做了巨大的改变,也许是近期版本升级外观变化最大的一次了,这个变化因人而异,反正是我的菜。

还没有体验的,赶紧去升级吧,可以聘美Chrome的访问速度,关键是可以不用翻墙同步书签以及插件,哈哈

阅读更多

你想成为一只被风吹上天的「猪」吗?

对互联网的敏感度,我并不属于迟钝的那一类,作为一枚从学物理转到计算机专业下的童鞋,对互联网感知的天赋还是有些自信的,可是为什么我能够一次又一次的躲过互联网浪潮呢?

首先简单谈一下我与计算机的关系。上大学报考专业由于不懂莫名其妙就首选了理论物理专业也是醉了,现在除了能拿它吹个牛,“想当年,哥们也是考过四大天书(量子力学,热力学,电动力学,理论力学)的人”,也就没剩下什么了。那么这个专业学的课程跟计算机有什么关系呢,要说有关系那就是学的课程里包括VB和汇编。全校的专业都在学习C语言,而我们却要学VB和汇编也是没谁了。当然多亏了这门汇编以及单片机课程,让我坚定了想要考计算机专业的研究生,大学学的课程里唯一值得自豪的是,单片机课程得了满分。

由于对单片机的一些简单认识,以为计算机专业不就是鼓捣下电脑嘛,对于鼓捣电脑这件事我还是非常有自信的。于是理所当然的报考了计算机专业,那会的自己其实还不明白计算机专业具体干什么,至今仍然记得当我抱起那4本压根都没见过的考研专业课四本书(操作系统、组成原理、计算机网络、数据结构)时,才发现,计算机好深奥呀,还以为是要玩玩电脑就行了呢(糗)。

不过我感到特别的幸运,经过备考阶段的一些坚持,我成功的转到了计算机专业下,这也是我人生中做过最正确的决定之一。我们正好是一代「完完整整经历过由PC时代转向互联网时代,再由互联网时代转向移动互联网时代,并且正在经历物联网,人工智能时代」的人。世界上从来没有一个行业能如互联网一般发展如此之快,就在这短短的十几年,我们的生活因为它发生了翻天覆地的变化。有多少人在十几年前能想象将来的某一天,我们购物不用再出门;又有多少能想象将来有一天,出门我们不用再带钱包;又有多少人能想象,有一天我们出门打车不再用站在马路边招手;又有多少人敢去想象将来的某一天,汽车会自己在路上跑,人类将禁止开车;互联网后时代造就了太多的不可思议,让人类的生活更加便利,让你拥有更多惊喜。

在这样的一个时代,是多么的幸运,而处于这个信息时代的计算机专业童鞋,你难道不知道你存在着多少个可能吗?只要你想去争取。这个时代有太多能把「猪」吹上天的风口了,甚至是吹上去好几遍的可能。单单是腾讯一家公司就提供了不止一次这样的大风,微信时代掀起的风口浪尖成就了多少人,微商,公众号自媒体,小程序创业;再看看知识分享平台:知乎,知识星球,得到,极客时间等等;只有你不想去尝试的,没有你想不到的。

是不是觉得自己特别庆幸,每次都能巧妙的躲过了这些风口,在地底下抬着头望着天,看着创业者一个又一个的飞上天,不仅无动于衷,反而嗤之以鼻 - 摔下来的时候多疼呀。没错,绝大部分的人都有这样的想法,我要生活平稳,工作稳定,日子过得去就好,就这样过着「饿不着吃不饱」的生活也挺美的。然而每个人都想实现财务自由的那一天,不用再干着自己不喜欢的工作,想出去玩的时候,潇潇洒洒的来一场说走就走的旅行。

不要太辛苦,不想有改变,不去冒险,永远不会有财务自由那一天的到来,天下没有掉馅饼的事情。不去站到风口,怎么能妄想被风吹上天呢,不从天上摔下来怎么知道其过程的艰辛,不摔几次怎么练就无坚不摧的身体。而你却连去尝试的勇气都不曾有过,只是想守着自己的一方「沃土」,而沃土也有贫瘠的一天,何不趁着自己还年轻再开阔一片土地呢。

勇敢的去尝试,去改变,坚持下去,总会找到属于你自己的另一片天空,摔下来了,没关系,坚持再上,风口这么多,总会找到正确风向的一次,总会把你再次吹上天,这次飞得更高更远。

现在的每一次尝试,每一次坚持都不是白费的,一直做下去总会有回报。我在尝试着改变自己单纯平淡无味的生活工作状态,以此文共勉。

END

阅读更多

再坚持一下就好了

认定了一件事情,坚持下去才是最重要的。

每个人都有拖延症,只是严重程度不一样而已,成功的人,都是那些拖延症较轻也就是毅力比较坚定的人,不管是出于什么理由,自我认同,他人认同,或是为了权利,荣誉,金钱。能让你坚持下去的,都不是坏的理由。

大学期间坚持跑步了3个月,快到夏天了,只是为了让自己的肉肉不那么明显(那时还是在乎自己体重的,婚后就算了);每天写文章最长坚持了两周,只是为了记录自己所经历的一些事情,或是分享知识得到他人的认可,然而写作是个非常费时的事情,需要你有经历有体会,如果是技术类文章,更是需要你真正学习后,才能表现出来;去健身房最长连续坚持了两周,假想着某天自己有着8块腹肌,然而比起每天下班葛优瘫看电视,坚持去健身房还是需要承受得住一定诱惑和孤独的。

我是一个自制力不是很强的人,跟坚持某件事情动辄几年的人来说,真是太微不足道了。身边一大学哥们仅仅只是坚持分享了家乡的吃喝玩乐,现在他的公司是当地传媒影响力第一,然而这份坚持却做了4年之久。罗胖一直到现在还在每天60秒语音,而你连听下去的这份坚持都做不到。

还好,我还算是有自知之明的,至少总是嚷嚷的想改变自己,不太安于现状,时常痛斥自己能不能长久的坚持去做一件事情,哪怕只是每天十个俯卧撑,每周一篇日记也好。

我写这篇文章也是想进一步做这样的尝试,虽说难免会失败,但是尝试去改变终归比无所事是要好得多,只是希望每次尝试都能有所进步。上次头脑发热了一下,坚持了一周;这次头脑再发热一下,坚持了一个月;下次再热一下,坚持了半年,能做到这样就行了,改变这件事情是要慢慢来的。当你做的某件事坚持了一年了,你会发现不一样的世界。

暂设两个小的目标,以一个月为短暂期限。一是,每天二十个俯卧撑;二是,每周两篇文章,日记也好,技术文也罢,只要去做了就行了。俯卧撑媳妇监督,文章尽量分享出去,以博客来记录,自己陪自己玩,一个月后检验一下自己,希望这次的头脑发热能保持得久一点(貌似天气冷了,凉得快)。

eg. 先完成一个小目标

  • 每天二十个俯卧撑
  • 每周两篇文章

阅读更多

初步使用sequelize模块 - Node实战

在Node Web开发过程中,后台数据库我一直使用的都是Mysql,没有别的什么原因,就觉得熟悉,图形界面操作起来比较简单,简化了好多关于数据库方面的操作。

最开始的时候,我一直都是提前将我要的数据表在Mysql里用图形界面创建好,然后再开始我的项目代码编写,当然这个过程一直穿插在整个项目的开发中,有时候某个功能最开始想得不太全,于是就重新修改数据表,再根据数据表结构进行代码的修改。刚开始学习的时候,一直关注前台后台逻辑,数据库方面关注得比较少,而且开发基本都是自己一个人一台机器上完成,所以也没觉得这种操作特别麻烦。

后来换台机器继续写代码的时候,就会发现,这种方式真的是太不方便了,当我在A电脑上修改了代码,并且修改了数据表结构之后,去B电脑上通过GIt同步代码,但是数据表结构还得copy一份A电脑上修改过的数据表结构,想想也是醉了。这种实现方式不仅比较Low,并且维护起来也非常的不方便,一方面要写交互逻辑代码,一方面要拼接sql语句来获取数据。

从理论上讲应该在后台业务逻辑以及数据库取数逻辑中间再架一层,将数据库操作全部封装起来,调用对象方法而取消拼接SQL来实现数据的获取,没错,这就是ORM(Object Relational Mapping)框架。J2EE开发三剑客SSH中的Hibernate就是ORM的一种实现方式。Node Web开发中,我找到了Sequelize,看看文档,用起来感觉还是不错,最起码解决了我的上述的困扰。

引入模块等等准备工作我就不多废话了,直接上手实战。

1. 创建连接对象,并模块化

新建数据库连接模块dbConnect.js,单独提出连接数据库的对象sequelize,如下代码:

var Sequelize = require('sequelize');
// 引入数据库配置文件
var sqlConfig = require('config-lite')(__dirname).mysql;

var sequelize = new Sequelize(sqlConfig.database, sqlConfig.user, sqlConfig.password, {
    host: sqlConfig.host,
    dialect: 'mysql',
    pool: {
        max: 10,
        min: 0,
        idle: 10000
    }
});
module.exports = sequelize;

上面代码使用了配置模块config-lite,具体使用可以参考这篇文章。然后根据数据库的一些参数,创建了sequelize的数据库连接模块。

2. 定义数据表结构,将表结构写进代码里

目前我使用的方式是:每个表对应一个文档,放入Node项目中models目录中,这里拿我创建的一个todolist表来做示例,在models目录中创建todolist.js文件,代码如下:

var Sequelize = require('sequelize');
var sequelize = require('./dbConnect.js');

var todolist = sequelize.define('todolist',{
    id: {
        type: Sequelize.BIGINT(11),
        primaryKey: true,
        allowNull: false,
        unique: true,
        autoIncrement: true
    },
    title: Sequelize.STRING(100),  // 标题
    content: Sequelize.STRING(500),  // 详细内容
    priority: Sequelize.INTEGER,  // 级别
    owner: Sequelize.STRING,  // 承接人
    officer: Sequelize.STRING, // 负责人
    startDate: Sequelize.STRING, // 开始时间
    planFinishDate: Sequelize.STRING, // 计划完成时间
    realFinishDate: Sequelize.STRING, // 实际完成时间
    bz: Sequelize.STRING(500), // 备注
    state: Sequelize.INTEGER,  // 状态
    createdAt: Sequelize.BIGINT,
    updatedAt: Sequelize.BIGINT,
    version: Sequelize.BIGINT
},{
    timestamps: false   // 不要默认时间戳
});

module.exports = todolist;

以上代码,直接引入之前创建的sequelize对象,然后使用defind方法定义数据表结构。其他的所有数据表都可以通过这种方式来定义,保存在每一个独立的文件中,引出数据模块即可。

3. 同步数据表结构

这个就简单了,单独创建一个工具类,我的做法是在项目中新建libs/util目录,然后新建syncTable.js,代码如下:

var todolist = require('../../models/todolist.js');

// 同步表结构
todolist.sync({
    force: true  // 强制同步,先删除表,然后新建
});

这样就OK了,当每次我换电脑继续项目的时候,不用单独操作数据库以确保数据库结构一致了,只需要手动执行一下该方法就可以了。

4. 创建一些初始数据

通过这种方法,我们同样可以创建一个工具类,用来初始化一些基础数据,如下addMasterData.js代码:

var priority = require('../../models/priority.js');
// 创建u_priority表的基础数据
priority.create({
    title: '重要 紧急'
}).then(function (p) {
    console.log('created. ' + JSON.stringify(p));
}).catch(function (err) {
    console.log('failed: ' + err);
});

priority.create({
    title: '重要 不紧急'
}).then(function (p) {
    console.log('created. ' + JSON.stringify(p));
}).catch(function (err) {
    console.log('failed: ' + err);
});

priority.create({
    title: '不重要 紧急'
}).then(function (p) {
    console.log('created. ' + JSON.stringify(p));
}).catch(function (err) {
    console.log('failed: ' + err);
});

priority.create({
    title: '不重要 不紧急'
}).then(function (p) {
    console.log('created. ' + JSON.stringify(p));
}).catch(function (err) {
    console.log('failed: ' + err);
});

prioritys表里创建一些初始数据,默认表名会添加s,定义表的时候可以通过tableName属性值来定义对应的表名,如下示例将表名定义为u_priority

var priority = sequelize.define('priority',{
    id: {
        type: Sequelize.BIGINT(11),
        primaryKey: true,
        allowNull: false,
        autoIncrement: true
    },
    title: Sequelize.STRING,
},{
    timestamps: false,
    tableName: 'u_priority'  // 数据表名为u_priority
});

好了,本次就到这里,深入学习后再做分享。

阅读更多

你真的穷得连个手机都买不起了吗

最近,iPhone X发售了,我的心又动了,这两天尽关注双11哪款产品又降价了,你看,那个iPhone 8都跌破5000了,还在降。诶,媳妇你看到了吗,iPhone 8都降价1000多块钱了。。。

那天没啥事,在亚马逊上买了一个特别好看的户外匕首,在家里专职开快递箱媳妇都嫌它不好用;买了个STM velo2的背包,产品设计不错,并且容量大,适合户外旅游,现在在家里积灰,媳妇说为了它你也要出去旅游一次呀;去逛小米之家了,买了一只金色的签字笔,只是被媳妇用了两回仍在桌上供观赏了。

每过一段时间我总是需要一些新鲜的产品来刺激一下我平淡的生活,我可能并不是真的需要它,也许只是心里在作祟。我一直是个比较无趣的人,也就是媳妇说的“不太好玩”。但是我对产品的要求一直比较高,品牌无所谓,外观设计,内在系统是最主要的原因,主要原因当然还包括价钱。针对数码设备更是喜爱,Applesony等产品更是爱中之爱。然而数码设备的价钱大多数都超过了媳妇给我设置的自由消费金额。心里一旦对某个数码产品痒痒的时候,我就开始不消停了,渐渐的媳妇都知道了我的套路。

买只笔我就能消停一下午;买个蓝牙耳机也能消停几天;买个新手机也许能消停个几个月,给手机换个新系统,又能消停一个月。就像女生看待服装似的,总觉得还缺点什么。对于我来说就是机械或是数码产品,数码产品甚是如此。况且互联网产品层出不穷,看得上眼的数码产品越来越多了。于是一段时间过去,我就开始蠢蠢欲动了,总想给平淡的生活再添加点什么乐趣。但是90%的产品,都得经过媳妇的许可才行呀。于是我就开始了软磨硬泡,媳妇每回这个时候,就把我拽到一边,跟我说:“来,我跟你分析一下,你到底需要不需要balabalabalabala”,每次都要给我“上课”,让我认清现实,不要冲动消费。

“当然这些道理我也明白,就像抽烟一样,谁都知道抽烟对身体伤害大,能戒掉烟的人对自己得有多狠呀。”
“再举个例子,你看看鞋柜里我的那些鞋,以前我一双鞋子穿春夏秋冬,现在每个季度二到三双,快跟你似的了。再看看你的那些鞋子”
“我还不是为了你,没良心的”
“我知道,是不是两双打八折或者买一送一”
“送的也是我那双”

最后,每次媳妇都还是顺从了我的意思,而当她不再阻止我的时候,我却又理性起来,想想自己由于冲动消费的产品也还是要犹豫好久好久。

想想这个过程也是蛮矛盾的,根本上并不是金钱的原因让你犹豫,思来想去终归是自己优柔寡断的性格导致的,我想大多数人应该都有这样的一面,做什么事情都要想很多,想很久,想出去旅个游,计划来计划去,终归还是没有去。

每个人都渴望自由,无拘无束,又有多少人真的能洒脱到来一场说走就走的旅行;遇到自己喜欢的东西,买(当然能够到的),一辈子又能遇到多少真正喜欢的东西。遇到自己喜欢的姑娘,直接去表白,有什么好犹豫的。别跟我说什么等我实现财务自由的那天就可以晒脱了,世界这么大,大家都那么忙,时间都这么紧张,谁有空陪你墨迹,陪你等。

阅读更多

当我在码字的时候,他们都嘲笑我,当我写出一篇好文时

母校图书馆

最近一段时间,也不知道是最近工作比较烦躁,还是自己偷懒了的缘故,总感觉有好长一段时间没有写文章了,中间其实有很多纪念意义的事情都是值得去记录下来的。比如,我升职了,我买房了,我郁闷了去廊坊见老师了,我们大学宿舍6个相识十周年回天津聚会了,疯了两天两夜。这里的每一件事情对于我来说都是非常有纪念意义的。

可是,我却每次都错过了最佳的记录时间,一而再再而三的拖,拖到最后,感觉慢慢的淡了,又回到了正常的生活,对当时的激动,快乐,郁闷,感动时刻都模糊了,再提起笔来,已然没有了继续写下去的动力。

媳妇最近总是说,“我发现你变了,变得更不好玩了”。我其实一直是个比较内向的人,不爱主动跟别人交流,喜欢跟自己交流。从小就喜欢写些乱七八糟的流水账日志,早上做了什么,中午做了什么,晚上做了什么,加上总结:这是美好的一天,一篇日记就诞生了。上学时期从来都不觉得写日记是个特别痛苦的事情,每次看到同学会为了一篇作文绞尽脑汁的时候,我就觉得特别不可思议。犹记得在写作文这块最有成就的一件事情就是有一次考语文的时候,做到最后一个作文题的时候,一看时间只剩下20分钟了,提笔就开始写,哪有什么时间去想什么构思什么段落结构,最后写完了竟还有时间读一遍改改错别字啥的,最不可思议的是竟然得了45分(满分60分)。

提到写文章,我从来都是不怕的,总有乱七八糟的话说,就像是在跟自己对话。学生时期作文题从来没有跑过题,但是也从没有得过高分,总是在40-50之间。语文老师每次给我的评价大概意思都是:“语句通顺,文章读起来顺畅,但是论点平凡,立意不深。”说白了就是文笔不行呗,没有华丽的辞藻,没有名人典故事迹,没有对事物深刻的认识,写出来的东西总觉得少点什么,对,缺少灵魂。

就像这篇文章似的,短短十来分钟已然六百多字,写到这里我还不知道我到底想表达什么。也没有对最近紧张的工作生活的一个总结,也没有想具体谈谈近期发生在我身上的一系列事情,也没有表现对社会国家的关心,对时事政策的探讨,可能仅仅只是脑海里一个声音:“你该写点什么了”在召唤我,让我打开编辑器敲上点文字,记录下此时此刻我想对自己说的话,当多年以后,看到自己写的这篇文章,会发现:其实我还是和以前一样不太好玩,还是喜欢这样“自言自语”的跟自己说说话,仅此而已。

就这样。。。

阅读更多

读了一遍,发现写的是满篇的垃圾

每一段不同于日常的经历都值得去珍惜去回味,因为那里存在着不同于日常的一种生活,这样的生活就是独立于你日常生活的另外一个『个体』,在这样的一个『个体』中,你会遇到一些人,一些事,完全不同于日常生活。但是又和日常的生活一样,会存在你佩服的人,你喜欢的人,你讨厌的人,同样也会存在一些你喜欢做的事情,你讨厌做的事情,让你烦心的事情,让你快乐的事情。它就像你人生中的一个意外,一段奇妙旅程。时间到了,这个『个体』就解散了,你又回到了日常的生活或是进去另外一个『个体』,之前那个『个体』的存在可能会给你的日常留下一些影响或是回忆,但是遗忘它仅仅只是时间问题。

这样的『个体』在我们每一个人的一生中都有无数个,上学期间的每一个时期,每一个活动,每一次培训,每一个旅行等等都是我们生活中的一个『个体』。这样的个体很多,个体的时间越长越像一个缩小版的人生,时间越久留给你的回忆就越模糊。想记起却又不知从哪里开始回忆,你尝试去回想一下,你的小学,你的初中,高一,高二,高三这些『个体』里还留下多少的回忆,我想大多人都不会留下太多了。

毕业进入职场之后,生活进入另一个『个体』,也基本稳定下来了,两点一线的奔波于家与公司之间,遇到的人和事也基本上是固定的,这就是我所说的日常生活。在这样的日常生活中出现了一个『个体』,我参加了公司针对新员工举办的产业人养成特训营。

我将到一个陌生的地方和一群陌生的人待在一起12天干着一件陌生的事情,12天的衣食住行完全不同于日常生活。这个『个体』可能也是我经历最为特殊的一个了,好多次『第一次』的经历都在这里发生了。

从没有短时间内加过这么多不熟悉的人的联系方式,从没有短时间内主动打过那么多陌生人的电话,从没有这么长时间微信步数一直保持在15000以上,从没有…,在这个『个体』中有太多的第一次。

每一个『个体』都是一个微小版的『人生』,在里面酸甜苦辣都有,有佩服的人,有不喜欢的人,有知心伙伴,有人生导师,有给你快乐的人,有让你讨厌的人。

阅读更多

了解express的路由方法 - Node实战

一直使用Express脚手架(express-generator模块)直接生成项目目录,使用命令express -e ./test,生成目录后会创建一些项目目录,如下:

路由相关逻辑都是写在了routes/目录里,如果想创建一些新的路径,需要新建路由文件,然后在app.js里定义这个路由文件,并添加中间件。app.js代码如下:

// ...省略
var routes = require('./routes/index');
var users = require('./routes/users');
var admins = require('./routes/admins');
var systems = require('./routes/systems');

var app = express();
// ...省略

app.use('/', routes);
app.use('/user', users);
app.use('/admin', admins);
app.use('/sys', systems);
// ...省略

路由越多,app.js里的路由相关代码就越多,显得有点乱。能不能把这块代码转移出去,最好转移到routes/目录下,学习N-blog项目的时候,发现项目中路由注册相关代码正好写进了routes/

每一个路由对象都是中间件的一个实例,上面的代码可以先写成如下:

// ...省略
var app = express();
// ...省略
app.use('/', require('./routes/index'));
app.use('/user', require('./routes/users'));
app.use('/admin', require('./routes/admins'));
app.use('/sys', require('./routes/systems'));
// ...省略

我们将routes/目录下文件index.js改成一个普通对象如下:

module.exports = function(app){
  app.use('/', require('./routes/home'));
  app.use('/user', require('./routes/users'));
  app.use('/admin', require('./routes/admins'));
  app.use('/sys', require('./routes/systems'));
};

将路由分别放进routes/home.jsroutes/user.jsroutes/admins.jsroutes/systems.js四个文件中,来对应4个路径://useradmin/sys

最后在app.js里引入routes/index.js模块就行了,如下代码:

var routes = require('../routes');  // require一个目录会默认寻找该目录下的index.js文件
var app = express();
routes(app);

这样的话,再新添加一个路由,直接在routes/index.js里添加相关代码即可,不必再动app.js了,这样整体看起来会整齐一些。

阅读更多