Slide 1

Slide 1 text

ઃܭͷͨΊͷɺ໰୊ͷଊ͑ํ ઃܭφΠτQPXFSFECZ$MBTTJ .BHOPMJB, ʙυϝΠϯ஌ࣝͷ҉໧஌Λܗࣜ஌ʹʙ ʲ·ͱΊ൛ʳ

Slide 2

Slide 2 text

͜Ε·Ͱͷઃܭʹؔ͢Δٞ࿦ w ઃܭͱ͸l໰୊Λ෼ׂ͠ɺߏ଄Խ͢Δ͜ͱz w ద੾ʹߏ଄Խ͢ΔͨΊʹ͸ʮύλʔϯʯͱʮઃܭݪଇʯ ͕༗ޮͰ͋Δ w ʮύλʔϯʯΛద༻͢Δࢦ਑͕ʮઃܭݪଇʯ w ʮઃܭݪଇʯͷద༻͸ɺlͲ͕͜มΘΓ΍͍͢ϙΠϯτͳ ͷ͔zΛݟۃΊΔͱ͜Ζ͔Β l࣮گதܧγϦʔζʮ։ൃݱ৔Ͱ໾ཱͨͤΔͨΊͷઃܭݪଇͱύλʔϯʯCVJMEFSTDPOzΑΓ https://nekogata.hatenablog.com/entry/2018/09/10/163206

Slide 3

Slide 3 text

ʮ࿦఺໰୊Λ͍͔ʹଊ͑Δͷ͔ʹ͍ͭͯʯ ʮ҉໧஌ͷϘτϧωοΫ͕Ͳ͏΍ͬͯઃܭݪଇΛ࢖͏͔ Ͱ͸ͳ͘ɺ໰୊ͦͷ΋ͷͷଊ͑ํʹҠಈͨ͠ʯͱ΋ݴ͑ ΔͰ͠ΐ͏ɻ͜ͷʮ໰୊ͦͷ΋ͷͱͷ޲͖߹͍ํʯͱ͍͏ ࢹ఺Λઃܭ࿦ʹରͯ͠ಋೖͯͩ͘͠͞Δͷ͸ɺ,JDIJKPKJQN ͷΦʔΨφΠβʔͰ΋͋Δ!NBHOPMJB@L@ࢯͰ͢ɻ

Slide 4

Slide 4 text

ࣗݾ঺հ 5XJUUFS!NBHOPMJB@L@ 1FSMͱ4DBMB͕޷͖ ઃܭʹ͍ͭͯͣͬͱߟ͍͑ͯΔ ٢঵ࣉQNΦʔΨφΠβʔ https://kichijojipm.connpass.com https://twitter.com/magnolia_k_

Slide 5

Slide 5 text

ࠓ೔͓͸ͳ͢͠Δ͜ͱ ͦ΋ͦ΋ʮ໰୊Λଊ͑Δʯͱ͸ ʮυϝΠϯ஌ࣝʯͷʮ҉໧஌ʯΛݟ͚ͭΔ ʮ҉໧஌ʯ͔Βʮܗࣜ஌ʯ΁ม͍͑ͯ͘ ܧଓతʹɺl໰୊Λଊ͑ΔzͨΊʹ

Slide 6

Slide 6 text

ͦ΋ͦ΋ʮ໰୊Λଊ͑Δʯͱ͸ʁ

Slide 7

Slide 7 text

