Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
設計のための、問題の捉え方〜ドメイン知識の暗黙知を形式知に〜(まとめ版)
Search
Magnolia.K
November 10, 2018
Technology
13k
36
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
設計のための、問題の捉え方〜ドメイン知識の暗黙知を形式知に〜(まとめ版)
「2018/11/8 設計Night2018 powered by Classi」で発表した資料です
当日の資料のページ数が多すぎた(140ページ)ので、2/3くらいにまとめました
Magnolia.K
November 10, 2018
More Decks by Magnolia.K
See All by Magnolia.K
吉祥寺.pmは1つじゃない — 複数イベント並走運営の12年 —
magnolia
0
1.4k
吉祥寺.pm運営の動機、 得られた学び
magnolia
1
930
これからの吉祥寺.pmについて
magnolia
0
780
大吉祥寺.pm 2025 キーノート
magnolia
1
1.4k
イベント運営から見た登壇者への期待
magnolia
7
3.9k
「ビジネスロジック」と「例外」
magnolia
9
5k
「吉祥寺.pm」というIT勉強会を 10年間続けてきた話
magnolia
0
1.3k
吉祥寺.pm18オープニングトーク.pdf
magnolia
0
2k
吉祥寺.pmというテックイベントを4年間続けてきた話
magnolia
0
970
Other Decks in Technology
See All in Technology
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
430
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
140
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
550
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
130
The seven pitfalls of AI (revised version)
ufried
0
250
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
120
Claude起点の仕様駆動開発
tanakaseiya
0
360
freeeらしさをAIとともに作る / Creating the freee Experience with AI
ymrl
0
190
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
leveragestech
PRO
0
140
SDDの運用にめげずに向き合った話
sansantech
PRO
0
130
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
490
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
270
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
Building a Scalable Design System with Sketch
lauravandoore
464
34k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
540
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Marketing to machines
jonoalderson
1
5.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Evolving SEO for Evolving Search Engines
ryanjones
0
310
Technical Leadership for Architectural Decision Making
baasie
3
590
Code Reviewing Like a Champion
maltzj
528
40k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The Limits of Empathy - UXLibs8
cassininazir
1
700
Transcript
ઃܭͷͨΊͷɺͷଊ͑ํ ઃܭφΠτQPXFSFECZ$MBTTJ .BHOPMJB, ʙυϝΠϯࣝͷ҉Λܗࣜʹʙ ʲ·ͱΊ൛ʳ
͜Ε·Ͱͷઃܭʹؔ͢Δٞ w ઃܭͱlΛׂ͠ɺߏԽ͢Δ͜ͱz w దʹߏԽ͢ΔͨΊʹʮύλʔϯʯͱʮઃܭݪଇʯ ͕༗ޮͰ͋Δ w ʮύλʔϯʯΛద༻͢Δࢦ͕ʮઃܭݪଇʯ w ʮઃܭݪଇʯͷద༻ɺlͲ͕͜มΘΓ͍͢ϙΠϯτͳ
ͷ͔zΛݟۃΊΔͱ͜Ζ͔Β l࣮گதܧγϦʔζʮ։ൃݱͰཱͨͤΔͨΊͷઃܭݪଇͱύλʔϯʯCVJMEFSTDPOzΑΓ https://nekogata.hatenablog.com/entry/2018/09/10/163206
ʮΛ͍͔ʹଊ͑Δͷ͔ʹ͍ͭͯʯ ʮ҉ͷϘτϧωοΫ͕Ͳ͏ͬͯઃܭݪଇΛ͏͔ Ͱͳ͘ɺͦͷͷͷଊ͑ํʹҠಈͨ͠ʯͱݴ͑ ΔͰ͠ΐ͏ɻ͜ͷʮͦͷͷͱͷ͖߹͍ํʯͱ͍͏ ࢹΛઃܭʹରͯ͠ಋೖͯͩ͘͠͞Δͷɺ,JDIJKPKJQN ͷΦʔΨφΠβʔͰ͋Δ!NBHOPMJB@L@ࢯͰ͢ɻ
ࣗݾհ 5XJUUFS!NBHOPMJB@L@ 1FSMͱ4DBMB͕͖ ઃܭʹ͍ͭͯͣͬͱߟ͍͑ͯΔ ٢ࣉQNΦʔΨφΠβʔ https://kichijojipm.connpass.com https://twitter.com/magnolia_k_
ࠓ͓ͳ͢͠Δ͜ͱ ͦͦʮΛଊ͑Δʯͱ ʮυϝΠϯࣝʯͷʮ҉ʯΛݟ͚ͭΔ ʮ҉ʯ͔Βʮܗࣜʯม͍͑ͯ͘ ܧଓతʹɺlΛଊ͑ΔzͨΊʹ
ͦͦʮΛଊ͑Δʯͱʁ
ݹయʹཱͪฦͬͯΈΔ ͜ͷຊʹֶΛղͨ͘Ίͷͭͷ εςοϓ͕ॻ͔Ε͍ͯΔ Λཧղ͢Δ͜ͱ ܭըΛͨͯΔ͜ͱ ܭըΛ࣮ߦ͢Δ͜ͱ
;ΓฦͬͯΈΔ͜ͱ ͜ΕιϑτΣΞͷ։ൃͷखॱͱ ಉ͡ͱݴ͑ΔͷͰͳ͍͔ʁ (ϙϦΞஶ ʮ͍͔ʹͯ͠Λͱ͔͘ʯ
ͭͷεςοϓͷɺͭʮΛཧղ͢Δ͜ͱʯʹɺ ·͞ʹʮΛଊ͑Δ͜ͱʯͦͷͷ͕ॻ͔Ε͍ͯΔ Λཧղ͢Δ͜ͱ ཁ 㾎 ະͷͷɺσʔλɺ݅Կ͔ʁ 㾎 ݅े͔ʁໃ६͍ͯ͠ͳ͍͔ʁ
㾎 ͔͖݅ද͢͜ͱ͕Ͱ͖Δ͔ʁ
݅ ͔͖ද͢͜ͱ͕ Ͱ͖Δ͔ʁ
έʔεελσΟ
έʔεελσΟͱͯ͠ɺ༩͑ΒΕͨྸʹ ͳΔΛࢉग़͢Δίʔυʹ͍ͭͯߟ͑Δ l͋ΔྸʹͳΔzΛٻΊΔܭࢉํ๏ɺҎԼͷ௨Γ ྸ͕Ճࢉ͞ΕΔͷɺىࢉʹԠ͢Δͷલͷ ຬྃ࣌ ޕޙ࣌ʣ ͭ·Γɺ๏্ੜͷલʹྸ͕Ճࢉ͞ΕΔ ྫɿ݄ੜ·Εͷਓ݄ʹ ࡀʹ౸ୡ͢Δ ࠜڌ๏ɿྸܭࢉχؔεϧ๏
w ྸग़ੜͷΑΓ೭Λىࢉ͢ w ຽ๏ୈͷنఆྸͷܭࢉʹ೭Λ४༻͢
ͱΓ࣮͋͑ͣͯ͠Έͨ ͷࢉग़ʹ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” ਖ਼͍͕͠ࢉग़͞Ε͍ͯΔ
ͷॲཧͳΜ͔ͩΒ ੜ͕݄ͷਓΛ ߟྀͯ͠ΔΑͶʁ ͱΓ͋͑ͣಈ͍ͨʜͰϨϏϡΞʔ͔Βͷࢦఠ
p calc_arrival_day(2000, 2, 29, 18) ʊਓਓਓਓਓਓਓਓਓʊ ʼɹ"2018-02-27"ɹʻ ʉY^Y^Y^Y^Y^Y^Y^Yʉ ͔֬ʹɺ݄͕ੜͷ߹ɺਖ਼͘͠ͳ͍ ݁Ռ͕ܭࢉ͞ΕΔ
ʜͳ͔ͥʁ
OFYU@ZFBSܭࢉ͕ͨ͠ଘࡏ͠ͳ͍ͷ ߹ɺଘࡏ͢Δ·ͰΛݮࢉ͠·͢ https://docs.ruby-lang.org/ja/latest/method/Date/i/next_year.html ͭ·Γɺʹ݄ͳ͍ͷͰɺ݄ ͕ࢉग़͞ΕɺQSFW@EBZͰߋʹͦͷલ͕ࢉग़͞Εͨ
͍ɺ๏ͷͲ͜ʹ ͦΜͳ݅ॻ͍ͯͳ͍͠ʜ ࢥΘͣɺ͜͏ݴ͍ͨ͘ͳΓ·͢Ͷ
݄ੜ·ΕΛߟྀ࣮ͨ͠ʹม͑ͯΈͨ 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” ݄ੜ·Εਖ਼͘͠ͳͬͨ
݅ɺl͔͖ද͞Εͯz͍͔ͨʁ ʮྸܭࢉχؔεϧ๏ʯ͕ࣔ͢ܭࢉํ๏ɺγϯϓϧ ͳϧʔϧͰʮ݄ੜ·Εʯͱ͍͏ಛҟͳ݅lରԠ Ͱ͖ͯ͠·͍ͬͯΔzʜ͔͠͠ɺٯʹͦͷ͜ͱ͕lಛҟͳ ݅ͷଘࡏΛ͔Γʹ͘͘z͍ͯ͠Δɺͱݴ͑Δ Ծʹɺޙऀͷ࣮͕࠷ॳ͔Β༗ͬͨͱͯ͠ɺίʔυ্ʹ Ͳ͜ʹ݄ग़ͯ͜ͳ͍͜ͱʹมΘΒͳ͍
݅Λl͔͖ද͢zͨΊʹɺͳʹΛ͢Δ͔ʁ ݱঢ়ʮ͏Δ͏Ҏ֎ͷ݄Λߟྀ͢Δʯͱ ͍͏ઃܭͷҙਤ͕ίʔυ্ӅΕͯ͠·͍ͬͯΔ ޙੈͷਓʹɺ͜ͷҙਤΛ͖͢Ͱʁ
ྫ͑ɺςετΛॻ͍ͯҙਤΛ͢ 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 ·ͨɺ݄ʹର͢ΔϩδοΫΛ͋͑ͯ໌ࣔతʹೖΕɺ ҙਤͷ͔Γ͢͞Λ༏ઌ͢Δํ๏ʜ͋Δ͔͠Εͳ͍
݅Λl͔͖ද͢zͷɺ͍͠ ͷܭࢉͰ͏Δ͏ͷ݄Λߟྀ͢Δͱ͍͏ͷ ൺֱత͔Γ͍͢ࣄྫʜ ݱ࣮ʹɺ౸ୡ͢Δͷ͕͍͕݅͋͠ΓɺΛղ͘ ʹ͋ͨͬͯɺඞཁͳ݅Λl͔͖ද͢zͷ༰қͰͳ͍
ʮΛଊ͑Δʯͱɺ(ϙϦΞͷݴ༿ΛआΓΕɺ Λߏ͢Δͭͷཁૉ ʮະͷͷʯʮσʔλʯʮ݅ʯΛ lదʹἧ͑Δz͜ͱɺͱݴ͑ΔͷͰͳ͍͔
ݱ࣮ʹ͜ͷͭͷཁૉͷ͏ͪɺ ʮ݅ʯΛlదʹἧ͑Δ͜ͱz͍͠ ͳ͔ͥʁ ͦ͜Ͱग़ͯ͘ΔΩʔϫʔυ͕ʜ
ʮυϝΠϯࣝʯͷʮ҉ʯ
ʮυϝΠϯࣝʯͱɺʮ҉ʯ w υϝΠϯͱɺl ׆ಈŋؔ৺ŋࣝͳͲͷ ྖҬ ൣғz ͷ͜ͱ w ͭ·ΓɺʮυϝΠϯࣝʯͱɺ͍·औΓΜͰ͍Δ
ͷɺྖҬʹؔ࿈͢Δࣝ w ʮ҉ʯͱɺݴޠԽɾه߸Խ͞Ε͍ͯͳ͍ ˰ͭ·Γɺॻ͔Ε͍ͯͳ͍͜ͱ
ͭ·ΓʮυϝΠϯࣝʯͷʮ҉ʯͱɺ ʹؔ͢Δl͔͖ද͞Ε͍ͯͳ͍zࣝ
ઌ΄Ͳͷྸͷ౸ୡͷྫͰ͍͑ʜ ʲະͷ͜ͱʳ ɹྸ౸ୡΛࢉग़͢ΔϓϩάϥϜͱʁ ɹbirthday.prev_day(1).next_year(age) ʲσʔλʳ ɹੜ·Εɺʹࡀʹ౸ୡ ʲ݅ʳ ɹ݄ੜ·ΕΛߟྀ͢Δ ɹʢ͏Δ͏Ҏ֎ʹ݄ଘࡏ͠ͳ͍ʣ
๏ͷจ͚ͩͰɺΛదʹཧղ͢ΔͨΊ ʹඞཁͳʮ݅ʯ͕lυϝΠϯࣝͷ҉zͱͯ͠ ӅΕͯ͠·͍ͬͯͨ ҰํͰɺΛѻ͏ϓϩάϥϜΛॻ͍ͨܦݧͷ༗ΔਓͰ͋Εɺ݄Λߟྀ ͢Δ͜ͱʹൺֱత༰қʹࢸΔʜͱࢥΘΕΔ͕ʜ୯ͳΔܦݧ҉ʹͳΔқ͍ ʢ%BUFϞδϡʔϧͷυΩϡϝϯτʹͪΌΜͱॻ͔Ε͍ͯͨʣ
ͰɺͲ͏͢ΕΑ͍͔ʁ ͍ͬͯΔਓʹฉ͚ղܾ͢Δ͔ʁ
͊ʜͳʹΛݴ͍͍͑ͷʁ ͋ͳͨͷ͍ͬͯΔ҉Λڭ͍͑ͯͩ͘͞ ίϨ͡Όͳ͍ײ
ʮ҉ʯ͕જΜͰ͍ͦ͏ͳॴΛߟ͑ͯΈΔ
ࣄ࣮ ؔ ݪଇ
ʮखॱʯʮྺ࢙ࠜڌʯͱ͍ͬͨlࣄ࣮zɺ ҉ʹͳΓ͕ͪ 㾎 ඞཁͳखॱ͕ɺखॱॻʹॻ͔Ε͍ͯͳ͍ 㾎 ࣮ࢪ͍ͯ͠Δਓҙࣝ͠ͳ͍࡞ۀͷ֬ೝ؍ 㾎 ཤྺ ϩά ͷ͞Ε͍ͯͳ͍มߋͷʑ
㾎 ઃܭࠜڌͷ͔Βͳ͍ػೳͷʑ ࣄ࣮͕l͔͖ද͞Ε͍ͯͳ͍z͜ͱͰɺޙੈͷਓ͕ػೳΛཧղվम͢ΔͨΊ ͷʮ݅ʯ͕༰қʹἧΘͳ͘ͳͬͯ͠·͏ ͳͲͳͲʜ
͍ͬͯΔਓɺॻ͔Εͯͳͯ͘ࠔΒͳ͍͔Β
lؔzɺlࣄ࣮zҎ্ʹ҉ʹͳΓ͕ͪ 㾎 ૬ޓʹؔ࿈͢ΔෳࡶͳϏδωεཁٻͱɺγεςϜͷؔ 㾎 άϩʔόϧม͕ଟ༻͞ΕͨϞδϡʔϧߏ 㾎 ࢀরͷͨΊʹ݅ͷଟ͍ςʔϒϧઃܭ औফআ͘ɺ࣮࠶ܝɺॳظ͚ͩҧ͏ʜ ͳͲͳͲʜ ͕ؔl͔͖ද͞Ε͍ͯͳ͍z͜ͱͰɺͲ͏ḷ͍͚͔ͬͯΒͣ༰қʹ
ʮ݅ʯʹͨͲΓண͚ͳ͘ͳͬͯ͠·͏
ʮؔʯɺlʹର͢Δࢹzʜ ࣄ࣮͚ͩΛฒͯݟ͑ͯ͜ͳ͍
Ճ͑ͯɺؔΛݴ༿͚ͩͰ ਖ਼֬ʹදݱ͢Δͷ͍͠
ʮنଇʯͱҧͬͯɺlݪଇz҉ʹͳΓ͕ͪ 㾎 ໋໊͕౷Ұ͞Ε͍ͯͳ͍͕ɺͦͷ๏ଇ͕͔Βͳ͍ ΄ͱΜͲϩʔϚࣈͰɺҰ෦ӳޠͱ͔ʣ 㾎 ػೳׂͷ୯ҐϞδϡʔϧཻ͕ಛఆͷػೳ͚ͩҟͳΔ ͕ɺͦͷࢦ͕͔Βͳ͍ ʢ໌Β͔ʹಛఆͷ୲ऀͷ͚࣌ͩ࡞Γ͕ҧ͏ͱ͔ʣ ͳͲͳͲʜ ݪଇ͕l͔͖ද͞Ε͍ͯͳ͍z͜ͱͰɺͦΕ·ͰकΒΕ͖ͯͨͣͷ
ʮ݅ʯ͕ݟ͑ͳ͘ͳͬͯ͠·͏
ιϑτΣΞʹ͓͍ͯlҰ؏ੑzඇৗʹॏཁͳཁૉ lҰ؏ੑzɺʮنଇʯʮݪଇʯʹΑͬͯͨΒ͞ΕΔ Ұ؏ੑ͕ܽͨ͠ͱ͜Ζʹόά͕જΈ͍͢ʜօ͞Μࢥ͍ͨΓ·͢ΑͶʁ
ʮنଇʯͱɺʮݪଇʯ w ʮنଇʯ໌จԽ͞Ε͍ͯΔͷʢ͞Ε͍ͯΔΑͶʁʣ w ʮݪଇʯඞͣ͠໌จԽ͞Ε͍ͯΔͱݶΒͳ͍ w ແҙࣝʹܾΊͨݪଇʹैͬͯઃܭ͠ɺຊਓ͕͍֮ࣗͯ͠ͳ ͍ͱ͖ͩͬͯ͋ΔʢͳΜͱͳܾ͘Ίͨʜͱ͍͏ͭʣ w ʮݪଇʯΛܾΊͯྫ֎ؚΊͯશͯཏ͢Δͷ͍͠
w ͦͦʮݪଇʯΛܾΊΔΑ͏ͳॳظͷஈ֊Ͱɺͦ͜· Ͱߟ͍͑ͯͳ͍ɺߟ͑ΒΕͳ͍
ʮݪଇʯͷlྫ֎zΛɺ ࠷ॳ͔Βཏతʹڍ͛Δͷ͍͠
͋ΒΏΔʮݪଇʯΛॻ͖ग़ͦ͏ͱ͢Δͱɺ lࣗͷରzΈ͍ͨʹͳͬͯɺ໘͍͘͞
ࣄ࣮ʜ͔ͬͯΔ͜ͱॻ͔Εͳ͍ ؔʜԿ͕ඞཁ͔ɺ༧Ί͔Βͳ͍ ݪଇʜྫ֎ؚΊͯॻ͖͖Εͳ͍ ɹɹɹͦͦҙࣝͯ͠ͳ͍ ͳͥ҉ʹͳͬͯ͠·͏ͷ͔ʁ
Ͱɺڭ͑ͯΒͬͨΓɺ ࣗͷதʹ͋Δ҉ Ͳ͏͢Ε͍͍͔ʁ
ʮ҉ʯ͔Βʮܗࣜʯ
ʮܗࣜʯʹ͍ͯ͘͠ w ʮܗࣜʯͱɺݴޠԽɾه߸Խ͞Ε͍ͯΔ ˰ͭ·Γɺॻ͔Ε͍ͯΔ͜ͱ
ʮࣄ࣮ʯΛlܗࣜzʹ
8)Ͱɺ͔͖ද͢
8) w 8IFO ͍ͭ w 8IFSF Ͳ͜Ͱ w
8IP ͩΕ͕ w 8IBU ͳʹΛ w 8IZ ͳͥ w )PX Ͳ͏ͬͯ
Ͳ͜ʹॻ͔͘ʁ ͍͞Θ͍ɺϓϩάϥϜʮखॱʯɺͭ·ΓIPXͦͷͷ ͔͠͠ɺίʔυࣗମʹIPX༗ͬͯɺXIZΛॻ͘ॴ Ͱͳ͍ ͰɺͲ͜ʹॻ͖͔͘ʁ
https://twitter.com/t_wada/status/904916106153828352 ͦΕͧΕɺॻ͘ͷʹ;͞Θ͍͠ॴߟ͑Δ
͢ॴɺະདྷΛߟܾ͑ͯΊ͍ͯ͘ ςετίʔυɺίϛοτϩάɺίʔυίϝϯτɺ 3&"%.&ɺ(JU)VCɺ2JJUBɺ4MBDLɺXJLJɺ ݴޠͷυΩϡϝϯτػೳ +BWBEPDͱ͔ ʜ ͱʹ͔ͪ͘ΌΜͱݕࡧͰ͖ɺޙੈͷਓ͕౸ୡͰ͖Δॴɺ ࢀরͰ͖ΔܗࣜͰ͢
ݸਓͷ1$ͷϩʔΧϧ ΞʔΧΠϒ͞Εͳ͍.- μϝɺઈର!
lؔzΛܗࣜʹ
ਤදͰɺ͔͖ද͢
ਤදͰɺ͔͖ද͢ w ͞·͟·ͳਤ๏ɾه๏ɺूΊΒΕͨࣄ࣮͔ΒؔΛಋ ग़͢ΔͨΊͷʮࢹʯΛఏڙ͢Δ w ΑΓϏδωεཁٻʹ͍ۙϨΠϠʔΛ͔͖ද͢ʹదͨ͠ ʮϏδωεϑϨʔϜϫʔΫʯ͕ࢀߟʹͳΔ ྫ͑ʮ"T*T5P#FϞσϧʯʮϩδοΫπϦʔʯ w
ΑΓίʔυʹ͍ۙϨΠϠʔΛ͔͖ද͢ʹඪ४Խ͞Εͨ lϞσϦϯάਤ๏zΛ͏ ྫ͑ʮ&3ਤʯʮ6.- $MBTTਤ4FRVFODFਤʜ ʯ
ͳͥؔΛ͔͖ද͔͢ʁ ΫϥεܧঝςʔϒϧͷϦϨʔγϣϯΛఆٛ͠ͳͯ͘ɺ ಈ͘ίʔυॻ͚Δ ͔͠͠ɺͦΕͰઃܭऀͷҙਤΘΒͳ͍ͷͰɺະདྷ ͷͨΊʹɺҙਤͨ͠lؔzΛه๏ɾਤ๏Ͱ͑Δ
lؔzΛίʔυʹຒΊࠐΉ lؔzίʔυʹຒΊࠐ·ΕΕɺΑΓ໌֬ͳʮ੍ʯ ͱͳΓɺʮlΑΓڧ͍zܗࣜʯͱͳΔ ʢݴޠػೳͰΫϥεܧঝΛఆٛ͢Δɺ%#.4ͷεΩʔϚ ʹϦϨʔγϣϯΛషΔʣ
طଘͷਤ๏ɾه๏͋͘·ͰϕετϓϥΫςΟεʜ ࢀߟʹͳΔ͕ɺ߆Γա͗ͣɺ؆қͰΞυϗοΫͰ ͍͍ͷͰɺ·ͣඳ͍ͯΈΔ
܁Γฦ͚͢Ͳɺʮؔʯlʹର͢Δࢹzɺ ͭ·Γlઃܭऀͷҙਤz͕ΓɺΘΔ͜ͱ͕େࣄ
ʮݪଇʯΛlܗࣜzʹ
೦ͳ͕ΒɺʮݪଇʯΛܗࣜʹ͢Δఆܕతͳ ख๏·ͩແͦ͞͏ʜݴ༿จষͰॻ͍͍ͯ͜͏ ʢ༗ͬͨΒڭ͍͑ͯͩ͘͞ʣ
ݫີʹߟ͑͗ͣ͢ɺlݪଇΏΔ͔ͳҰ؏ੑΛ Βͨ͢ͷz͘Β͍ʹଊ͑ͯɺ͔͖ද͍ͯ͘͠
ʮઃܭݪଇʯʮ։ൃํʯʮઃܭࢥʯͳͲɺ ࠷ॳࢄʑٞ͢ΔͷʹɺΕڈΒΕ͕ͪ
ܧଓతʹɺ lΛଊ͑ΔzͨΊʹ
Ұ൪େࣄͳ
lͲ͜·ͰΕ͍͍ͷ͔ʁz
έʔεόΠέʔεͬͯ ݴ͍ͨ͘ͳͬͯ͘Δͭ
ಛʹʮؔʯɺͭ·ΓlࢹzͳͷͰɺ༨ܭͳlࢹz ٯʹࠞཚΛট͖ɺ͔͔Δ ͭ·Γʮૣ͗͢Δ࠷దԽѱʯͱ͍͏ɺ͍ͭͷʹܨ ͕͍ͬͯ͘
େ͗͢ΔʮܗࣜʯɺlܗࣜͷಡΈऔΓํz ͱ͍͏ʮ҉ʯΛੜΈग़͢ ͓ͳ͡Έͷྫɿ EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
ᘳΛࢦ͗͢͠ͳ͍ͨΊͷɺͭͷج४ ʮޙʹ·ͬͨ͘ɺಉۤ͡࿑Λͤ͞ͳ͍ʯ ʮมߋ͞Ε͍͢ͱ͜ΖͲ͔͜ʁʯ ಛʹޙऀɺ֎ΕΔՄೳੑવ༗Δ͚Ͳ ʮมߋ͞Ε͍͢ʯΠίʔϧʮՁ͕ߴ͍Օॴʯ Մೳੑ͕ߴ͍ͷͰɺগͳ͘ͱͦͷٞແବʹͳΒͳ͍
͜Ε·ͰͷΛ·ͱΊ·͢
lΛଊ͑ΔzͱɺlΛཧղ͢Δz͜ͱ ͦͷͨΊʹɺ͜Ε·ͰੵΈॏͶΒΕͨʮࣄ࣮ʯͱɺͦ ͷؒʹ͋ΔʮؔʯΛఆٛ͠ɺͦΕΒ͕ಋ͔Ε͖ͯͨʮݪ ଇʯΛݴ༿ʹॻ͖දͯ͠ΈΔ ͦ͏͢Δ͜ͱͰΛཧղ͢ΔͨΊʹඞཁͳʮ݅ʯ͕ ἧͬͯ͘Δ
ࠓ͓ͳͨ͜͠͠ͱ ·ͱΊ w ͦͦʮΛଊ͑Δʯͱ w ʮυϝΠϯࣝʯͷʮ҉ʯΛݟ͚ͭΔ w ʮ҉ʯ͔Βʮܗࣜʯม͍͑ͯ͘ w
ܧଓతʹɺlΛଊ͑ΔzͨΊʹ
w ͦͦʮΛଊ͑Δʯͱ 㾎 ʹؔ͢Δʮະͷ͜ͱʯʮσʔλʯʮ݅ʯͷ ཁૉΛἧ͑Δ͜ͱ 㾎 ͔͠͠ɺͦͷதͰʮ݅ʯΛἧ͑Δͷ͍͠
w ʮυϝΠϯࣝʯͷʮ҉ʯΛݟ͚ͭΔ 㾎 ʮ݅ʯΛἧ͑Δͷ͕͍͠ͷɺʹؔ͢Δ ʮυϝΠϯࣝʯ͕ʮ҉ʯʹͳ͍ͬͯΔ͔Β 㾎 l҉zʹͳ͍ͬͯΔʮ݅ʯΛ୳ͨ͢Ίʹ ʮࣄ࣮ʯʮؔʯʮݪଇʯʹண͢ΔͱΑ͍
w ʮ҉ʯΛʮܗࣜʯʹม͍͑ͯ͘ 㾎 ʮࣄ࣮ʯɺl8)zΛ໌Β͔ʹ͢Δ 㾎 ʮؔʯɺlࢹzΛ༩͑Δਤ๏ɾه๏Λ͏ 㾎 ʮݪଇʯɺlΏΔ͔ͳҰ؏ੑzͱଊ͑ɺ࠷ॳʹ ߟ͑ͨ͜ͱΛॻ͖ग़ͯ͠ΈΔ
w ܧଓతʹɺlΛଊ͑ΔzͨΊʹ 㾎 lܗࣜzʹશແ͍ͷͰɺશΛࢦ͞ͳ͍ 㾎 ଞͷਓʹlಉۤ͡࿑ͤ͞ͳ͍zͱɺ͜ͷઌ lมΘΓͦ͏ͳͱ͜Ζzͱ͍͏؍ʹྗ͢Δ
ࠓ͞ͳ͔ͬͨ͜ͱ w ࣮ɺʮج४ʯ҉ʹͳΓ͕ͪ w ࣮ɺʮσʔλʯἧ͑Δͷ͍͠ w ʮੳʯʹΑͬͯʮະͷ͜ͱʯมΘΔ͜ͱ͕͋Δ w ݁ہɺἧ͑ͨཁૉΛʮੳʯ͠ɺͦͷ݁ՌΛͲ͏ͬͯ ʮઃܭʯʹܨ͍Ͱ͍͔͘ʁ
࠷ޙʹઃܭʹ͍͖ͭͯͳ ݴ༿Λհͯ͠కΊ·͢
Dick Hamming ʮޡͬͨΛਖ਼͘͠ղ͘ΑΓɺ ਖ਼͍͠Λޡͬͨํ๏Ͱղ͘ํ͕Α͍ʯ
ޚਗ਼ௌ# ͋Γ͕ͱ͏͍͟͝·ͨ͠
ڞಉԽ දग़Խ ࿈݁Խ ໘Խ ҉ ܗࣜ ܗࣜ ҉ ܗ ࣜ
ܗ ࣜ ҉ ҉ தҮ࣍ஶ ʮࣝاۀʯ ʮ҉ʯ˰ʮܗࣜԽʯͱ͍͑ɺ4&$*Ϟσϧ͕ΒΕ͍ͯΔ ྫ͑ϖΞϓϩɺʮڞಉԽʯͷϓϩηεͦͷͷͱݴ͑Δ ʲࢀߟจݙʳ