- C-a == Ctrl-a
- M-a == Alt-a
:q close
:w write/saves
:wa[!] write/save all windows [force]
:wq write/save and close
import { useState, useMemo } from 'react' | |
class ArrayUtil { | |
static range(...T) { | |
let start, end; | |
if (T.length === 1) { | |
start = 0; | |
end = T[0]; | |
} else { |
/* | |
* Easing Functions - inspired from http://gizma.com/easing/ | |
* only considering the t value for the range [0, 1] => [0, 1] | |
*/ | |
EasingFunctions = { | |
// no easing, no acceleration | |
linear: t => t, | |
// accelerating from zero velocity | |
easeInQuad: t => t*t, | |
// decelerating to zero velocity |
在開發過程中,當需求變得龐大且模糊時,會延長開發週期,而無法在一個 sprint (2~4週) 完成,也就無法給顧客即時的回報,如果花費大量 | |
的時間開發,最後與客戶的方向不同,會得不償失。 | |
在 Scrum 的開發流程中,我們將需求依需求尺寸由大到小分成 Investment theme, epic, feature, user story, task. | |
Investment theme: 投資主題,主要定義主方向,像我們提供的 Investment theme 為教育服務,或許這個概念比較抽象,你可以把它想成 myViewBoard.com。 | |
Epic: 顧名思義就是很長的敘事性詩篇,在 Scrum 的開發過程中,屬於 high level 的需求描述,你可以想成 myViewBoard.com 中各個 | |
子網站,如 Start myViewBoard, myViewBoard classroom 等。 |
### Node template | |
# Logs | |
logs | |
*.log | |
npm-debug.log* | |
yarn-debug.log* | |
yarn-error.log* | |
# Dependency directories | |
node_modules/ |
class Socket { | |
constructor( | |
domain, | |
{ reconnection = true, reconnectionDelay = 1000 } = { | |
reconnection: true, | |
reconnectionDelay: 1000, | |
} | |
) { | |
this.ws = this.connect(domain); | |
this.reconnection = reconnection; |