ݹయʹཱͪฦͬͯΈΔ ͜ͷຊʹ͸਺ֶΛղͨ͘Ίͷͭͷ εςοϓ͕ॻ͔Ε͍ͯΔ ໰୊Λཧղ͢Δ͜ͱ ܭըΛͨͯΔ͜ͱ ܭըΛ࣮ߦ͢Δ͜ͱ ;ΓฦͬͯΈΔ͜ͱ ͜Ε͸ιϑτ΢ΣΞͷ։ൃͷखॱͱ ಉ͡ͱݴ͑ΔͷͰ͸ͳ͍͔ʁ (ϙϦΞஶ ʮ͍͔ʹͯ͠໰୊Λͱ͔͘ʯ

Slide 8

Slide 8 text

ͭͷεςοϓͷɺͭ໨ʮ໰୊Λཧղ͢Δ͜ͱʯʹ͸ɺ ·͞ʹʮ໰୊Λଊ͑Δ͜ͱʯͦͷ΋ͷ͕ॻ͔Ε͍ͯΔ ໰୊Λཧղ͢Δ͜ͱ ཁ໿ 㾎 ະ஌ͷ΋ͷɺσʔλɺ৚݅͸Կ͔ʁ 㾎 ৚݅͸े෼͔ʁໃ६͍ͯ͠ͳ͍͔ʁ 㾎 ৚݅͸͔͖ද͢͜ͱ͕Ͱ͖Δ͔ʁ

Slide 9

Slide 9 text

৚݅͸ ͔͖ද͢͜ͱ͕ Ͱ͖Δ͔ʁ

Slide 10

Slide 10 text

έʔεελσΟ

Slide 11

Slide 11 text

έʔεελσΟͱͯ͠ɺ༩͑ΒΕͨ೥ྸʹ
 ͳΔ೔෇Λࢉग़͢Δίʔυʹ͍ͭͯߟ͑Δ l͋Δ೥ྸʹͳΔ೔zΛٻΊΔܭࢉํ๏͸ɺҎԼͷ௨Γ ೥ྸ͕Ճࢉ͞ΕΔͷ͸ɺىࢉ೔ʹԠ౰͢Δ೔ͷલ೔ͷ ຬྃ࣌ ޕޙ࣌ʣ ͭ·Γɺ๏཯্͸஀ੜ೔ͷલ೔ʹ೥ྸ͕Ճࢉ͞ΕΔ ྫɿ೥݄೔ੜ·Εͷਓ͸೥݄೔ʹ ࡀʹ౸ୡ͢Δ ࠜڌ๏ɿ೥ྸܭࢉχؔεϧ๏཯ w ೥ྸ͸ग़ੜͷ೔ΑΓ೭Λىࢉ͢ w ຽ๏ୈ৚ͷنఆ͸೥ྸͷܭࢉʹ೭Λ४༻͢

Slide 12

Slide 12 text

ͱΓ࣮͋͑ͣ૷ͯ͠Έͨ ೔෇ͷࢉग़ʹ͸3VCZͷ%BUFϞδϡʔϧΛར༻ require "date" def calc_arrival_day(b_year, b_month , b_day, age) birthday = Date.new(b_year, b_month, b_day) arrival_day = birthday.next_year(age).prev_day(1) arrival_day.to_s end p calc_arrival_day(2000, 11, 8, 18) # “2018-11-07” ਖ਼͍͠೔͕ࢉग़͞Ε͍ͯΔ

Slide 13

Slide 13 text

೔෇ͷॲཧͳΜ͔ͩΒ ஀ੜ೔͕݄೔ͷਓΛ ߟྀͯ͠ΔΑͶʁ ͱΓ͋͑ͣಈ͍ͨʜͰ΋ϨϏϡΞʔ͔Βͷࢦఠ

Slide 14

Slide 14 text

p calc_arrival_day(2000, 2, 29, 18) ʊਓਓਓਓਓਓਓਓਓʊ ʼɹ"2018-02-27"ɹʻ ʉY^Y^Y^Y^Y^Y^Y^Yʉ ͔֬ʹɺ݄೔͕஀ੜ೔ͷ৔߹ɺਖ਼͘͠ͳ͍ ݁Ռ͕ܭࢉ͞ΕΔ ʜͳ͔ͥʁ

Slide 15

Slide 15 text

OFYU@ZFBS͸ܭࢉͨ͠೔෇͕ଘࡏ͠ͳ͍೔ͷ ৔߹ɺଘࡏ͢Δ೔·Ͱ೔Λݮࢉ͠·͢ https://docs.ruby-lang.org/ja/latest/method/Date/i/next_year.html ͭ·Γɺ೥ʹ݄೔͸ͳ͍ͷͰɺ೥݄೔ ͕ࢉग़͞ΕɺQSFW@EBZͰߋʹͦͷ೔લ͕ࢉग़͞Εͨ

Slide 16

Slide 16 text

͍΍ɺ๏཯ͷͲ͜ʹ΋ ͦΜͳ৚݅͸ॻ͍ͯͳ͍͠ʜ ࢥΘͣɺ͜͏ݴ͍ͨ͘ͳΓ·͢Ͷ

Slide 17

Slide 17 text

݄೔ੜ·ΕΛߟྀ࣮ͨ͠૷ʹม͑ͯΈͨ require "date" def calc_arrival_day(b_year, b_month , b_day, age) birthday = Date.new(b_year, b_month, b_day) arrival_day = birthday.prev_day(1).next_year(age) arrival_day.to_s end p calc_arrival_day(2000, 2, 29, 18) # “2018-2-28” ݄೔ੜ·Ε΋ਖ਼͘͠ͳͬͨ

Slide 18

Slide 18 text

৚݅͸ɺl͔͖ද͞Εͯz͍͔ͨʁ ʮ೥ྸܭࢉχؔεϧ๏཯ʯ͕ࣔ͢ܭࢉํ๏͸ɺγϯϓϧ ͳϧʔϧͰʮ݄೔ੜ·Εʯͱ͍͏ಛҟͳ৚݅΁lରԠ Ͱ͖ͯ͠·͍ͬͯΔzʜ͔͠͠ɺٯʹͦͷ͜ͱ͕lಛҟͳ ৚݅ͷଘࡏΛ෼͔Γʹ͘͘z͍ͯ͠Δɺͱ΋ݴ͑Δ Ծʹɺޙऀͷ࣮૷͕࠷ॳ͔Β༗ͬͨͱͯ͠ɺίʔυ্ʹ ͸Ͳ͜ʹ΋݄೔͸ग़ͯ͜ͳ͍͜ͱʹ͸มΘΒͳ͍

Slide 19

Slide 19 text

৚݅Λl͔͖ද͢zͨΊʹɺͳʹΛ͢Δ͔ʁ ݱঢ়͸ʮ͏Δ͏೥Ҏ֎ͷ݄೔Λߟྀ͢Δʯͱ ͍͏ઃܭͷҙਤ͕ίʔυ্͸ӅΕͯ͠·͍ͬͯΔ ޙੈͷਓʹɺ͜ͷҙਤΛ࢒͢΂͖Ͱ͸ʁ

Slide 20

Slide 20 text

ྫ͑͹ɺςετΛॻ͍ͯҙਤΛ࢒͢ require 'test/unit' class TestArrivalDay < Test::Unit::TestCase def test_calc_arrival_day assert_equal '2018-11-07', calc_arrival_day(2000, 11, 8, 18) assert_equal '2018-02-28', calc_arrival_day(2000, 2, 29, 18) assert_equal '2017-12-31', calc_arrival_day(2000, 1, 1, 18) end end ·ͨɺ݄೔ʹର͢ΔϩδοΫΛ͋͑ͯ໌ࣔతʹೖΕɺ ҙਤͷ෼͔Γ΍͢͞Λ༏ઌ͢Δํ๏΋ʜ͋Δ͔΋͠Εͳ͍

Slide 21

Slide 21 text

৚݅Λl͔͖ද͢zͷ͸ɺ೉͍͠ ೔෇ͷܭࢉͰ͏Δ͏೥ͷ݄೔Λߟྀ͢Δͱ͍͏ͷ͸ ൺֱత෼͔Γ΍͍͢ࣄྫʜ ݱ࣮ʹ͸ɺ౸ୡ͢Δͷ͕೉͍͠৚͕݅͋Γɺ໰୊Λղ͘ ʹ͋ͨͬͯɺඞཁͳ৚݅Λl͔͖ද͢zͷ͸༰қͰ͸ͳ͍

Slide 22

Slide 22 text

ʮ໰୊Λଊ͑Δʯͱ͸ɺ(ϙϦΞͷݴ༿ΛआΓΕ͹ɺ ໰୊Λߏ੒͢Δͭͷཁૉ ʮະ஌ͷ΋ͷʯʮσʔλʯʮ৚݅ʯΛ
 lద੾ʹἧ͑Δz͜ͱɺͱݴ͑ΔͷͰ͸ͳ͍͔

Slide 23

Slide 23 text

ݱ࣮ʹ͸͜ͷͭͷཁૉͷ͏ͪɺ ʮ৚݅ʯΛlద੾ʹἧ͑Δ͜ͱz͸೉͍͠ ͳ͔ͥʁ ͦ͜Ͱग़ͯ͘ΔΩʔϫʔυ͕ʜ

Slide 24

Slide 24 text

ʮυϝΠϯ஌ࣝʯͷʮ҉໧஌ʯ

Slide 25

Slide 25 text

ʮυϝΠϯ஌ࣝʯͱɺʮ҉໧஌ʯ w υϝΠϯͱ͸ɺl ׆ಈŋؔ৺ŋ஌ࣝͳͲͷ ෼໺ ྖҬ ൣғz ͷ͜ͱ w ͭ·ΓɺʮυϝΠϯ஌ࣝʯͱ͸ɺ͍·औΓ૊ΜͰ͍Δ໰୊ ͷ෼໺ɺྖҬʹؔ࿈͢Δ஌ࣝ w ʮ҉໧஌ʯͱ͸ɺݴޠԽɾه߸Խ͞Ε͍ͯͳ͍஌
 ˰ͭ·Γɺॻ͔Ε͍ͯͳ͍͜ͱ

Slide 26

Slide 26 text

ͭ·ΓʮυϝΠϯ஌ࣝʯͷʮ҉໧஌ʯͱ͸ɺ
 ໰୊ʹؔ͢Δl͔͖ද͞Ε͍ͯͳ͍z஌ࣝ

Slide 27

Slide 27 text

ઌ΄Ͳͷ೥ྸͷ౸ୡ೔ͷྫͰ͍͑͹ʜ ʲະ஌ͷ͜ͱʳ ɹ೥ྸ౸ୡ೔Λࢉग़͢ΔϓϩάϥϜͱ͸ʁ ɹbirthday.prev_day(1).next_year(age) ʲσʔλʳ ɹੜ·Ε͸ɺʹࡀʹ౸ୡ ʲ৚݅ʳ ɹ݄೔ੜ·ΕΛߟྀ͢Δ ɹʢ͏Δ͏೥Ҏ֎ʹ͸݄೔͸ଘࡏ͠ͳ͍ʣ

Slide 28

Slide 28 text

๏཯ͷ৚จ͚ͩͰ͸ɺ໰୊Λద੾ʹཧղ͢ΔͨΊ ʹඞཁͳʮ৚݅ʯ͕lυϝΠϯ஌ࣝͷ҉໧஌zͱͯ͠ ӅΕͯ͠·͍ͬͯͨ ҰํͰɺ೔෇Λѻ͏ϓϩάϥϜΛॻ͍ͨܦݧͷ༗ΔਓͰ͋Ε͹ɺ݄೔Λߟྀ ͢Δ͜ͱʹ͸ൺֱత༰қʹࢸΔʜͱࢥΘΕΔ͕ʜ୯ͳΔܦݧ͸҉໧஌ʹͳΔқ͍ ʢ%BUFϞδϡʔϧͷυΩϡϝϯτʹ΋ͪΌΜͱॻ͔Ε͍ͯͨʣ

Slide 29

Slide 29 text

Ͱ͸ɺͲ͏͢Ε͹Α͍͔ʁ ஌͍ͬͯΔਓʹฉ͚͹ղܾ͢Δ͔ʁ

Slide 30

Slide 30 text

͸͊ʜͳʹΛݴ͑͹͍͍ͷʁ ͋ͳͨͷ஌͍ͬͯΔ҉໧஌Λڭ͍͑ͯͩ͘͞ ίϨ͡Όͳ͍ײ

Slide 31

Slide 31 text

ʮ҉໧஌ʯ͕જΜͰ͍ͦ͏ͳ৔ॴΛߟ͑ͯΈΔ

Slide 32

Slide 32 text

ࣄ࣮ ؔ܎ ݪଇ

Slide 33

Slide 33 text

ʮखॱʯʮྺ࢙ࠜڌʯͱ͍ͬͨlࣄ࣮z͸ɺ
 ҉໧஌ʹͳΓ͕ͪ 㾎 ඞཁͳखॱ͕ɺखॱॻʹॻ͔Ε͍ͯͳ͍ 㾎 ࣮ࢪ͍ͯ͠Δਓ΋ҙࣝ͠ͳ͍࡞ۀͷ֬ೝ؍఺ 㾎 ཤྺ ϩά ͷ࢒͞Ε͍ͯͳ͍มߋͷ਺ʑ 㾎 ઃܭࠜڌͷ෼͔Βͳ͍ػೳͷ਺ʑ ࣄ࣮͕l͔͖ද͞Ε͍ͯͳ͍z͜ͱͰɺޙੈͷਓ͕ػೳΛཧղվम͢ΔͨΊ ͷʮ৚݅ʯ͕༰қʹἧΘͳ͘ͳͬͯ͠·͏ ͳͲͳͲʜ

Slide 34

Slide 34 text

஌͍ͬͯΔਓ͸ɺॻ͔Εͯͳͯ͘΋ࠔΒͳ͍͔Β

Slide 35

Slide 35 text

lؔ܎z͸ɺlࣄ࣮zҎ্ʹ҉໧஌ʹͳΓ͕ͪ 㾎 ૬ޓʹؔ࿈͢ΔෳࡶͳϏδωεཁٻͱɺγεςϜͷؔ܎ 㾎 άϩʔόϧม਺͕ଟ༻͞ΕͨϞδϡʔϧߏ଄ 㾎 ࢀরͷͨΊʹ৚݅ͷଟ͍ςʔϒϧઃܭ
 औফ͸আ͘ɺ࣮͸࠶ܝɺॳظ஋͚ͩҧ͏ʜ౳ ͳͲͳͲʜ ؔ܎͕l͔͖ද͞Ε͍ͯͳ͍z͜ͱͰɺͲ͏ḷ͍͚ͬͯ͹෼͔Βͣ༰қʹ ʮ৚݅ʯʹͨͲΓண͚ͳ͘ͳͬͯ͠·͏

Slide 36

Slide 36 text

ʮؔ܎ʯ͸ɺl໰୊ʹର͢Δࢹ఺zʜ ࣄ࣮͚ͩΛฒ΂ͯ΋ݟ͑ͯ͜ͳ͍

Slide 37

Slide 37 text

Ճ͑ͯɺؔ܎Λݴ༿͚ͩͰ ਖ਼֬ʹදݱ͢Δͷ͸೉͍͠

Slide 38

Slide 38 text

ʮنଇʯͱҧͬͯɺlݪଇz͸҉໧஌ʹͳΓ͕ͪ 㾎 ໋໊͕౷Ұ͞Ε͍ͯͳ͍͕ɺͦͷ๏ଇ͕෼͔Βͳ͍
 ΄ͱΜͲϩʔϚࣈͰɺҰ෦ӳޠͱ͔ʣ 㾎 ػೳ෼ׂͷ୯ҐϞδϡʔϧཻ౓͕ಛఆͷػೳ͚ͩҟͳΔ ͕ɺͦͷࢦ਑͕෼͔Βͳ͍
 ʢ໌Β͔ʹಛఆͷ୲౰ऀͷ͚࣌ͩ࡞Γ͕ҧ͏ͱ͔ʣ ͳͲͳͲʜ ݪଇ͕l͔͖ද͞Ε͍ͯͳ͍z͜ͱͰɺͦΕ·ͰकΒΕ͖ͯͨ͸ͣͷ ʮ৚݅ʯ͕ݟ͑ͳ͘ͳͬͯ͠·͏

Slide 39

Slide 39 text

ιϑτ΢ΣΞʹ͓͍ͯlҰ؏ੑz͸ඇৗʹॏཁͳཁૉ lҰ؏ੑz͸ɺʮنଇʯ΍ʮݪଇʯʹΑͬͯ΋ͨΒ͞ΕΔ Ұ؏ੑ͕ܽ೗ͨ͠ͱ͜Ζʹ͸όά͕જΈ΍͍͢ʜօ͞Μࢥ͍౰ͨΓ·͢ΑͶʁ

Slide 40

Slide 40 text

ʮنଇʯͱɺʮݪଇʯ w ʮنଇʯ͸໌จԽ͞Ε͍ͯΔ΋ͷʢ͞Ε͍ͯΔΑͶʁʣ w ʮݪଇʯ͸ඞͣ͠΋໌จԽ͞Ε͍ͯΔͱ͸ݶΒͳ͍ w ແҙࣝʹܾΊͨݪଇʹैͬͯઃܭ͠ɺຊਓ͕͍֮ࣗͯ͠ͳ ͍ͱ͖ͩͬͯ͋ΔʢͳΜͱͳܾ͘Ίͨʜͱ͍͏΍ͭʣ w ʮݪଇʯΛܾΊͯ΋ྫ֎΋ؚΊͯશͯ໢ཏ͢Δͷ͸೉͍͠ w ͦ΋ͦ΋ʮݪଇʯΛܾΊΔΑ͏ͳॳظͷஈ֊Ͱ͸ɺͦ͜· Ͱߟ͍͑ͯͳ͍ɺߟ͑ΒΕͳ͍

Slide 41

Slide 41 text

ʮݪଇʯͷlྫ֎zΛɺ ࠷ॳ͔Β໢ཏతʹڍ͛Δͷ͸೉͍͠

Slide 42

Slide 42 text

͋ΒΏΔʮݪଇʯΛॻ͖ग़ͦ͏ͱ͢Δͱɺ lࣗ෼ͷର࿩zΈ͍ͨʹͳͬͯɺ໘౗͍͘͞

Slide 43

Slide 43 text

ࣄ࣮ʜ෼͔ͬͯΔ͜ͱ͸ॻ͔Εͳ͍ ؔ܎ʜԿ͕ඞཁ͔ɺ༧Ί෼͔Βͳ͍ ݪଇʜྫ֎΋ؚΊͯॻ͖͖Εͳ͍ ɹɹɹͦ΋ͦ΋ҙࣝͯ͠ͳ͍ ͳͥ҉໧஌ʹͳͬͯ͠·͏ͷ͔ʁ

Slide 44

Slide 44 text

Ͱ͸ɺڭ͑ͯ΋ΒͬͨΓɺ ࣗ෼ͷதʹ͋Δ҉໧஌͸ Ͳ͏͢Ε͹͍͍͔ʁ

Slide 45

Slide 45 text

ʮ҉໧஌ʯ͔Βʮܗࣜ஌ʯ΁

Slide 46

Slide 46 text

ʮܗࣜ஌ʯʹ͍ͯ͘͠ w ʮܗࣜ஌ʯͱ͸ɺݴޠԽɾه߸Խ͞Ε͍ͯΔ஌
 ˰ͭ·Γɺॻ͔Ε͍ͯΔ͜ͱ

Slide 47

Slide 47 text

ʮࣄ࣮ʯΛlܗࣜ஌zʹ

Slide 48

Slide 48 text

8)Ͱɺ͔͖ද͢

Slide 49

Slide 49 text

8) w 8IFO ͍ͭ w 8IFSF Ͳ͜Ͱ w 8IP ͩΕ͕ w 8IBU ͳʹΛ w 8IZ ͳͥ w )PX Ͳ͏΍ͬͯ

