网球TDD 之 Dojo coding

    3、重构的时候,每个小的单元重构五次,run五遍测试代码。

5The Gene:: An Intimate History

  重构达成的代码和测试用例:

     
1962年,菲尔·耐特刚刚从商高校结业,揣着从二叔那借来的50新币制造了这家店铺,当时设法很单纯:进口东瀛高格调,低本钱的跑鞋。菲尔·耐特把鞋放在那辆石灰绿汽车的后备箱里兜售,以那样的办法,第一年赚了八千比索。现在,Nike每年的销售额是三百亿,几乎成为初创公司的标杆。勾号(swoosh)商标也无人不晓,成为当今世界最具革命性,最独一无二的标志之一。但商标背后的先生平昔很隐秘。现在,耐特首次以回想录的格局,从那么些关键时刻起初,坦白,谦虚,无畏,诙谐的叙说他的故事。当年,二十四岁的她做到徒步环游世界,决定取舍一条优良的征途来成立和谐的买卖。他和希望之间,不只是打响的喜悦,还要负担众多风险和令人寒心的挫折,耐特会在本书中细小道来。文中谈到她和初期搭档相识的进程,一群不合时宜的乌合之众最终亲如兄弟,在联合任务的呼唤下,凭借对体育精神的落到实处,末了成立了Nike这几个品牌。

  再看业务代码

2**Shoe Dog**

    2、每完结一个功力,run五回测试代码;

      小编是浦项农林学院资深政治学助教阿奇布朗(Archie
布朗),本书首要研商政治领导力。寻常领导力会陷入到一个啼笑皆非的最好差距:强弱之争。但是仍能找到很多灵光的章程来施展政治领导力,反之亦是如此。大家责备政客要为经济衰退买单时,又会拍手叫好她推向了严重性的社会改进。很少有人反思,究竟是怎么特质让有些领导干部八面玲珑,而其他领导人却难于呢?小编考察百年来的无垠资料,完毕了那部权威作品,反驳了一个常识:唯有强有力的老总能够控制幕僚,影响政策制定进程,因而更便于得逞并受人珍惜。

网球 1

     
穆克吉认为基因是灵巧的,出色的,富有启发性的,通过科学,社会历史以及个人叙述的交叉,告诉大家基因那么些当代历史中最要害的定义突破之一。本书介绍了人类对遗传的研讨,以及它对咱们生存,个性,身份,命局,抉择的震惊影响。他描述了人类在不少年间对遗传的研商和试验,从亚里士多德(多德(Dodd)),毕达哥拉斯到孟德尔,达尔文,从博韦里,Morgan到克里克,沃森,富兰·克林(Fra·nklin),全方位的显示了那么些二十一世纪的立异者革命性的成功人类基因组的进度。一位伦敦(London)客评价,对一个常备读者而言,很难想象市面上会有诸如此类多的科普读物,不仅可以涵盖现代科学技术的拥有领域,而且浅显易懂又充满心理,这是一个光辉的姣好。对任何人而言,基因知识都是必必要打听的,因为这牵涉到对前景性格的定义,是以此时代科学界最要紧的有的。所以,不妨来听一听大师的意见。

网球 2

      近期得以买到汉语版,小编是Nike的元老兼老板菲尔·耐特(Phil
Knight)。这是一本坦诚的,令人神往的回想录,耐特第几次和大家大饱眼福了店家中期那一个不敢问津的故事:一个乐善好施的初创公司,怎么样通过自己的腾飞,成为满世界最具标志性,颠覆性和致富品牌之一。大家看一下美亚对本书简介:

  由一个人进行 setup a default practice,然后创设:
网球 3

     
土豪直接看视频,摄像下方是对推荐书籍的详见文字介绍。假期快截止了,看看盖叔去年读了怎样书(比尔(Bill)盖茨二零一五年好书推荐请点击),顺便把二〇一七年想读二零一八年还没读的书一起补上。新的一年,各位心想事成~

  第三个制造的人,把转变的url中的http://cyber-dojo.org/kata/edit/52E43B0082?avatar=raccoon
