node.js基础教程(6):自定义模块

要求

这个问题和前面一个一样,但是这次需要使用模块。将需要创建两个文件来解决这个问题。

编写一个程序来打印出所给文件目录的所含文件的列表,并且以特定的文件名后缀来过滤这个列表。这次将会提供两个参数,第一个参数是要列举的目录,第二个参数是要过滤的文件扩展名。在终端中打印出过滤出来的文件列表(一个文件一行)。此外,必须使用异步 I/O。

需要编写一个模块文件去做大部分的事情。这个模块必须导出(export)一个函数,这个函数将接收三个参数:目录名、文件扩展名、回调函数,并按此顺序传递。文件扩展名必须和传递给程序的扩展名字符串一模一样。也就是说,请不要把它转成正则表达式或者加上”.”前缀或者做其他的处理,而是直接传到模块中去,在模块中,可以做一些处理来使过滤器能正常工作。

这个回调函数必须以 Node 编程中惯用的约定形式(err,data)去调用。这个约定指明了,除非发生了错误,否则所传进去给回调函数的第一个参数将会是 null,第二个参数才会是数据。在本题中,这个数据将会是过滤出来的文件列表,并且是以数组的形式。如果接收到了一个错误,如:来自fs.readdir() 的错误,则必须将这个错误作为第一个,也是唯一的参数传递给回调函数,并执行回调函数。

绝对不能直接在模块文件中把结果打印到终端中,只能在原始程序文件中编写打印结果的代码。

当程序接收到一些错误的时候,请简单的捕获它们,并且在终端中打印出相关的信息

这里有四则规定,模块必须遵守:

  • 导出一个函数,这个函数能准确接收上述的参数。
  • 当有错误发生,或者有数据的时候,准确调用回调函数。
  • 不要改变其他的任何东西,比如全局变量或者 stdout。
  • 处理所有可能发生的错误,并把它们传递给回调函数。

遵循一些约定的好处是,模块可以被任何其他也遵守这些约定的人所使用。


阅读全文 »

node.js基础教程(5):过滤器

要求

编写一个程序来打印出指定目录下的文件列表,并且以特定的文件名扩展名来过滤这个列表。命令行提供两个参数提,第一个是所给的文件目录路径(如:path/to/dir),第二个参数则是需要过滤出来的文件的扩展名。

举个例子:如果第二个参数是 txt,那么需要过滤出那些扩展名为 .txt的文件。

注意,第二个参数将不会带有开头的”.”。

需要在终端中打印出这个被过滤出来的列表,每一行一个文件。另外,必须使用异步的I/O 操作。


阅读全文 »

node.js基础教程(4):异步IO读写

要求

编写一个程序,执行一个异步的对文件系统的操作:读取一个文件,并且在终端(标准输出stdout)打印出这个文件中的内容的行数。类似于执行 cat file | wc -l 这个命令。 所要读取的文件的完整路径会在命令行第一个参数提供。


阅读全文 »

node.js基础教程(3):同步IO读写

要求

编写一个程序,执行一个同步的文件系统操作,读取一个文件,并且在终端(标准输出stdout)打印出这个文件中的内容的行数。类似于执行 cat file | wc -l 这个命令。

所要读取的文件的完整路径会在命令行第一个参数提供。


阅读全文 »

node.js基础教程(2):命令行参数

##要求
编写一个简单的程序,使其能接收一个或者多个命令行参数,并且在终端(标准输出 stdout)中打印出这些参数的总和。


阅读全文 »

node.js基础教程(1):helloworld

##要求

编写一个程序,在终端(标准输出 stdout)打印出 “HELLO WORLD”。


阅读全文 »

《程序员跳槽全攻略》读书摘要

偶然间看到了这本书,看着页数不多,就索性一口气看完了
这本书分三部分:原理、准备、操作

原理篇

使用价值

根本原则是你的价值(薪水)和你牛不牛无关,只和你能为雇主提供多少价值有关(大多数情况下,你能力越强提供价值越多)。

供需

如果你能在一个大的需求中切中一个需大大大于求的细分市场,那么你就能得到远高于其他人的回报。这就好比炒股一样,有的企业可能并不为人知,但是属于细分产业的龙头企业,具有一定的垄断地位,前景自然不会差。

信息透明度

求职者和招聘者是信息不对称的,要想拿到足够好的薪资和获得足够多的机会,一定要在短时间内获得大量的机会,这样才能做选择题而不是判断题

跳槽不是什么

跳槽不是为了追求价值最大化,原因有两个:

工作是生活的一部分,上班占生活时间的三分之一,如果只是因为高薪选择了一家上班不开心的公司,那么就下来的三分之一日子你都会在痛苦中渡过,而人的一生是有限的。
职业上的选择,每一步都是好几年的时光。一旦走下去,就很难回头。所以眼光放长远点,不要只看眼前的高薪,更要看好未来的发展,方向错了,跑得越猛输得越狠。

跳槽不是找工作

跳槽是换工作,它和刚毕业不一样,它是有成本的。权衡得失,不裸辞。

跳槽不是加薪砝码

不要以跳槽为砝码去谈加薪,这种胁迫性的谈薪资方式会使主管对你丧失信任。同样当你跳槽时,如果你的主管通过加薪来挽留你,最好也不要同意。

程序员如何谈薪资

  • 讲一讲自己在工作上的成长,看主管是否认同
  • 从能力提升角度,向主管要一个更大的发展空间和更大的业务挑战
  • 问问当你能力达到这个水平时,薪资是否可以同步提升起来
    这样有几个好处
  • 它建立了一个谈话基础:薪资和能力匹配
  • 它不谈现在薪资,而是谈未来,不会给主管立刻带来涨薪的压力
  • 体现了自己对能力提升的渴望,而如果在谈话中出现任何不顺利,你可以中途把对话结束,根本不提加薪的事情
    阅读全文 »

Grunt入门

#1. 安装grunt
npm i -g grunt
npm i -g grunt-cli

阅读全文 »