Slide 50

Slide 50 text

Ͳ͜ʹॻ͔͘ʁ ͍͞Θ͍ɺϓϩάϥϜ͸ʮखॱʯɺͭ·ΓIPXͦͷ΋ͷ ͔͠͠ɺίʔυࣗମʹIPX͸༗ͬͯ΋ɺXIZΛॻ͘৔ॴ Ͱ͸ͳ͍ Ͱ͸ɺͲ͜ʹॻ͘΂͖͔ʁ

Slide 51

Slide 51 text

https://twitter.com/t_wada/status/904916106153828352 ͦΕͧΕɺॻ͘ͷʹ;͞Θ͍͠৔ॴ΋ߟ͑Δ

Slide 52

Slide 52 text

࢒͢৔ॴ͸ɺະདྷΛߟܾ͑ͯΊ͍ͯ͘ ςετίʔυɺίϛοτϩάɺίʔυίϝϯτɺ 3&"%.&ɺ(JU)VCɺ2JJUBɺ4MBDLɺXJLJɺ ݴޠͷυΩϡϝϯτػೳ +BWBEPDͱ͔ ʜ ͱʹ͔ͪ͘ΌΜͱݕࡧͰ͖ɺޙੈͷਓ͕౸ୡͰ͖Δ৔ॴɺ ࢀরͰ͖ΔܗࣜͰ࢒͢

