ThoughtWorks-成都信息工程学院创新实验室

Frequency Number

2017-05-19  本文已影响4人  TW_TOB_陈丹阳

为什么使用Git:

能够对文件版本控制和多人协作开发
拥有强大的分支特性,所以能够灵活地以不同的工作流协同开发
分布式版本控制系统,即使协作服务器宕机,也能继续提交代码或文件到本地仓库,当协作服务器恢复正常工作时,再将本地仓库同步到远程仓库。
当团队中某个成员完成某个功能时,通过pull request操作来通知其他团队成员,其他团队成员能够review code后再合并代码.
Git常用命令:
创建仓库
git init
git clone
git config
保存修改
git add
git commit
查看仓库
git status
git log --oneline

TDD是什么:

TDD(Test-Driven Development)
测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。

任务要求:

我想要一个nodejs小程序,
它可以帮我处理一段字符串信息,这段字符串信息是由英文单词组成,每两个单词之间有空格,
处理结果也为一段字符串,这个字符串应该每行只显示一个单词和它的数量,并且按出现频率倒序排列

excmple:

input:

“it was the age of wisdom it was the age of foolishness it is”

Output:

it 3
was 2
the 2
age 2
of 2
wisdom 1
foolishness 1
is 1

代码:

var format = function (word,count){
return word +" "+ count;
};
var group = function(wordArray){
return wordArray.reduce((array,word) => {
let entry = array.find((e) =>e.word ===word);
if(entry){
entry.count++;
}else{
array.push({word:word,count:1});
}
return array;
},[]);
};
var split = function(words){
return words.split(/\s+/);
};
var sort = function(groupedWords){
groupedWords.sort((s,y)=>y.count - x.count);
};
function main(words){
if(words!== ''){
let wordArray = words.split(/\s+/);
let groupedWords = group(wordArray);
groupedWords.sort((x,y) =>y.count -x.count);
return groupedWords.map((e) => format(e.word,e.count)).join('\r\n');
}
return '';
}
module.exports = main;
var main = require("./main.js");
describe("Word Frequency",function(){
it("returns empty string given empty string",function(){
var result = main('');
expect(result).toEqual('');
});
it("returns string given one word",function(){
var result = main('he');
expect(result).toEqual('he 1');
});
it("returns string given two different words",function(){
var result = main('he is');
expect(result).toEqual('he 1\r\nis 1');
});
it("returns string given duplicated words",function(){
var result = main('he is he');
expect(result).toEqual('he 2\r\nis 1');
});
it("returns string given duplicated words need to be sorted",function(){
var result = main('he is is');
expect(result).toEqual('is 2\r\nhe 1');
});
it("returns string given words splited by multiple spaces",function(){
var result = main('he is');
expect(result).toEqual('he 1\r\nis 1');
});
it("returns string given words splited by multiple spaces",function(){
var result = main('it was the age of wisdom it was the age of foolishness it is');
expect(result).toEqual('it 3\r\nwas 2\r\nthe 2\r\nage 2\r\nof 2\r\nwisdom 1\r\nfoolishness 1\r\nis 1');
});
});

任务感想:

对于完全没接触过的人来说这次任务还是有不小难度的,通过问别人和看视频的方式勉强完成(尤其是有一堆看不懂的英文),感觉自己还有很多地方需要了解和学习。还需努力…

上一篇下一篇

猜你喜欢

热点阅读