Frequency Number作业学习记录

作者: TW_BBK_李江 | 来源:发表于2017-05-19 23:44 被阅读14次

一 作业要求

QQ截图20170519162906.jpg

补充要求

QQ截图20170519171754.jpg

将最终代码推送到github远程仓库,链接写到文章里。

作业分解

看到要求我们很多小伙伴就开始方了,先不要说这个程序该如何实现。 看到这几个陌生的名字,咦,git是啥?Nodejs又是啥?TDD?远程仓库????此时,心中有一万只那个什么在飞过。
不积跬步,无以至千里,不积小流,无以成江海。别急,我们一步一步地来!!!

QQ截图20170519171622.jpg

下面我们来一个问题一个问题地解决。
一.Git

  • 这是什么?
    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
    懂得人一看就懂,不懂的人继续不懂。不过没关系,有时候有些工具我们会用后才会慢慢懂它。姑且理解这是一种傻瓜跟踪器吧。怎么跟踪?跟踪什么?我们以后遇到再说。
  • 下载安装
    安装教程:(http://www.runoob.com/git/git-install-setup.html)
    入门教程:(http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/)
    git的下载安装和简单使用跟着教程就是啦。比如我们在本地创建一个名叫xiaosb的版本库,具体操作如下(当前为windows系统):
    1 打开你的git——
QQ截图20170519175222.jpg

2 到D盘去安装


QQ截图20170519175247.jpg

3 用mkdir +文件名字(请不要用中文)创建你的版本库名字,比如我的文件名:xiaosb


QQ截图20170519175345.jpg

4.去你的D盘目录就会出现你加的文件啦

QQ截图20170519175436.jpg

5 到你的文件去,然后git init后就简单创建好啦,其他的常用命令跟着教程学吧!

QQ截图20170519175922.jpg
二.Nodejsnpm
  • Nodejs和npm到底是什么?

Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。 Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
npm是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题。

看不懂吧,那就不要管它!!!我们先学会用。

QQ截图20170519195932.jpg QQ截图20170519200017.jpg

npm install -g jasmine

安装后界面没有出现Error等字样,就是成功了。

TDD编程实现FrequenNumber

  • TDD
QQ截图20170519204044.jpg
  • 把jasmian和webstrom结合起来
    1.用git在e盘建一个文件并使用jasmian(仅供演示,之前的已经安好)
QQ截图20170519205949.jpg

产生的结果


QQ截图20170519210019.jpg

再在窗口输入命令

jasmine examples

得到

QQ截图20170519222534.jpg

输入

jasmine 测试

QQ截图20170519222641.jpg

测试通过,接下来我们修改框架,来写自己的代码

TDD 分解

任务分解图.jpg

测试一

QQ截图20170519233406.jpg QQ截图20170519233416.jpg
  • 代码-主要是学习老师的
 describe("Frequency Number",function(){
    var main=require('../helpers/main');
    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');
    });
})
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;
        },[]);
};

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;

相关文章

  • Frequency Number作业学习记录

    一 作业要求 补充要求: 将最终代码推送到github远程仓库,链接写到文章里。 作业分解 看到要求我们很多小伙伴...

  • Frequency number

    Github链接 TDD作业划分 1.分单词2.分组3.排序4.多个空格 Frequency number 的最终...

  • Frequency Number

    Github仓库地址:

    https://github.com/55533/balala
    本次练...

  • Frequency Number

    TW_黑珍珠号_陈祥梅 Frequency Number 需求 一个 Node.js 小程序,它可以处理一段字符串...

  • Frequency Number

    github地址:作业 任务分析: 测试实例: 最后需要输入的语句:“it was the age of wisd...

  • Frequency Number

    为什么使用Git: 能够对文件版本控制和多人协作开发拥有强大的分支特性,所以能够灵活地以不同的工作流协同开发分布式...

  • Frequency Number

    GIT 什么是GIT Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一...

  • TDD初探 + git + NodeJS学习--(Frequen

    github地址:https://github.com/DaisyCJ/Frequency-Number.git ...

  • TDD之Frequency Number练习

    一、Frequency Number处理前准备 Git准备通过连接https://git-for-windows....

  • TDD+Git+Frequency Number

    一、TDD是什么? TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中...

网友评论

    本文标题:Frequency Number作业学习记录

    本文链接:https://www.haomeiwen.com/subject/iexmzttx.html