1.git 學(xué)習(xí)
什么是git渺尘?
Git是一款免費(fèi)、開(kāi)源的分布式版本控制系統(tǒng)说敏,用于敏捷高效地處理任何或小或大的項(xiàng)目鸥跟。
git的下載
下載網(wǎng)址:https://git-scm.com/downloads
git的安裝使用
推薦網(wǎng)址:http://blog.jobbole.com/78960/
2.Nodejs 學(xué)習(xí)
什么是node.js?
Node.js是一個(gè)Javascript運(yùn)行環(huán)境(runtime)盔沫。實(shí)際上它是對(duì)Google V8引擎進(jìn)行了封裝医咨。V8引 擎執(zhí)行Javascript的速度非常快迅诬,性能非常好腋逆。Node.js對(duì)一些特殊用例進(jìn)行了優(yōu)化,提供了替代的API侈贷,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好惩歉。
如何使用node.js
推薦網(wǎng)址http://www.runoob.com/nodejs/nodejs-tutorial.html
3.jasmine框架
如何下載和安裝?
本地下載:npm install --save-dev jasmine
聯(lián)網(wǎng)下載:npm install -g jasmine
如圖:
在聯(lián)網(wǎng)的情況下他會(huì)自動(dòng)安裝俏蛮,輸入如下命令若顯示版本號(hào)則表示安裝成功
4.用Nodejs和Git完成TDD編程
測(cè)試代碼:
describe("Word Frequency", function() {
var main = require('../../lib/jasmine_examples/Player');
it('return empty string given empty string',function(){
var result=main('');
var expect_string='';
expect(expect_string).toEqual(result);
})
it('return string given one word',function(){
var result=main('he');
var expect_string='he 1';
expect(expect_string).toEqual(result);
})
it('return string given two different words',function(){
var result=main('he is');
var expect_string='he 1\r\nis 1';
expect(expect_string).toEqual(result);
})
it('return string given duplicated words',function(){
var result=main('he is he');
var expect_string='he 2\r\nis 1';
expect(expect_string).toEqual(result);
})
it('return string given duplicated words need to be sorted',function(){
var result=main('he is is');
var expect_string='is 2\r\nhe 1';
expect(expect_string).toEqual(result);
})
it('return string given words splited by multiple spaces',function(){
var result=main('he is');
var expect_string='he 1\r\nis 1';
expect(expect_string).toEqual(result);
})
});
功能代碼
function main(words) {
if(words!=='') {
var wordArray=words.split(/\s+/);
var groupWords=group(wordArray);
groupWords.sort((x,y)=> y.count- x.count);
return groupWords.map((w) => format(w.word, w.count)).join('\r\n');
}
else return '';
}
var format =function(word,count){
return word+' '+count;
};
var group= function (wordArray) {
var array=[];
wordArray.forEach((word)=>{
var entry =array.find((e)=> e.word===word);
if(entry){
entry.count++;
}else{
array.push({word:word,count:1});
}
});
return array;
}
module.exports = main;
git版本信息
5.提交到遠(yuǎn)程倉(cāng)庫(kù)
$ git remote add origin https://github.com/chechenxm/FrequencyNumber.git
$ git push -u origin master
截圖:
git倉(cāng)庫(kù)地址:https://github.com/LiuHuiRious/WordFrequency
6.心得
這次實(shí)驗(yàn)讓我發(fā)現(xiàn)我對(duì)于一門新技術(shù)的學(xué)習(xí)能力有些欠缺,一是難以找到學(xué)習(xí)的路徑争涌,二是理解能力有待加強(qiáng)。在學(xué)習(xí)TDD編程的時(shí)候我是完全蒙圈的亮垫,在別人的指點(diǎn)下才勉強(qiáng)能夠自己建立一個(gè)測(cè)試項(xiàng)目,而且在編寫代碼的時(shí)候?qū)τ趈avascript的使用也很不熟練饮潦。不過(guò)這次的收獲也很多,學(xué)會(huì)了如何使用git和node.js一起來(lái)完成TDD編程继蜡,也知道如何自己建立項(xiàng)目去寫一些簡(jiǎn)單的測(cè)試。我會(huì)做更多的練習(xí)稀并,來(lái)加強(qiáng)這些能力。