設計のための、問題の捉え方〜ドメイン知識の暗黙知を形式知に〜(まとめ版)

E55e952de5ff56e1e35aca1ee648b31c?s=47 Magnolia.K
November 10, 2018

 設計のための、問題の捉え方〜ドメイン知識の暗黙知を形式知に〜(まとめ版)

「2018/11/8 設計Night2018 powered by Classi」で発表した資料です
当日の資料のページ数が多すぎた(140ページ)ので、2/3くらいにまとめました

E55e952de5ff56e1e35aca1ee648b31c?s=128

Magnolia.K

November 10, 2018
Tweet

Transcript

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

  2. ͜Ε·Ͱͷઃܭʹؔ͢Δٞ࿦ w ઃܭͱ͸l໰୊Λ෼ׂ͠ɺߏ଄Խ͢Δ͜ͱz w ద੾ʹߏ଄Խ͢ΔͨΊʹ͸ʮύλʔϯʯͱʮઃܭݪଇʯ ͕༗ޮͰ͋Δ w ʮύλʔϯʯΛద༻͢Δࢦ਑͕ʮઃܭݪଇʯ w ʮઃܭݪଇʯͷద༻͸ɺlͲ͕͜มΘΓ΍͍͢ϙΠϯτͳ

    ͷ͔zΛݟۃΊΔͱ͜Ζ͔Β l࣮گதܧγϦʔζʮ։ൃݱ৔Ͱ໾ཱͨͤΔͨΊͷઃܭݪଇͱύλʔϯʯCVJMEFSTDPOzΑΓ https://nekogata.hatenablog.com/entry/2018/09/10/163206
  3. ʮ࿦఺໰୊Λ͍͔ʹଊ͑Δͷ͔ʹ͍ͭͯʯ ʮ҉໧஌ͷϘτϧωοΫ͕Ͳ͏΍ͬͯઃܭݪଇΛ࢖͏͔ Ͱ͸ͳ͘ɺ໰୊ͦͷ΋ͷͷଊ͑ํʹҠಈͨ͠ʯͱ΋ݴ͑ ΔͰ͠ΐ͏ɻ͜ͷʮ໰୊ͦͷ΋ͷͱͷ޲͖߹͍ํʯͱ͍͏ ࢹ఺Λઃܭ࿦ʹରͯ͠ಋೖͯͩ͘͠͞Δͷ͸ɺ,JDIJKPKJQN ͷΦʔΨφΠβʔͰ΋͋Δ!NBHOPMJB@L@ࢯͰ͢ɻ

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

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

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

  7. ݹయʹཱͪฦͬͯΈΔ ͜ͷຊʹ͸਺ֶΛղͨ͘Ίͷͭͷ εςοϓ͕ॻ͔Ε͍ͯΔ  ໰୊Λཧղ͢Δ͜ͱ  ܭըΛͨͯΔ͜ͱ  ܭըΛ࣮ߦ͢Δ͜ͱ 

    ;ΓฦͬͯΈΔ͜ͱ ͜Ε͸ιϑτ΢ΣΞͷ։ൃͷखॱͱ ಉ͡ͱݴ͑ΔͷͰ͸ͳ͍͔ʁ (ϙϦΞஶ ʮ͍͔ʹͯ͠໰୊Λͱ͔͘ʯ 
  8. ͭͷεςοϓͷɺͭ໨ʮ໰୊Λཧղ͢Δ͜ͱʯʹ͸ɺ ·͞ʹʮ໰୊Λଊ͑Δ͜ͱʯͦͷ΋ͷ͕ॻ͔Ε͍ͯΔ  ໰୊Λཧղ͢Δ͜ͱ ཁ໿  㾎 ະ஌ͷ΋ͷɺσʔλɺ৚݅͸Կ͔ʁ 㾎 ৚݅͸े෼͔ʁໃ६͍ͯ͠ͳ͍͔ʁ

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

  10. έʔεελσΟ

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

    w ೥ྸ͸ग़ੜͷ೔ΑΓ೭Λىࢉ͢ w ຽ๏ୈ৚ͷنఆ͸೥ྸͷܭࢉʹ೭Λ४༻͢
  12. ͱΓ࣮͋͑ͣ૷ͯ͠Έͨ ೔෇ͷࢉग़ʹ͸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” ਖ਼͍͠೔͕ࢉग़͞Ε͍ͯΔ
  13. ೔෇ͷॲཧͳΜ͔ͩΒ ஀ੜ೔͕݄೔ͷਓΛ ߟྀͯ͠ΔΑͶʁ ͱΓ͋͑ͣಈ͍ͨʜͰ΋ϨϏϡΞʔ͔Βͷࢦఠ

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

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

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

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

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

  20. ྫ͑͹ɺςετΛॻ͍ͯҙਤΛ࢒͢ 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 ·ͨɺ݄೔ʹର͢ΔϩδοΫΛ͋͑ͯ໌ࣔతʹೖΕɺ ҙਤͷ෼͔Γ΍͢͞Λ༏ઌ͢Δํ๏΋ʜ͋Δ͔΋͠Εͳ͍
  21. ৚݅Λl͔͖ද͢zͷ͸ɺ೉͍͠ ೔෇ͷܭࢉͰ͏Δ͏೥ͷ݄೔Λߟྀ͢Δͱ͍͏ͷ͸ ൺֱత෼͔Γ΍͍͢ࣄྫʜ ݱ࣮ʹ͸ɺ౸ୡ͢Δͷ͕೉͍͠৚͕݅͋Γɺ໰୊Λղ͘ ʹ͋ͨͬͯɺඞཁͳ৚݅Λl͔͖ද͢zͷ͸༰қͰ͸ͳ͍

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

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

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

  25. ʮυϝΠϯ஌ࣝʯͱɺʮ҉໧஌ʯ w υϝΠϯͱ͸ɺl ׆ಈŋؔ৺ŋ஌ࣝͳͲͷ ෼໺ ྖҬ ൣғz ͷ͜ͱ w ͭ·ΓɺʮυϝΠϯ஌ࣝʯͱ͸ɺ͍·औΓ૊ΜͰ͍Δ໰୊

    ͷ෼໺ɺྖҬʹؔ࿈͢Δ஌ࣝ w ʮ҉໧஌ʯͱ͸ɺݴޠԽɾه߸Խ͞Ε͍ͯͳ͍஌
 ˰ͭ·Γɺॻ͔Ε͍ͯͳ͍͜ͱ
  26. ͭ·ΓʮυϝΠϯ஌ࣝʯͷʮ҉໧஌ʯͱ͸ɺ
 ໰୊ʹؔ͢Δl͔͖ද͞Ε͍ͯͳ͍z஌ࣝ

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

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

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

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

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

  32. ࣄ࣮ ؔ܎ ݪଇ

  33. ʮखॱʯʮྺ࢙ࠜڌʯͱ͍ͬͨlࣄ࣮z͸ɺ
 ҉໧஌ʹͳΓ͕ͪ 㾎 ඞཁͳखॱ͕ɺखॱॻʹॻ͔Ε͍ͯͳ͍ 㾎 ࣮ࢪ͍ͯ͠Δਓ΋ҙࣝ͠ͳ͍࡞ۀͷ֬ೝ؍఺ 㾎 ཤྺ ϩά ͷ࢒͞Ε͍ͯͳ͍มߋͷ਺ʑ

    㾎 ઃܭࠜڌͷ෼͔Βͳ͍ػೳͷ਺ʑ ࣄ࣮͕l͔͖ද͞Ε͍ͯͳ͍z͜ͱͰɺޙੈͷਓ͕ػೳΛཧղվम͢ΔͨΊ ͷʮ৚݅ʯ͕༰қʹἧΘͳ͘ͳͬͯ͠·͏ ͳͲͳͲʜ
  34. ஌͍ͬͯΔਓ͸ɺॻ͔Εͯͳͯ͘΋ࠔΒͳ͍͔Β

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

    ʮ৚݅ʯʹͨͲΓண͚ͳ͘ͳͬͯ͠·͏
  36. ʮؔ܎ʯ͸ɺl໰୊ʹର͢Δࢹ఺zʜ ࣄ࣮͚ͩΛฒ΂ͯ΋ݟ͑ͯ͜ͳ͍

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

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

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

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

    w ͦ΋ͦ΋ʮݪଇʯΛܾΊΔΑ͏ͳॳظͷஈ֊Ͱ͸ɺͦ͜· Ͱߟ͍͑ͯͳ͍ɺߟ͑ΒΕͳ͍
  41. ʮݪଇʯͷlྫ֎zΛɺ ࠷ॳ͔Β໢ཏతʹڍ͛Δͷ͸೉͍͠

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

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

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

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

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

  47. ʮࣄ࣮ʯΛlܗࣜ஌zʹ

  48. 8)Ͱɺ͔͖ද͢

  49. 8) w 8IFO ͍ͭ  w 8IFSF Ͳ͜Ͱ  w

    8IP ͩΕ͕  w 8IBU ͳʹΛ  w 8IZ ͳͥ  w )PX Ͳ͏΍ͬͯ
  50. Ͳ͜ʹॻ͔͘ʁ ͍͞Θ͍ɺϓϩάϥϜ͸ʮखॱʯɺͭ·ΓIPXͦͷ΋ͷ ͔͠͠ɺίʔυࣗମʹIPX͸༗ͬͯ΋ɺXIZΛॻ͘৔ॴ Ͱ͸ͳ͍ Ͱ͸ɺͲ͜ʹॻ͘΂͖͔ʁ

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

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

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

  54. lؔ܎zΛܗࣜ஌ʹ

  55. ਤ΍දͰɺ͔͖ද͢

  56. ਤ΍දͰɺ͔͖ද͢ w ͞·͟·ͳਤ๏ɾه๏͸ɺूΊΒΕͨࣄ࣮͔Βؔ܎Λಋ ग़͢ΔͨΊͷʮࢹ఺ʯΛఏڙ͢Δ w ΑΓϏδωεཁٻʹ͍ۙϨΠϠʔΛ͔͖ද͢ʹ͸దͨ͠ ʮϏδωεϑϨʔϜϫʔΫʯ͕ࢀߟʹͳΔ ‎ ྫ͑͹ʮ"T*T5P#FϞσϧʯʮϩδοΫπϦʔʯ౳ w

    ΑΓίʔυʹ͍ۙϨΠϠʔΛ͔͖ද͢ʹ͸ඪ४Խ͞Εͨ
 lϞσϦϯάਤ๏zΛ࢖͏ ‎ ྫ͑͹ʮ&3ਤʯʮ6.- $MBTTਤ4FRVFODFਤʜ ʯ౳
  57. ͳͥؔ܎Λ͔͖ද͔͢ʁ Ϋϥεܧঝ΍ςʔϒϧͷϦϨʔγϣϯΛఆٛ͠ͳͯ͘΋ɺ ಈ͘ίʔυ͸ॻ͚Δ ͔͠͠ɺͦΕͰ͸ઃܭऀͷҙਤ͸఻ΘΒͳ͍ͷͰɺະདྷ ͷͨΊʹɺҙਤͨ͠lؔ܎zΛه๏ɾਤ๏Ͱ఻͑Δ

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

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

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

  61. ʮݪଇʯΛlܗࣜ஌zʹ

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

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

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

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

  66. Ұ൪େࣄͳ࿦఺

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  83. ڞಉԽ දग़Խ ࿈݁Խ ಺໘Խ ҉໧஌ ܗࣜ஌ ܗࣜ஌ ҉໧஌ ܗ ࣜ

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