Slide 53

Slide 53 text

ݸਓͷ1$ͷϩʔΧϧ ΞʔΧΠϒ͞Εͳ͍.- μϝɺઈର!

Slide 54

Slide 54 text

lؔ܎zΛܗࣜ஌ʹ

Slide 55

Slide 55 text

ਤ΍දͰɺ͔͖ද͢

Slide 56

Slide 56 text

ਤ΍දͰɺ͔͖ද͢ w ͞·͟·ͳਤ๏ɾه๏͸ɺूΊΒΕͨࣄ࣮͔Βؔ܎Λಋ ग़͢ΔͨΊͷʮࢹ఺ʯΛఏڙ͢Δ w ΑΓϏδωεཁٻʹ͍ۙϨΠϠʔΛ͔͖ද͢ʹ͸దͨ͠ ʮϏδωεϑϨʔϜϫʔΫʯ͕ࢀߟʹͳΔ ‎ ྫ͑͹ʮ"T*T5P#FϞσϧʯʮϩδοΫπϦʔʯ౳ w ΑΓίʔυʹ͍ۙϨΠϠʔΛ͔͖ද͢ʹ͸ඪ४Խ͞Εͨ
 lϞσϦϯάਤ๏zΛ࢖͏ ‎ ྫ͑͹ʮ&3ਤʯʮ6.- $MBTTਤ4FRVFODFਤʜ ʯ౳

