1.git 学习
什么是git?
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
git的下载
下载网址:https://git-scm.com/downloads
git的安装使用
推荐网址:http://blog.jobbole.com/78960/
2.Nodejs 学习
什么是node.js?
Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
如何使用node.js
推荐网址http://www.runoob.com/nodejs/nodejs-tutorial.html
3.jasmine框架
如何下载和安装?
本地下载:npm install --save-dev jasmine
联网下载:npm install -g jasmine
如图:
在联网的情况下他会自动安装,输入如下命令若显示版本号则表示安装成功
4.用Nodejs和Git完成TDD编程
测试代码:
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.提交到远程仓库
$ git remote add origin https://github.com/chechenxm/FrequencyNumber.git
$ git push -u origin master
截图:
git仓库地址:https://github.com/LiuHuiRious/WordFrequency
6.心得
这次实验让我发现我对于一门新技术的学习能力有些欠缺,一是难以找到学习的路径,二是理解能力有待加强。在学习TDD编程的时候我是完全蒙圈的,在别人的指点下才勉强能够自己建立一个测试项目,而且在编写代码的时候对于javascript的使用也很不熟练。不过这次的收获也很多,学会了如何使用git和node.js一起来完成TDD编程,也知道如何自己建立项目去写一些简单的测试。我会做更多的练习,来加强这些能力。