# Node.js Newbie
* linux操作系統和bash編程要會(以后要有一定的服務器部署、運維工作)
* vi是編輯器,需要會使用
* git必須會,目前最火的版本控制工具
* 常用命令行工具(ack,autojump等)
## 前端入門的4本書
* 精通CSS+DIV 網頁樣式與布局?[http://product.china-pub.com/35553](http://product.china-pub.com/35553)
* 精通CSS:高級Web標準解決方案(第2版)[http://product.china-pub.com/196593](http://product.china-pub.com/196593)
* 鋒利的jQuery(第2版)?[http://product.china-pub.com/3661548](http://product.china-pub.com/3661548)
* GitHub入門與實踐?[http://product.china-pub.com/4727673](http://product.china-pub.com/4727673)
第一本書是傻瓜式的入門的書,老點,但簡單,符合國人思維,入門html和css比較合適
第二本書是css領域不錯的書,加深理解css,努力成為一個合格的前端
第三本書是jquery的書,也是很簡單,為啥沒有直接javascript的原因是,jq足夠簡單,先實習效果,以后再慢慢補js基礎即可,如果上來就js,很多人是搞不定的
第四本書是git和github的用法,是版本控制里比較簡單的,比較適合入門
## 要求
* ubuntu
* sublime text3(或者vsc?[https://github.com/i5ting/vsc)](https://github.com/i5ting/vsc%EF%BC%89)
* 編碼風格?[https://github.com/dead-horse/node-style-guide](https://github.com/dead-horse/node-style-guide)
* 常用命令行工具
## Tips
### 編輯器
只允許文本編輯器,不準使用任何IDE
使用sublime的快速打開文件
~~~
ctrl + p(mac是command + T)
~~~
在終端里使用subl命令打開文件,(如果是mac,需要安裝[https://github.com/i5ting/subl)](https://github.com/i5ting/subl%EF%BC%89)
~~~
subl app.js
~~~
快速定位到某一行
~~~
ctrl + g (mac是command + L)
~~~
* [網上找的](http://my.oschina.net/nodeonly/blog/489463)
關于tab配置
~~~
{
"default_encoding": "UTF-8",
"default_line_ending": "unix",
"font_size": 10,
"rulers":
[
80
],
"tab_size": 2,
"translate_tabs_to_spaces": true,
"word_wrap": "false"
}
~~~
### 使用oh-my-zsh
* 官網?[http://ohmyz.sh/](http://ohmyz.sh/)
* 代碼?[https://github.com/robbyrussell/oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh)
安裝步驟
* 先安裝zsh
* 安裝oh-my-zsh
以后環境變量在~/.zshrc里
### 安裝ack,命令行查找代碼
[http://beyondgrep.com/install/](http://beyondgrep.com/install/)
Ubuntu
* Package "ack-grep"
sudo apt-get install ack-grep
Mac
* brew install ack
### 使用autojump跳轉目錄
[https://github.com/wting/autojump](https://github.com/wting/autojump)
Linux
~~~
sudo apt-get install autojump
~~~
Mac os
~~~
brew install autojump
~~~
需要修改~/.zshrc里的plugin,修改為
~~~
plugins=(git autojump)
~~~
然后
~~~
source ~/.zshrc
~~~
至此,已經完成了安裝。
此后cd到任意目錄,以后就可以使用j這個直達到某個目錄了,下面是示例:
~~~
? nodejs-newbie git:(master) ? cd ~/workspace/github/nodejs-newbie
? nodejs-newbie git:(master) ? cd ~
? ~ j nodejs-n
/Users/sang/workspace/github/nodejs-newbie
? nodejs-newbie git:(master) ?
~~~
如果想玩的更high,可以參見[https://github.com/clvv/fasd](https://github.com/clvv/fasd)
### 查詢文檔
* [http://zealdocs.org/](http://zealdocs.org/)?(推薦,離線下載)
有很多doc在dash(mac)里默認是沒有的;
see here :?[http://kapeli.com/docset_links](http://kapeli.com/docset_links)
如果是下載到本地的docset,放到zealdocs目錄下面,需要重啟zeal
- 前言
- 1 skill
- 1.1 Coding WebIDE
- 1.2 git
- 1.3 extra practice
- 1.4 預習
- 2 nodejs入門
- 2.1 入門
- 2.2 安裝
- 2.3 helloworld
- 2.4 commonJS規范
- 2.5 模塊導出
- 2.6 Nodejs代碼調試
- 2.7 編寫Nodejs模塊
- 2.8 最小化問題
- 2.9 隨堂練習
- 3 異步流程控制
- 3.1 什么時候會用到異步流程控制
- 3.2 簡單做法async模塊
- 3.3 Promise/a+規范
- 3.4 Node.js Promise/a+實現
- 3.5 生成器Generators/yield
- 3.6 Async函數/Await
- 3.7 神奇的co
- 3.8 5種 yieldable
- 3.9 學習重點
- 3.10 隨堂練習
- 4 express和微信開發入門
- 4.1 入門
- 4.2 connect
- 4.3 靜態Http服務器
- 4.4 那些預處理器
- 4.5 路由
- 4.6 視圖與模塊引擎
- 4.7 中間件
- 4.8 更多實踐
- 4.9 微信入門
- 4.10 隨堂練習:完成登錄、注冊功能
- 5 微信實例與H5實踐
- 5.1 微信基礎和sandbox
- 5.2 公眾號菜單和自動回復
- 5.3 微信OAuth用戶授權
- 5.4 微信分享
- 5.5 wechat-api
- 5.6 H5-上篇
- 5.7 H5-下篇
- 5.8 隨堂練習
- 6 weui實戰
- 6.1 使用bower
- 6.2 移動端抽象
- 6.3 優化滑動列表
- 6.4 weui
- 6.5 讓weui和iscroll結婚
- 6.6 優化事件
- 6.7 how-to-write-h5
- 6.8 優化無止境
- 6.9 隨堂練習
- 7 微信支付
- 7.1 吹個牛
- 7.2 支付概述
- 7.3 科普幾個概念
- 7.4 準備
- 7.5 調試
- 7.6 公眾號支付(JSAPI)
- 7.7 對賬單
- 7.8 數據處理
- 7.9 隨堂練習
- 8 項目實戰《付費課程系統MVP》
- 8.1 需求分析
- 8.2 ui/ue
- 8.3 技術棧
- 8.4 模型
- 8.5 靜態api
- 8.6 開發
- 8.7 部署
- 8.8 監控
- 8.9 數據統計
- 8.10 demo
- 9 高級篇
- 9.1 前后端分離實踐?
- 9.2 如何展望未來的大前端
- 9.3 容器和微服務
- 10 答疑問題收集