Slide 57

Slide 57 text

ͳͥؔ܎Λ͔͖ද͔͢ʁ Ϋϥεܧঝ΍ςʔϒϧͷϦϨʔγϣϯΛఆٛ͠ͳͯ͘΋ɺ ಈ͘ίʔυ͸ॻ͚Δ ͔͠͠ɺͦΕͰ͸ઃܭऀͷҙਤ͸఻ΘΒͳ͍ͷͰɺະདྷ ͷͨΊʹɺҙਤͨ͠lؔ܎zΛه๏ɾਤ๏Ͱ఻͑Δ

Slide 58

Slide 58 text

lؔ܎zΛίʔυʹຒΊࠐΉ lؔ܎z͸ίʔυʹຒΊࠐ·ΕΕ͹ɺΑΓ໌֬ͳʮ੍໿ʯ ͱͳΓɺʮlΑΓڧ͍zܗࣜ஌ʯͱͳΔ ʢݴޠػೳͰΫϥεܧঝΛఆٛ͢Δɺ%#.4ͷεΩʔϚ ʹϦϨʔγϣϯΛషΔ౳ʣ

Slide 59

Slide 59 text

طଘͷਤ๏ɾه๏͸͋͘·ͰϕετϓϥΫςΟεʜ
 ࢀߟʹ͸ͳΔ͕ɺ߆Γա͗ͣɺ؆қͰ΋ΞυϗοΫͰ΋ ͍͍ͷͰɺ·ͣ͸ඳ͍ͯΈΔ

