Hello Js Week2

課程大綱

Hello JS GitBook

  • npm : npm指令、package.json內容
  • Hexo : 安裝、設定、上傳
  • JavaScript : Es6(es2015)、callback、Promise、Async,Await(Es7)
  • TDD : sequelize、Facebook API

課程心得

先講最後心得,上課內容很充實,感謝老師們用心的準備、示範

雖然是坐在下面聽課,也是很耗體力、腦力的啊 呵呵…

這次有幫助到幾位同學排除問題,算是有派上用場了QQ


npm

官方文件,可以看看他們 Youtube 頻道教學影片(是女『聲』喲)

package.json 內 dependencies, devDependencies 的作用

當初這兩個差別找了一段時間特別有印象

npm install --save ,npm install --save-dev

分別寫入 package.json 的 dependencies 跟 devDependencies

script 可以節省打一堆指令,很方便(前提是知道怎麼做)

nvm

使用 nvm 可安裝不同的 node, npm 版本,並且可以切換node版本,只是相同的module在不同版本

全域環境 npm install -g 需要個別安裝一次就是了

安裝參考


Hexo

全「靜態」Blog 網頁,可以放在 GitHub Page

來上課之後才知道有這樣方便的套件與功能,真的很棒可以免費取得自己的網頁伺服器

而不用申請網域、VPS、架設伺服器…etc等方面,這樣的功能寫筆記、日記相當足夠

由於上課之前有先練習過,所以上課的時候能夠幫助到同學排除障礙,內心挺滿足的

特別要注意的部分就是在 deploy 之前建議執行 hexo clean 來清除之前所留下的檔案

避免上傳後樣式、內容不正確。

設定 _config.yml 須注意:後面接值都要空一格「空白」

1
2
// 若要上傳到 GitHub 需要安裝套件
npm install hexo-deployer-git --save

JavaScript

聽課大致上沒什麼大問題, scope 概念可以改善之前 var 導致存取變數非預期狀況

改用 let, cont定義變數

callback 會一時間看不出程式執行的方式,會一直傳入function

改用 promise 與 async, await 大大改善了可讀性,但ES6, 7 才支援

遇到舊版本JavaScript還是需要使用 callback

可以到這裡 babel 測試 es6, 7 語法以及 Arrow function


TDD (Test-Driven Development) 測試驅動開發

寫測試很重要,可以節省後面測試的時間,避免重複輸入、重開程式等等動作

但,還是不是很熟悉 Orz,畢竟之前習慣是邊寫邊console.log看輸出的內容

相信上手後一定能獲得改善。

利用這次課程作業再好好的熟悉一次

寫測試的語法

  • Mocha 測試架構
  • Chai should 語法的使用方式

可利用 only 來進行單一測試,或是skip來跳過特定測試

測試的beforeEachafterEach

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
beforeEach(async function(done){
//“每次”執行每一個測試的時候都會執行的動作
//可以將需要使用的變數、物件在這邊生成
try{
done();
}
catch(e){
done(e);
}
});
afterEach(async function(done){
//“每次”執行完測試後會做的動作,類似清除資料等動作
try{
done();
}
catch(e){
done(e);
}
});

sequelize

是一款 ORM 操作資料庫套件,也是需要多看看、熟悉,經由上課的練習,有稍稍抓到一些「感覺」

熟悉資料庫是後端必備技能,自我提醒。一定要多加熟悉

FB API

此次課程的回家作業,老師在上課時有示範過如何取得「朋友」清單,以及「發文」功能

當初自己在找 API token 時還真花了不少時間…

還需要瞭解 fb 這個 npm module 的 method有哪些可以使用