52E43B0082” 提取出即可,那样其旁人可以透过enter a practice进入:
网球 4

     
布朗广泛解说了二十世纪战略家们的功过得失。比如像罗斯福,林登·Johnson(第三十六任美利坚联邦合众国总统),撒切尔这类重新定义领导力的人选,或者像戴高乐,戈尔巴乔夫,曼德拉那类政权更替的经理,文中描述了他们如何在任期内以政治方式已毕可行性的巅峰,通过这个内容,布朗挑衅了大家的对政权有效性和政治力量的健康看法。即使大家觉得大学风格过于懦弱,不待见那类领导力,但频仍那类领袖更有合作能力,从而拥有强烈的影响力。布朗的总计新颖而颇具启发,颠覆了成百上千传统观念,让大家再一次评估那么些培训这么些世界的负责人,同等看待新考虑和判断那几个未来即将领导我们的人。

  那就是大家用来陶冶的IDE

      本书作者是普利策奖得主,畅销书小说家穆克吉(Siddhartha
Mukherjee),本书介绍了基因的艳丽历史,对一个来源于未来的问题交给了团结的答案:当我们领会了读写(编辑)自己基因新闻时,怎样定义人类呢?

网球 5

网球 6

  于是我们需求修改case,让它成为成功景色,变为紫色。

      本书小编是全人类文物理学家格雷(格雷(Gray))琴 巴克(巴克(Buck))(Gretchen
Bakke),电网作为二十世纪工程界的标志性成果,很难满意当今一代的急需。那不单是电网老旧和底蕴设备维护的问题。随着大家对新能源(太阳能,风能等)的高大期望,在通向能源将来的大道上,电网成了最大的遏止。若是大家想要完结这么些未来,大家必要依照二十一社会风气的传统重新规划电网。这是一个浩然工程,需求多地方的大力,近期而言,这一个极力并不醒目,但改正已经齐刷刷的启幕了。

 

网球 7
网球 8

网球 9

4The Grid:The Fraying Wires Between American

网球 10

网球 11

 

网球 12

  所有人进入后,大家可以透过首页的看来所有人的一个景观:

网球 13

#include "hiker.hpp"

string score(int p1, int p2)
{
    string so[4]={"Love","Fifteen","Thirty","Forty"};

    cout<<p1<<p2<<endl;
    if (p1 < 4 && p2 < 4)
    {
        if (p1==0 && p2==0)
        {
            return "Love-All";
        }
        else if (p1==1 && p2==1)
        {
            return "Fifteen-All";
        }
        else
        {
            return so[p1]+"-"+so[p2];
        }
    }
    else
    {
        if (p1==p2)
        {
            return "Deuce";
        }
        int cha = p1-p2;
        if (cha>0 && cha<2)
        {
            return "Advantage Player1";
        }
        else if(cha>1)
        {
            return  "Win for Player1";
        }
        else if(cha<0 && cha>-2)
        {
            return  "Advantage Player2";
        }
        else if(cha<-1)
        {
            return  "Win for Player2";
        }
    }
    return "hello world";
}

     
那是一本网球题材的书,小编(已故,原因自己查)为戴维(大卫(David))·福斯特(福斯特(Forster))·华莱士(大卫Foster
华莱土),London时报评价她为“有史以来,网球题材的顶尖小编”。

  可以见见自身一共付出了48次
网球 14

网球 15
网球 16

  是或不是看起来逻辑好乱啊。没错我也是如此的痛感,越发想重构,一般说到重构,很几人心有余悸,没提到,我们有测试用例不用操心。 

     
本书摘选了她最卓越的五篇小说,形成了那本小说集。在文中,作者以竞争对手或网球爱好者的视野,以她幽默、讥嘲、繁复、热闹的调头描述了网球这一挚爱运动,比如罗吉尔(吉尔)(罗吉尔(吉尔))费德勒那样的头号天才;对崔西·奥斯丁(前世界季军)回想录的深远分析;作为一个极为自律的选手,迈克尔(迈克尔)·Joy(莎娃的教练)在命局面前的艺术性抉择;抵制美网的商业化侵蚀;回想自己的网球职业,自以为自己几乎是一个伟人的中低档网球手。

  大家的结果 http://cyber-dojo.org/dashboard/show/D9D934A59E:

     