Slide 60

Slide 60 text

܁Γฦ͚͢Ͳɺʮؔ܎ʯ͸l໰୊ʹର͢Δࢹ఺zɺ ͭ·Γlઃܭऀͷҙਤz͕࢒Γɺ఻ΘΔ͜ͱ͕େࣄ

Slide 61

Slide 61 text

ʮݪଇʯΛlܗࣜ஌zʹ

Slide 62

Slide 62 text

࢒೦ͳ͕ΒɺʮݪଇʯΛܗࣜ஌ʹ͢Δఆܕతͳ ख๏͸·ͩແͦ͞͏ʜݴ༿จষͰॻ͍͍ͯ͜͏
 ʢ༗ͬͨΒڭ͍͑ͯͩ͘͞ʣ

Slide 63

Slide 63 text

ݫີʹߟ͑͗ͣ͢ɺlݪଇ͸ΏΔ΍͔ͳҰ؏ੑΛ ΋Βͨ͢΋ͷz͘Β͍ʹଊ͑ͯɺ͔͖ද͍ͯ͘͠

Slide 64

Slide 64 text

ʮઃܭݪଇʯʮ։ൃํ਑ʯʮઃܭࢥ૝ʯͳͲɺ ࠷ॳ͸ࢄʑٞ࿦͢Δͷʹɺ๨ΕڈΒΕ͕ͪ

