?????????????????????μ????????????
????????????????????????????????????????????????????????????????д??????????????????????Jenkins??TravisCI?????????
????????????????????·????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????μ????????????????д?????????????????????????????????????????????????????????Щ???????????????????????????????????????????????е??????????ò??????д???????????????????????????
??????????????????????????????????????????η?????????????????????????????????Щ?????????????????????????
??????????????????
????1???????????????????????
????2?????????????????????????????????????????
????3???????д??????????
?????????????????????????
???????????????????????????????У????????????μ????????????????????????????????????????????
??????????????????????д????????????????????? ?????????? ??????????????????????????? ??????????????????? ??????????????????????????????????????“????????????”??????“???????????????”???????к?????????
????????????????????????????о?????????仯??????????????????????????????????????ú????
????????????????????t?????????
??????????????????????????????????????????????????
???????????????20??000???????????????????????????40??000???????——??????????????????????????????????????????????????????λ?????????????????????????????8:1?????????????????320??000?????????????????????????320??000??????????????????????400??000?????????????????????????20??????——???????????????????????????
?????????????????????????????????????????????????200?????????????????????Ч????????????????????????滭???????????????????????????????20????????????????????????о?????????????????4000?飡
??????????? Team leader ???????????????????????????????????????????????70%?????????????????????????????????models ????????????????????????Ч????????????????????????漲??????????????????????????У???????git server ??hook ???????????????????????????????ж???????????????????????????????????????????????μ?????????
???????????????????????????????????????????????????Σ????????????????????
?????????????????????????????????д??????? ???????д?????????????????????????μ???????????????????????????????????????????????IDE ??????????????????????????????????????????????′?????????????????????????????XX??
???????????????????????????????????????
???????????????????????У??????????????????????????????? “???д????????????????仯???????????????????????????????????”??
???????????????????????
?????????????????????????????????????
?????????????“???????”????????"UI???????????"??????????л????????
??????????????????????????????????????£?
????1?????????????μ??
????2??????????μ??
????3???????????????????????μ???д???????????
????4??????????????????????????????????????“???”
?????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Щ???????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????侫????????????????????????????????????????? ???????????????????bug ???????????????????????????????????????????к???????????????仯??????????????????????????仰???“??????????????????????????μ????????????????”?????????????????????????????????????и????????????????????????μ????????????????????????÷???????????????????????
???????漰?????????????д???????Щ???????????????д????????д?????????:
????1?????????????????????????
??????????????A ???????????????????B?????????????????????????????????д????????????????????????????????????е???????????assert ??£????????????????????A??????Test ??A???????????????
????it "could build adult correctly" do
????person = Person.init_adult
????assert_equal true?? person.age >= 18
????end
????it "adult could buy beer" do
????person = Person.init_adult
????assert_equal true?? person.age >= 18 # ????μ????init_adult????????
????assert_equal true?? person.could_buy_beer
????end
????????????init_adult ???????age ??18 ????????21 ????????????????????????????buy_beer ????????????з????κ???????????????????????????????????person = Person.init_adult; assert person.age > 18 ??????п????????????????????????????????????????????????????adult_init ?????????????????????????????????????????????????????2??????????????????????′?????????????????????????о??????????????????????????????????????????
????2???????????к??????
????????к???????????????????????????????????????з????????鷳??????????鷳??ruby???????????????????????????????call ??????????????з????????????????????????????з??????
??????з????????????????????????????з?????д???????塣?????з?????????????????????????????з???????????????????з??????????Щ???????????????????????????????????????ò???????????????????з?????????????????ж?????????????????????????????п?????????????????????????????????????????????????з????????ī???????
?????????Щ?????????????????????????б????????в??????????????????????????????????????????????????
???????????????±?д????з???????????????????д????????????????????????????????????????????????????????????????????????????????????????????????????ī??????з???????????????????δ???????Ρ?
??????????????????????μ????
????1???????????磬?????粻???
????2???????????
????3??????????μ???
????????????????????????????? “????????” ???????????????????????磬???stub?????????????д??????????????? ?????
?????????????????????????????????????????????α???????????????
?????????????????????μ????????????????????????????ruby?????????????????????????????? ruby??????????????? class?????????е??????????????????????????е?class?????case ??????????????????????????????case??????????class ???????????????????????????????????????case ????????????case????????У?????ok??????????????????????????????????????????“ī?????????”?????????????????????????????????????????????alias_method??????????????????????????????????????????????????????case??е????
????????????????ò???????????????????????????????????????????????????????????????????????????t??????????ж???????????????????ν????????????????
?????????????????????????“?????д??????????”
?????????д??????????
???????д???????????????????????????????????????Щ??????????Ц???????????
???????????????????????????????????????????????????????????????????????С??????????
????· ?????????????????????
????· ????????в?????
?????????????ú????????????????????5mins?? ????????10 mins?????????????????????????????е??????????????????????????????????????????????????о??????????????????10s????????????????д??????????????????????????????????????????????????????????е??????????????????????????CI??????????
???????????д????????????????????????????? jenkins?????????????????????????????????????????????ü??????????????鷳???????????????SaaS ??CI ?????????travis.CI ???flow.ci?????????????????????????????????????????????
????????????????????????????μ????push ???????????????????е????????????????е????????????????????????????????????????????????????????????е??????????????????????????е??????????????????
???????????????????????????????????????в??????????????????push ??????????????????д????????????????????????????????????
????????????????????????????????????????“?????????????????????????”??????????????????£?
?????????????????????????????????????
???????????μ??????????д??????????′??л??????????????????Щ?????????????????????????????????????“??????????????”???й????????????????????????