小编多地方的牵线了花旗国能源基础结构,电网高峰期和平稳时刻,以及它对个人和江山生存的机要作用。她认为电网是美利哥一项紧要的人工产品,它伴随大家的成材,有一些天才科技和定点的自由创作,偶尔夹杂了部分幻想的愿景,是分散扩大下的产物。她讲演了当代美利坚合众国改造电网的详情,有时需求进取心和伟大的企盼,有时是立法依旧武力示威。本文有趣而具有洞察力,将电网比喻为世界上最大的机械:它可爱的野史,近来的题目,以及美好的前程和暧昧的机能。

  那是本身修改成功后,点击test之后,得到了蓝色的小球,然后再点击蓝色小球的结果,那里能够看出您每一回的改动。

1**String Theory**

  进入 http://cyber-dojo.org/

3The Myth of the Strong Leader

  先看测试代码:

     
盖茨笑称“借使你在轻轨或飞机上读那本书,别人会以为您最佳聪明,实际上那本书跟物理没有半毛钱关系”。

  前边的流水线基本就是写一个case,然后再落到实处一个逻辑的代码,然后在run。如此频仍,我先是次成功的时候的代码:

    1、先写case,再落实代码;

#include "hiker.hpp"
#include <gtest/gtest.h>

using namespace ::testing;

TEST(Hiker, player0_0)
{
    ASSERT_EQ("Love-All", score(0, 0));
}
TEST(Hiker, player1_1)
{
    ASSERT_EQ("Fifteen-All", score(1, 1));
}
TEST(Hiker, player2_2)
{
    ASSERT_EQ("Thirty-All", score(2, 2));
}
TEST(Hiker, player0_1)
{
    ASSERT_EQ("Love-Fifteen", score(0, 1));
}
TEST(Hiker, player1_0)
{
    ASSERT_EQ("Fifteen-Love", score(1, 0));
}
TEST(Hiker, player1_2)
{
    ASSERT_EQ("Fifteen-Thirty", score(1, 2));
}
TEST(Hiker, player3_1)
{
    ASSERT_EQ("Forty-Fifteen", score(3, 1));
}
TEST(Hiker, player0_3)
{
    ASSERT_EQ("Love-Forty", score(0, 3));
}
TEST(Hiker, player4_4)
{
    ASSERT_EQ("Deuce", score(4, 4));
}
TEST(Hiker, player5_4)
{
    ASSERT_EQ("Advantage Player1", score(5, 4));
}
TEST(Hiker, player4_5)
{
   ASSERT_EQ("Advantage Player2", score(4, 5));
}
TEST(Hiker, player6_4)
{
   ASSERT_EQ("Win for Player1", score(6, 4));
}
TEST(Hiker, player4_6)
{
   ASSERT_EQ("Win for Player2", score(4, 6));
}

   默许会帮你生成一个战败的case,大家点击上方的test就会破产。

  那样就可以有限支撑,你在重构已毕之后,所有的机能是足以因而的。也就是TDD的思维。

#include "hiker.hpp"

string score(int p1, int p2)
{
    string s_score[4]={"Love","Fifteen","Thirty","Forty"};
    string s_same[4]={"Love-All","Fifteen-All","Thirty-All","Deuce"};
    map<int,string> m_res;
    m_res.insert(pair<int, string>(1, "Advantage Player1"));
    m_res.insert(pair<int, string>(2, "Win for Player1"));
    m_res.insert(pair<int, string>(-1, "Advantage Player2"));
    m_res.insert(pair<int, string>(-2, "Win for Player2"));

    cout<<p1<<p2<<endl;

    // 处理相等的情况
    if (p1 == p2) 
    {
        if (p1 > 2)
            return s_same[3];
        return s_same[p1];
    }

    // 处理赢球数都在3以下的情况
    if (p1 < 4 && p2 < 4)
    {
        return s_score[p1]+"-"+s_score[p2];
    }

    // 处理赢球数都在3以上的情况
    else
    {
        return m_res[p1-p2];

    }
    return "error";
}

网球 17

  通过本次Dojo Coding,总计如下:

  那里扶助各样语言和各样测试框架,那里大家选取C++和谷歌Test
网球 18

网球 19

  每个人进入后,都是之类界面:

  dojo和kata的演习记录:

  成功之后,他会给各类人都分配一个动物头像,下边的四个圈,藏蓝色代表case执行破产,黄色代表编译失败,紫色代表case执行通过。

  那里是挑选一个题目举办联系,我们选取“网球记分规则”来训练。

网球 20