Slide 65

Slide 65 text

ܧଓతʹɺ l໰୊Λଊ͑ΔzͨΊʹ

Slide 66

Slide 66 text

Ұ൪େࣄͳ࿦఺

Slide 67

Slide 67 text

lͲ͜·Ͱ΍Ε͹͍͍ͷ͔ʁz

Slide 68

Slide 68 text

έʔεόΠέʔεͬͯ ݴ͍ͨ͘ͳͬͯ͘Δ΍ͭ

Slide 69

Slide 69 text

ಛʹʮؔ܎ʯ͸ɺͭ·Γlࢹ఺zͳͷͰɺ༨ܭͳlࢹ఺z͸ ٯʹࠞཚΛট͖ɺ޻਺΋͔͔Δ ͭ·Γʮૣ͗͢Δ࠷దԽ͸ѱʯͱ͍͏ɺ͍ͭ΋ͷ࿩ʹܨ ͕͍ͬͯ͘

Slide 70

Slide 70 text

๲େ͗͢Δʮܗࣜ஌ʯ͸ɺlܗࣜ஌ͷಡΈऔΓํz ͱ͍͏ʮ҉໧஌ʯΛੜΈग़͢ ͓ͳ͡Έͷྫɿ EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

Slide 71

Slide 71 text

׬ᘳΛ໨ࢦ͗͢͠ͳ͍ͨΊͷɺͭͷج४ ʮޙ೚ʹ·ͬͨ͘ɺಉۤ͡࿑Λͤ͞ͳ͍ʯ ʮมߋ͞Ε΍͍͢ͱ͜Ζ͸Ͳ͔͜ʁʯ ಛʹޙऀ͸ɺ֎ΕΔՄೳੑ͸౰વ༗Δ͚Ͳ
 ʮมߋ͞Ε΍͍͢ʯΠίʔϧʮՁ஋͕ߴ͍Օॴʯ
 Մೳੑ͕ߴ͍ͷͰɺগͳ͘ͱ΋ͦͷٞ࿦͸ແବʹͳΒͳ͍

Slide 72

Slide 72 text

͜Ε·Ͱͷ࿩Λ·ͱΊ·͢

Slide 73

Slide 73 text

l໰୊Λଊ͑Δzͱ͸ɺl໰୊Λཧղ͢Δz͜ͱ ͦͷͨΊʹ͸ɺ͜Ε·ͰੵΈॏͶΒΕͨʮࣄ࣮ʯͱɺͦ ͷؒʹ͋Δʮؔ܎ʯΛఆٛ͠ɺͦΕΒ͕ಋ͔Ε͖ͯͨʮݪ ଇʯΛݴ༿ʹॻ͖දͯ͠ΈΔ ͦ͏͢Δ͜ͱͰ໰୊Λཧղ͢ΔͨΊʹඞཁͳʮ৚݅ʯ͕ ἧͬͯ͘Δ

Slide 74

Slide 74 text

ࠓ೔͓͸ͳͨ͜͠͠ͱ ·ͱΊ w ͦ΋ͦ΋ʮ໰୊Λଊ͑Δʯͱ͸ w ʮυϝΠϯ஌ࣝʯͷʮ҉໧஌ʯΛݟ͚ͭΔ w ʮ҉໧஌ʯ͔Βʮܗࣜ஌ʯ΁ม͍͑ͯ͘ w ܧଓతʹɺl໰୊Λଊ͑ΔzͨΊʹ

Slide 75

Slide 75 text

w ͦ΋ͦ΋ʮ໰୊Λଊ͑Δʯͱ͸ 㾎 ໰୊ʹؔ͢Δʮະ஌ͷ͜ͱʯʮσʔλʯʮ৚݅ʯͷ
 ཁૉΛἧ͑Δ͜ͱ 㾎 ͔͠͠ɺͦͷதͰʮ৚݅ʯΛἧ͑Δͷ͸೉͍͠

Slide 76

Slide 76 text

w ʮυϝΠϯ஌ࣝʯͷʮ҉໧஌ʯΛݟ͚ͭΔ 㾎 ʮ৚݅ʯΛἧ͑Δͷ͕೉͍͠ͷ͸ɺ໰୊ʹؔ͢Δ
 ʮυϝΠϯ஌ࣝʯ͕ʮ҉໧஌ʯʹͳ͍ͬͯΔ͔Β 㾎 l҉໧஌zʹͳ͍ͬͯΔʮ৚݅ʯΛ୳ͨ͢Ίʹ͸
 ʮࣄ࣮ʯʮؔ܎ʯʮݪଇʯʹண໨͢ΔͱΑ͍

Slide 77

Slide 77 text

w ʮ҉໧஌ʯΛʮܗࣜ஌ʯʹม͍͑ͯ͘ 㾎 ʮࣄ࣮ʯ͸ɺl8)zΛ໌Β͔ʹ͢Δ 㾎 ʮؔ܎ʯ͸ɺlࢹ఺zΛ༩͑Δਤ๏ɾه๏Λ࢖͏ 㾎 ʮݪଇʯ͸ɺlΏΔ΍͔ͳҰ؏ੑzͱଊ͑ɺ࠷ॳʹ
 ߟ͑ͨ͜ͱΛॻ͖ग़ͯ͠ΈΔ

Slide 78

Slide 78 text

w ܧଓతʹɺl໰୊Λଊ͑ΔzͨΊʹ 㾎 lܗࣜ஌zʹ׬શ͸ແ͍ͷͰɺ׬શΛ໨ࢦ͞ͳ͍ 㾎 ଞͷਓʹlಉۤ͡࿑͸ͤ͞ͳ͍zͱɺ͜ͷઌ
 lมΘΓͦ͏ͳͱ͜Ζzͱ͍͏؍఺ʹ஫ྗ͢Δ

Slide 79

Slide 79 text

ࠓ೔࿩͞ͳ͔ͬͨ͜ͱ w ࣮͸ɺʮج४ʯ΋҉໧஌ʹͳΓ͕ͪ w ࣮͸ɺʮσʔλʯ΋ἧ͑Δͷ΋೉͍͠ w ʮ෼ੳʯʹΑͬͯʮະ஌ͷ͜ͱʯ͸มΘΔ͜ͱ͕͋Δ w ݁ہɺἧ͑ͨཁૉΛʮ෼ੳʯ͠ɺͦͷ݁ՌΛͲ͏΍ͬͯ ʮઃܭʯʹܨ͍Ͱ͍͔͘ʁ

Slide 80

Slide 80 text

࠷ޙʹઃܭʹ͍ͭͯ޷͖ͳ ݴ༿Λ঺հͯ͠కΊ·͢

Slide 81

Slide 81 text

Dick Hamming ʮޡͬͨ໰୊Λਖ਼͘͠ղ͘ΑΓ΋ɺ ਖ਼͍͠໰୊Λޡͬͨํ๏Ͱղ͘ํ͕Α͍ʯ

Slide 82

Slide 82 text

ޚਗ਼ௌ# ͋Γ͕ͱ͏͍͟͝·ͨ͠

Slide 83

Slide 83 text

ڞಉԽ දग़Խ ࿈݁Խ ಺໘Խ ҉໧஌ ܗࣜ஌ ܗࣜ஌ ҉໧஌ ܗ ࣜ ஌ ܗ ࣜ ஌ ҉ ໧ ஌ ҉ ໧ ஌ ໺தҮ࣍࿠ஶ ʮ஌ࣝ૑଄اۀʯ ʮ҉໧஌ʯ˰ʮܗࣜ஌Խʯͱ͍͑͹ɺ4&$*Ϟσϧ͕஌ΒΕ͍ͯΔ ྫ͑͹ϖΞϓϩ͸ɺʮڞಉԽʯͷϓϩηεͦͷ΋ͷͱݴ͑Δ ʲࢀߟจݙʳ