Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
質とスピード(2020秋100分拡大版) / Quality and Speed 2020 Autumn Edition
Search
Takuto Wada
PRO
November 20, 2020
Programming
140
160k
質とスピード(2020秋100分拡大版) / Quality and Speed 2020 Autumn Edition
質とスピード(2020秋100分拡大版)
2020/11/20 @ JaSST'20 Kyushu
Takuto Wada
PRO
November 20, 2020
Tweet
Share
More Decks by Takuto Wada
See All by Takuto Wada
自動テスト実行結果の目的を整理する / Organizing objectives of automated test results
twada
PRO
10
2.3k
変更容易性と理解容易性を支える自動テスト(2024/02版) / Automated Test Knowledge from Savanna 202402 YAPC::Hiroshima edition
twada
PRO
19
8.8k
実録レガシーコード改善 / Working with Legacy Code: the True Record
twada
PRO
82
34k
Property-based Testing の位置付け / Intro to Property-based Testing
twada
PRO
10
3.3k
Second-System Syndrome: A tale of power-assert
twada
PRO
9
4.2k
技術選定の審美眼(2023年版) / Understanding the Spiral of Technologies 2023 edition
twada
PRO
76
27k
質とスピード(AWS Dev Day 2023 Tokyo 特別編、質疑応答用資料付き) / Quality and Speed AWS Dev Day 2023 Tokyo Edition
twada
PRO
59
30k
サバンナ便り〜自動テストに関する連載で得られた知見のまとめ(2023年5月版)〜 / Automated Test Knowledge from Savanna 202305 edition
twada
PRO
24
18k
サバンナ便り〜自動テストに関する連載で得られた知見のまとめ〜
twada
PRO
19
6.6k
Other Decks in Programming
See All in Programming
Goのmultiple errorsについて (2024年4月版)
syumai
4
910
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
140
ONE WEDGE_company_guide
1wedge_one
0
490
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
270
Let's learn code review
riofujimon
2
410
What We Can Learn From OSS
inouehi
0
420
Git Lint
bkuhlmann
4
750
SIMD Parallel Programming with the Vector API
josepaumard
0
180
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3.5k
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
930
Anthropic Cookbook のおすすめレシピ
schroneko
7
980
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
130
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
276
33k
Practical Orchestrator
shlominoach
182
9.7k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Building Applications with DynamoDB
mza
88
5.6k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Invisible Side of Design
smashingmag
294
49k
A Tale of Four Properties
chriscoyier
151
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
Faster Mobile Websites
deanohume
299
30k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Build The Right Thing And Hit Your Dates
maggiecrowley
24
2k
Transcript
࣭ͱεϐʔυ ాਓ !U@XBEB ʙιϑτΣΞ։ൃͷయܕతͳޡղΛղ͘ʙ /PW !+B445,ZVTIVجௐߨԋ ʢळόʔδϣϯʣ
t-wada t_wada twada #jasstkyushu ࣗݾհ
t-wada t_wada twada #jasstkyushu ࣗݾհ illustrated by @mty_mno
ٕज़ॻͷग़൛ʹؔΘ͍ͬͯ·͢
ΑΖ͓͘͠ئ͍͠·͢ #jasstkyushu illustrated by @mty_mno
ߥͿΔ࢛ఱԦ͕͋ΒΘΕͨʂ ༩͑ΒΕͨ࣌ؒʹରͯ͠Δ͖͜ͱ͕ଟ͗͢Δ߹ɺͲ͏͖͔͢ B είʔϓΛΔ C ͬͱਓΛ૿͢ D ϦϦʔεΛԆظ͢Δ E
࣭Λ٘ਜ਼ʹ͢Δ ʰΞδϟΠϧαϜϥΠʱQ
wظతʹಘΒΕΔ wதظతʹٯޮՌʹͳΔ wظతʹக໋ইʹͳΔ ࣭Λ٘ਜ਼ʹ͢ΕεϐʔυಘΒΕΔʁ
ʮظతதظతʯͷڥʁ ͜͜Ͱ͍͏ʮ࣭ʯͱʁ
ʮظతதظతʯͷڥʁ ͜͜Ͱ͍͏ʮ࣭ʯͱʁ
l࣭ͱ୭͔ʹͱͬ ͯͷՁͰ͋Δz (FSBME8FJOCFSH IUUQTXXXBNB[PODPKQEQ9
Accessibility Adaptability Administrability Analyzability Auditability Availability Calibrability Changeability Compatibility Configurability
Exploitability Extensibility Flexibility Functionality Installability Integrability Internationalizab ility Interoperability Learnability Maintainability Marketability Maturity Modifiability Operability Personalizability Portability Recoverability Reliability Replaceability Reusability Scalability Security Sensitivity Stability Suitability Supportability Testability Traceability Transactionality Understandability Upgradeability Usability ... and lots more! JMJUJFT
IUUQTXXXKVTFPSKQEFQBSUNFOUBMQPJOUIUNM ङϞσϧ
ʢ͓٬༷͔Βʣݟ͑Δ࣭ͱݟ͑ͳ͍࣭ w֎෦࣭ͱ෦࣭ wར༻࣌ͷ࣭ͱ࣭ wػೳཁ݅ͱඇػೳཁ݅
External Quality: Correctness, Usability, Efficiency, Reliability, Integrity, Adaptability, Accuracy, Robustness
Internal Quality: Maintainability, Flexibility, Portability, Re-usability, Readability, Testability, Understandability ֎෦࣭ͱ෦࣭
ιϑτΣΞͷ࣭Λ֎෦ࢦඪͰಛ͚ͮΔਓଟ͍ɻਖ਼͍͜͠ͱΛ͢ Δɺόά͕ͳ͍ɺ͍ɺͳͲͩɻ͕ͩɺͦΕΒΑΓਂ͍ݪҼͷঢ়ʹ ͗͢ͳ͍ɻ ຊॻͰઆ໌͢ΔιϑτΣΞͷ࣭෦࣭Ͱ͋Δɻ෦࣭Λ࡞Γ ࠐΜͩ݁Ռͱͯ͠ɺ֎෦࣭ͱͯ͠ఆٛ͞ΕΔಛੑͷ࣮ݱʹۙͮ͘͜ͱ ͕Ͱ͖Δɻ෦࣭݁ՌͰͳ͘ݪҼͰ͋Γɺྑ͍ιϑτΣΞ͕උ ͍͑ͯΔ͖ͷͩɻ ʰϨΨγʔίʔυ͔Βͷ٫ʱQ
External Quality: Correctness, Usability, Efficiency, Reliability, Integrity, Adaptability, Accuracy, Robustness
Internal Quality: Maintainability, Flexibility, Portability, Re-usability, Readability, Testability, Understandability ෦࣭ʢ*OUFSOBM2VBMJUZʣ ࣗͨͪͷࣹఔʹ͋Δ ෦࣭ͷํΛ٘ਜ਼ʹ͢Δͱ͍͏ அΛ͕ͪ͠ͳͷͰͳ͍͔
ాਓ !U@XBEB ࣭ͱεϐʔυ ʙιϑτΣΞ։ൃͷయܕతͳޡղΛղ͘ʙ
ాਓ !U@XBEB ෦࣭ͱεϐʔυ ʙιϑτΣΞ։ൃͷయܕతͳޡղΛղ͘ʙ
ͰͲͷΑ͏ͳ ɹ෦࣭Λ ٘ਜ਼ʹ๋͛ͨͷ͔
External Quality: Correctness, Usability, Efficiency, Reliability, Integrity, Adaptability, Accuracy, Robustness
Internal Quality: Maintainability, Flexibility, Portability, Re-usability, Readability, Testability, Understandability ෦࣭ʢ*OUFSOBM2VBMJUZʣ
External Quality: Correctness, Usability, Efficiency, Reliability, Integrity, Adaptability, Accuracy, Robustness
Internal Quality: Maintainability, Flexibility, Portability, Re-usability, Readability, Testability, Understandability อकੑʢ.BJOUBJOBCJMJUZʣ
อकੑ Maintainability
#PFIN #SPXO BOE-JQPXT2VBMJUZ$IBSBDUFSJTUJDT IUUQTXXXUIPNBTBMTQBVHIPSHQVCGOEJMJUZIUNM
#PFIN #SPXO BOE-JQPXT2VBMJUZ$IBSBDUFSJTUJDT IUUQTXXXUIPNBTBMTQBVHIPSHQVCGOEJMJUZIUNM
#PFIN #SPXO BOE-JQPXT2VBMJUZ$IBSBDUFSJTUJDT IUUQTXXXUIPNBTBMTQBVHIPSHQVCGOEJMJUZIUNM
.BJOUBJOBCJMJUZʢอकੑʣΛߏ͢Δͷ w5FTUBCJMJUZςετ༰қੑ w6OEFSTUBOEBCJMJUZཧղ༰қੑ w.PEJpBCJMJUZมߋ༰қੑ
w ࣮ߦԁੑʢ0QFSBCJMJUZʣ w ࣗಈ࣮ߦ͕༰қͰ͔ͭߴ w ؍ଌ༰қੑʢ0CTFSWBCJMJUZʣ w ςετ݁ՌͷऔಘɾظൺֱΛࣗಈԽ͍͢͠ w ੍ޚ༰қੑʢ$POUSPMMBCJMJUZʣ
w ࣄલঢ়ଶΛ੍ޚ͠ɺςετରΛࣗಈૢ࡞͍͢͠ w ղՄೳੑʢ%FDPNQPTBCJMJUZʣ w ςετରͷΓग़͠ɺςετڥͷ෦ஔ͕༰қ IUUQTTQFBLFSEFDLDPNHPZPLJUFTUBCJMJUZJOFNCFEEFETPGUXBSF ࣗಈςετʹ͓͚ΔςελϏϦςΟ
ాਓ !U@XBEB ෦࣭ͱεϐʔυ ʙιϑτΣΞ։ൃͷయܕతͳޡղΛղ͘ʙ
ాਓ !U@XBEB อकੑͱεϐʔυ ʙιϑτΣΞ։ൃͷయܕతͳޡղΛղ͘ʙ
อकੑΛ ٘ਜ਼ʹ๋͛Δͱ Ͳ͏ͳΔ͔
ʮ͋ͱͰΫϦʔϯʹ͢Ε͍͍Αɻઌʹࢢʹग़͞ͳ͚Εʂʯ ։ൃऀͦ͏͍ͬͯͭ͝·͔͢ɻ͕ͩɺ͋ͱͰΫϦʔϯʹ͢Δ͜ͱͳ ͍ɻࢢ͔ΒͷϓϨογϟʔࢭ·Βͳ͍͔Βͩɻʮઌʹࢢʹग़͞ͳ͚ Εʯͱ͍͏͜ͱɺޙΖʹڝ߹ଞ͕ࣾେ͍Δͱ͍͏͜ͱͰ͋Δɻڝ߹ ଞࣾʹ͍ൈ͔Εͳ͍ͨΊʹɺ͜Ε͔ΒΓଓ͚Δ͔͠ͳ͍ɻ ͦͷ݁Ռɺ։ൃऀϞʔυΛΓସ͑Δ͜ͱ͕Ͱ͖ͳ͍ɻ࣍ͷػೳɺ·ͨ ࣍ͷػೳɺ·ͨ·ͨ࣍ͷػೳΛՃ͢Δ͜ͱʹͳΓɺίʔυΛΫϦʔϯʹ ͢Δ͜ͱ·Ͱख͕ճΒͳ͍ɻ ͦͯ͠ɺ่յ͕࢝·Δɻੜ࢈ੑ͕θϩʹ͍͍ۙͮͯ͘ɻ ʰ$MFBO"SDIJUFDUVSFʱQ
IUUQTUXJUUFSDPNOFLPZBTUBUVT
IUUQTNBSUJOGPXMFSDPNBSUJDMFTJTRVBMJUZXPSUIDPTUIUNM อकੑͷ͕ͨ͞Β͢ͷ ͻͱͭͻͱͭͷมߋʹ ༨ܭͳ͕͔͔࣌ؒΔ
อकੑΛ٘ਜ਼ʹ͢ΕεϐʔυಘΒΕΔʁ wظతʹಘΒΕΔ wதظతʹٯޮՌʹͳΔ wظతʹக໋ইʹͳΔ
Ͱ εϐʔυΛམͱͤ อकੑ্͕Δʁ
IUUQTUXJUUFSDPNWPMVOUBTTUBUVT
IUUQTPTBIBUFOBCMPHDPNFOUSZ ٕज़ྗͷ͋Δਓ͋Δఔٸ͍Ͱ࡞ͬͨͱͯ͠Ұఆ Ҏ্ͷ࣭ͷίʔυΛॻ͘͠ɺҙਤతʹ࣭Λམͱ͠ ͨͱͯ͋͠·Γ্͕Βͳ͍ɻ ٯʹɺٕज़ྗ͕ߴ͘ͳ͍ਓ͕࣌ؒΛ͔͚ͯ࡞ͬͨͱ͠ ͯͦͷਓͷٕज़ྗҎ্ͷ࣭ͷίʔυॻ͚ͳ͍ɻ
ܦӦతͳཁٻʹ߹Θͤͯɺ༩͑ΒΕͨ։ൃظ͔ؒΒॊೈʹԚ͞ͱ͞Λબ͢Δͱ͍͏Α͏ ͳث༻ͳܳ΄ͱΜͲෆՄೳͩͱ͍͑·͢ɻ͜ΕɺۃΊͯجૅతͳͱ͜ΖͰ͋Εଟগ Ͱ͖Δ͔͠Ε·ͤΜ͕ɺ࣮ࡍʹɺιʔείʔυ͕Ԛ͍ͯ͘ਓ͍Εɺ៉ྷͰ͍ ਓଟ͍͘·͢ɻ ʰΤϯδχΞϦϯά৫ͷটʱQ ΫΠοΫμʔςΟͷਆ
ͭ·Γ τϨʔυΦϑͰͳ͍
IUUQTUXJUUFSDPNLBU[DIBOHTUBUVT
࣭ อकੑ εϐʔυ τϨʔυΦϑͱߟ͑Δͷయܕతͳޡղ നؙ͖ҹෛͷଓࠜݩ͕૿͑ΕઌݮΔɻࠜݩ͕ݮΕઌ૿͑Δ
࣭Λ٘ਜ਼ʹ͢ΔͷɺޮՌతͳίϯτϩʔϧํ๏Ͱͳ͍ɻ࣭ ੍ޚมͰͳ͍ɻ ࣭Λड͚ೖΕΔ͜ͱͰɺϓϩδΣΫτ͕͘ͳΔ͜ͱͳ͍ɻ ߴ࣭Λཁٻ͢Δ͜ͱͰɺϓϩδΣΫτ͕͘ͳΔ͜ͱͳ͍ɻ Ή͠Ζ࣭ΛߴΊΔ͜ͱͰɺσϦόϦʔ͕ߴʹͳΔ͜ͱ͕ଟ͍ɻ ࣭ج४ΛԼ͛ͯ͠·͏ͱɺσϦόϦʔ͕͘ͳΓɺ ༧ଌͰ͖ͳ͘ͳͬͯ͠·͏ɻ ʰΤΫετϦʔϜϓϩάϥϛϯάʱQ
ઌ΄Ͳͷ։ൃऀͷ͝·͔͠ɺ่յͨ͠ίʔυΛॻ͚ظతʹ͘ͳ Δͷͷɺظతʹ্͕͕Δͱ͍͏ߟ͑ํʹͱ͍͍ͮͯΔɻ ͜ͷ͜ͱΛ৴͍ͯ͡Δ։ൃऀɺ่յͨ͠ίʔυΛॻ͘Ϟʔυ͔Βɺ ͍ͣΕͲ͔͜ͰΫϦʔϯʹ͢ΔϞʔυʹΓସΘΕΔɺͱ͍͏ ʢαΪͱΧϝͷʣαΪͷΑ͏ͳࣗ৴Λ͍࣋ͬͯΔɻ ͕ͩɺͦΕࣄ࣮ޡೝͰ͋Δɻ ࣄ࣮ɺظతʹظతʹɺ่յͨ͠ίʔυΛॻ͘΄͏͕ ΫϦʔϯͳίʔυΛॻ͘ΑΓৗʹ͍ɻ ʰ$MFBO"SDIJUFDUVSFʱQQ
ظతʹظతʹɺ ่յͨ͠ίʔυΛॻ͘΄͏͕ ΫϦʔϯͳίʔυΛॻ͘ΑΓ ৗʹ͍ɻ #PC.BSUJO ʰ$MFBO"SDIJUFDUVSFʱQ
࠷ߴͷ։ൃऀ͕͍ͪΜ͖Ε͍͖ͳ։ൃऀͰ͋Δ͜ͱʹؾͮ ͍ͨͱ͖ɺࢲͼͬ͘Γͨ͠ɻ͍ϓϩάϥϚʔࡶͳϓϩά ϥϚʔͩͱࢥ͍͔ͬͯͨΒͩɻ ͕ͩɺ࣮ࡍਖ਼ରͩͬͨɻࢲ͕ձͬͨதͰ࠷ͷϓϩάϥ ϚʔɺίʔυΛѻ͍͍͢Α͏ʹอͭ͜ͱʹಛʹҙΛͬ ͍ͯͨɻ ʰϨΨγʔίʔυ͔Βͷ٫ʱQ
ίʔυΛॻ͘͞ͱίʔυͷ͖Ε͍͞ʹؔ࿈͕͋Δͱೝࣝͨ͠ ͋ͱͰɺࢲͦͷͭͷ͍͋ͩͷҼՌؔΛݟ͚ͭΔͷʹ࣌ ؒΛཁͨ͠ɻ ίʔυͷ࣭Λߴ͘อ͍ͬͯͨʮʹؔΘΒͣʯ͍ͷͰͳ ͍ɻίʔυͷ࣭Λߴ͘อ͍ͬͯͨʮ͔Βͦ͜ʯ͍ͷͩɻ ͜ͷ͜ͱΛཧղͨ͠ΒɺιϑτΣΞ։ൃʹର͢Δ ݟํ͕มΘͬͨɻ ʰϨΨγʔίʔυ͔Βͷ٫ʱQQ
ίʔυͷ࣭Λߴ͘อ͍ͬͯͨ ʮʹؔΘΒͣʯ͍ͷͰͳ ͍ɻίʔυͷ࣭Λߴ͘อͬͯ ͍ͨʮ͔Βͦ͜ʯ͍ͷͩɻ %BWJE4DPUU#FSOTUFJO ʰϨΨγʔίʔυ͔Βͷ٫ʱ QQ
࣭ อकੑ εϐʔυ ίʔυͷ࣭Λ٘ਜ਼ʹ͔ͨ͠Β͍ͷͰͳ͘ നؙ͖ҹෛͷଓࠜݩ͕૿͑ΕઌݮΔɻࠜݩ͕ݮΕઌ૿͑Δ
࣭ อकੑ εϐʔυ ίʔυͷ࣭Λߴ͘อ͍ͬͯͨʮ͔Βͦ͜ʯ͍ ҹਖ਼ͷଓࠜݩ͕૿͑Εઌ૿͑Δɻࠜݩ͕ݮΕઌݮΔ
Ͱ εϐʔυ͔Β࣭ͷ ӨڹͲ͏͔
࣭ อकੑ εϐʔυ Ͱεϐʔυ͔Β࣭ อकੑ ͷӨڹͲ͏͔
࣭ѱ͍ͱجຊతʹखΓΛੜΉͷͰʹͶฦΔɻखͬͯ Δֶ࣌ؒͼΛ͏·ͳ͍࣌ؒɻ࣭ΛԼ͛Δͱ͍͏அֶͼͷ ԼΛڐ༰͢Δͱ͜ͱɻ ैདྷͷమ൘ ͩͱޡղ͞Ε͍ͯͨ ࣭ͩͬͨͯͯ͋͛͢Α͏ ࣭ྼԽ͢ΕखΓ͕ൃੜ͢Δ͚ͩͰɺ݁ہϦʔυλΠϜͷ ૿ՃʹͶฦΔͷͰΊ·͠ΐ͏ɻ ࣭ྼԽ͢ΕϦʔυλΠϜͷ૿ՃʹͶฦΔ IUUQJLFZIBUFCMPKQFOUSZ
ϦʔυλΠϜ͕૿Ճ͢ΔͱԾઆݕূϓϩηε͕ճΒͳ͍ IUUQJLFZIBUFCMPKQFOUSZ
ຊͷؔ
ຊͷؔɹ w෦࣭͕εϐʔυΛੜΈ wεϐʔυֶ͕ͼͷϧʔϓΛੜΈ wֶͼͷϧʔϓ͕֎෦࣭ΛੜΈ w֎෦࣭͕ڝ૪ྗΛੜΈ wڝ૪ྗ͕ച্ΛੜΈ wച্͕෦࣭ΛҭΉ ˞ྑ͍ͷΛ࡞ΕചΕΔͱ ͍͏Θ͚Ͱͳ͍ͷͰɺ͜͜ ͦ͏؆୯Ͱ୯७Ͱͳ͍
࣭ εϐʔυ ຊͷؔɹ ҹਖ਼ͷଓࠜݩ͕૿͑Εઌ૿͑Δɻࠜݩ͕ݮΕઌݮΔ
ʮ࣭WTεϐʔυʯͱ͍͏֓೦ࠜຊతʹؒҧ͍ͬͯΔͱࢥ͏ɻ ͩͬͯૉૣ͘։ൃΛ͠ͳͯ͘ڥɺ͋Δ͍ࣗͷڥͷཧղͷม ԽʹιϑτΣΞ͕͍ͭͯ͜ΕͣɺιϑτΣΞ͕ղܾ͖͕͢ ղܾͰ͖ͳ͘ͳΓɺඞવతʹ࣭͕མͪͯ͠·͏ɻ ٯʹɺ࣭ͷߴ͍ιϑτΣΞΛॻ͔ͳͯ͘ɺͳʹ͔͋ΔʹΠϯϑ ϥ่͕յ͠ɺૉૣ͘։ൃΛ͢Δ͜ͱ͕Ͱ͖ͳ͘ͳͬͯ͠·͏ɻΠϯϑ ϥͷ่յɺΔؾΛ͙ͷͰಛʹ͕ͨͪѱ͍ɻ IUUQTLOPIKQBOTXFSTEDB Evan Priestley
࣭WTεϐʔυͱ͍͏ೋഎͷؔɺ ہॴతͳͷͰ͔͠ͳ͍ɻ େҬతʹɺยํΛ٘ਜ਼ʹͨ͠߹ɺ Β͵͏ͪʹ͏Ұͭ٘ਜ਼ʹ͍ͯ͠Δͱ ͍͏͜ͱΛ͓Εͳ͘ɻ IUUQTLOPIKQBOTXFSTEDB Evan Priestley
ݱʹ͓͚Δ࣭ͱεϐʔυͭͷΩʔϝτϦΫε wϦʔυλΠϜ wσϓϩΠස w.553 ฏۉम෮࣌ؒ wมߋࣦഊ IUUQTXXXBNB[PODPKQEQ
ϦʔυλΠϜͱσϓϩΠසԾઆݕূϓϩηεΛਝʹճ͢ IUUQJLFZIBUFCMPKQFOUSZ
IUUQJLFZIBUFCMPKQFOUSZ ϦʔυλΠϜͱσϓϩΠසϑϩʔޮͱϦιʔεޮ Ϧιʔεޮ ϑϩʔޮ
MTTR .553.FBOUJNFUP3FDPWFSZ3FQBJS IUUQTXXXTMJEFTIBSFOFUEFDPEFEPTSFTJUFSFMJBCJMJUZFOHJOFFSJOHJOB[VSFPOB[VSF Ұ෦վม
.5#'ΛࣺͯΔͷͰͳ࣭͘ΛϓϩηεͰ࡞ΓࠐΉ IUUQTXXXSZV[FFDPNDPOUFOUTCMPH
IUUQTDMPVEHPPHMFDPNEFWPQTTUBUFPGEFWPQT
ΤϦʔτ ϋΠύϑΥʔϚʔ ϛσΟΞϜ ύϑΥʔϚʔ ϩʔύϑΥʔϚʔ ϦʔυλΠϜ ະຬ ͔Βिؒ ि͔ؒΒϱ݄ ϱ݄͔Βϱ݄
σϓϩΠස ΦϯσϚϯυ ෳճ ճ͔Βिճ िճ͔Β݄ճ ϱ݄͔Βϱ݄ .553 ࣌ؒະຬ ະຬ ະຬ ि͔ؒΒϱ݄ มߋࣦഊ ͭͷΩʔϝτϦΫεͷௐࠪʢສ݅Ҏ্ͷճΛΫϥελʔੳʣ w։ൃͱ࣭τϨʔυΦϑͷؔͰͳ͍ w৫ؒͷ͔ࠩͳΓେ͖͘ɺ͞Βʹ։͍͍ͯΔʢʣ wѹతͳࠩܧଓతσϦόϦ%FW0QTͷ৫తͳࢿͷࠩ IUUQTXXXTMJEFTIBSFOFU%FW0QT8FCJOBSTBDDFMFSBUFTUBUFPGEFWPQTTVSWFZSFTVMUTBSFJO
ΤϦʔτ ΤϦʔτͱϩʔύϑΥʔϚʔͷࠩ ϩʔύϑΥʔϚʔ ϦʔυλΠϜ ະຬ ഒ ϱ݄͔Βϱ݄ σϓϩΠස ΦϯσϚϯυ ෳճ
ഒ ϱ݄͔Βϱ݄ .553 ࣌ؒະຬ ि͔ؒΒϱ݄ มߋࣦഊ ͭͷΩʔϝτϦΫεΤϦʔτΫϥελͱϩʔύϑΥʔϚʔΫϥελͷࠩ w։ൃͱ࣭τϨʔυΦϑͷؔͰͳ͍ w৫ؒͷ͔ࠩͳΓେ͖͘ɺ͞Βʹ։͍͍ͯΔʢʣ wѹతͳࠩܧଓతσϦόϦ%FW0QTͷ৫తͳࢿͷࠩ IUUQTXXXTMJEFTIBSFOFU%FW0QT8FCJOBSTBDDFMFSBUFTUBUFPGEFWPQTTVSWFZSFTVMUTBSFJO
อकੑΛ٘ਜ਼ʹ͢ΕεϐʔυಘΒΕΔʁ wظతʹಘΒΕΔ wதظతʹٯޮՌʹͳΔ wظతʹக໋ইʹͳΔ
ʮظతதظతʯͷڥʁ ͜͜Ͱ͍͏ʮ࣭ʯͱʁ
ςετࣗಈԽͷଛӹذʮճʯ IUUQTXXXBNB[PODPKQEQ ͓ΑͦճͰ खಈςετͱࣗಈԽ͞Εͨςετͷ ίετ͕ٯస͢Δ
IUUQTXXXBNB[PODPKQEQ "1IJMPTPQIZPG4PGUXBSF%FTJHO good design eventually pays for itself, and sooner
than you might think.
͜ΓͷδϨϯϚ illustrated by @mty_mno IUUQUFTUFSDIBOIBUFOBEJBSZDPNFOUSZ
෦࣭ͷࢿͷଛӹذ ޙͱ͔Ͱͳ͘ ϲ݄ҎʹݱΕΔ IUUQTNBSUJOGPXMFSDPNBSUJDMFTJTRVBMJUZXPSUIDPTUIUNM ෦࣭ͷࢿͷଛӹذϲ݄ҎʹݱΕΔ
wظతʹಘΒΕΔ wϲ݄ޙʹٯޮՌʹͳΔ wظతʹக໋ইʹͳΔ อकੑΛ٘ਜ਼ʹ͢ΕεϐʔυಘΒΕΔʁ ϲ݄ҎͰ͋Εɺ෦࣭ͷࢿͷडӹऀࣗͨͪࣗ Ͱ͋Γɺͭ·ΓಓಙᛗዟͷͰͳ͘ଛಘͷͰ͋Δ
ϦϑΝΫλϦϯά༻ͷϦιʔεΛ७૿ͨ͠༁Ͱͳ͍ɻTQSJOU ͷΛࢿ͢ΔͱܾΊͨɻ࠷ॳϕϩγςΟ͕མ͕ͪͨɺ ϲ݄ܦͬͨޙ໌֬ʹσϦόϦʔ͕ߴ·ͬͨɻʢྫΛڍ ͛Δͱɺϲ݄͔͔ΔͱݴΘΕ͍ͯͨنͷ։ൃ͕ͰऴΘΔΑ ͏ʹͳͬͨʣ ͨ·ͨ·ࢀՃͨ͠ΠϕϯτͰU@XBEB͞Μͷ ʮ࣭ͱεϐʔυʯʹؔ͢ΔߨԋΛฉ͖ɺ ͱͱΜͰ͍ͨϙΠϯτͩͬͨͷͰ ਧͬΔ͜ͱ͕Ͱ͖ͨɻ ΩϟσΟגࣜձ༷ࣾͷࣄྫ
IUUQTDBEEJUFDIBSDIJWFT
ߥͿΔ࢛ఱԦείʔϓΛΕ ༩͑ΒΕͨ࣌ؒʹରͯ͠Δ͖͜ͱ͕ଟ͗͢Δ߹ɺͲ͏͖͔͢ B είʔϓΛΔ C ͬͱਓΛ૿͢ D ϦϦʔεΛԆظ͢Δ E
࣭Λ٘ਜ਼ʹ͢Δ ʰΞδϟΠϧαϜϥΠʱQ
͔͜͜ΒԆઓ
Ͱεϐʔυ͓Αͼ࣭ ԿͱτϨʔυΦϑͳͷ͔
IUUQTCIBUFOBOFKQFOUSZTTQFBLFSEFDLDPNUXBEBRVBMJUZBOETQFFE Ͱεϐʔυͱ࣭ԿͱτϨʔυΦϑͳͷ͔࣍ੈͷڭҭɺ৽ٕज़ͷௐࠪɺଟ༷ੑͷ֬อ
IUUQTPTBIBUFOBCMPHDPNFOUSZ Ͱɺ࣭ͱʹ͍ͭͯͷτϨʔυΦϑ͕ҙࣝ͞ΕΔ ͱ͖ɺ࣮ࡍʹԿͱԿ͕ṝʹ͔͚ΒΕ͍ͯΔͷ͔ɻ ͦΕ֤ݸਓͰͳ͘ϓϩμΫτશମͷ࣭ͱ͕ṝ ʹ͔͚ΒΕ͍ͯΔͷͰͳ͍͔ɻݴ͍͑Εɺϓϩμ Ϋτͷ࣭Λࢧ͑ΔͨΊʹඞཁͳϝϯόʔͷͱͦͷ ͷͨΊʹඞཁͳϑΟʔυόοΫֶशͷ͕࣌ؒṝʹ ͔͚ΒΕ͍ͯΔͷͰͳ͍͔ͱࢥ͏ɻ
ຊͷྗΛ͚ͭΔʹ ͕͔͔࣌ؒΔ
ιϑτΣΞͷ։ൃʹ࠷ॳ͔Β࠷ޙ·ͰؔΘΔͱ͍͏ܦݧͱͯوॏ ͩͬͨΜ͡Όͳ͍ͩΖ͏͔ɻͳͥͳΒɺϓϩδΣΫτ։࢝࣌ͷμϝͳσβ Πϯͷͬ͠ฦ͠ΛɺޙͰࣗͰϞϩʹड͚Δ͔Βͩɻ ॳ΅͘ɺ΄ͱΜͲߟ͑ͣίʔυΛʮΞϯμʔΤϯδχΞϦϯάʯ͍ͯ͠ ͨɻޙʑ͜ΕΛաʹमਖ਼ͯ͠͠·͍ɺશͯΛʮΦʔόʔΤϯδχΞϦϯ άʯ͠࡞ΓࠐΈ͗ͯ͢͠·ͬͨɻ̎ͱ͍͏࣌ؒ͜͏͍ࣦͬͨഊΛܦ ݧ͢Δʹेͳ࣌ؒͰɺࣙΊΔ͜ΖʹγεςϜͷσβΠϯͷԘക͕ɺ ͔ͳΓΘ͔ΔΑ͏ʹͳ͍ͬͯͨͱࢥ͏ɻ IUUQTLOPIKQBOTXFSTEDB Evan
Priestley
Ұ൪ॏཁͰҰ൪͔͍ͬͳεΩϧγεςϜΛઃܭ͢ΔͨΊͷஅྗͩɻ ݶΓͳ͘γϯϓϧͳσβΠϯͱ͍͏ͷͳ͔ͳ͔ڭ͑ΒΕΔͷͰͳ ͘ɺେํܦݧΛॏͶ֮ͯ͑Δͷͩɻ ͜ͷʮஅྗʯɺϓϩάϥϚʔʹͱͬͯඇৗʹॏཁͳͷ͕ͩɺͦ͏؆୯ ʹڭ͑ΒΕΔͷͰͳ͍ɻ΅͕͘ΔݶΓɺஅྗΛ͚ͭΔ Ұ൪ͷํ๏ɺࣗͰઃܭͨ͠γεςϜΛ͍ؒϝϯς͢Δ ͜ͱͩͱࢥ͏ IUUQTLOPIKQBOTXFSTEDB Evan Priestley
࣭ͱίετ τϨʔυΦϑ͔
1IJMJQ$SPTCZ2VBMJUZJT'SFF࣭ΞοϓίετΞοϓ͔μϯ͔ ίετΞοϓઆ ίετμϯઆ
IUUQTTQFBLFSEFDLDPNTIJNBTIJNBTUBSURVBMJUZSFBMGSFFDBNQBJHO 2VBMJUZJT'SFF㲈࣭࣮࣭ແྉ
Ͳͷ͘Β͍ ઃܭʹࢿ͢Δ͔
ΞʔΩςΫςΟϯά͍ͭɺͲΕ͚ͩʁ ,4-0$ສߦͷϓϩδΣΫτͷ ઌߦઃܭͷεΠʔτεϙοτ IUUQTXXXPSFJMMZDPKQCPPLT
ιϑτΣΞͷن͕εΠʔτεϙοτʹ༩͑ΔӨڹ IUUQTXXXPSFJMMZDPKQCPPLT
ιϑτΣΞͷن͕εΠʔτεϙοτʹ༩͑ΔӨڹ w ιϑτΣΞγεςϜ͕େ͖͘ͳΕͳΔ΄Ͳɺલ͍ͷΞʔΩς Ϋνϟઃܭ͔Βड͚ΔԸܙେ͖͘ͳΔ w খنʢສߦʣͷιϑτΣΞγεςϜͰɺલ͍ͷΞʔΩς Ϋνϟࡦఆ͔Β΄ͱΜͲԸܙΛड͚ΒΕͳ͍ w ΞʔΩςΫνϟઃܭʹগ͔͠͠ࢿ͠ͳ͍ͱɺڧͳͬ͠ฦ͕͠ དྷΔ͜ͱ͕༧͞ΕΔ
w ΞʔΩςΫνϟʹࢿ͢Ε͢Δ΄Ͳɺඞཁͳख͠গͳ͘ͳΔ IUUQTXXXPSFJMMZDPKQCPPLT
ཁٻͷมಈܽؕίετ͕εΠʔτεϙοτʹ༩͑ΔӨڹ ཁٻͷมಈ͕େ͖͍߹ ɺٸͳมԽʹରԠ͢Δ ͨΊͷੳจॻԽͷख ΓͷͨΊɺઌߦઃܭͷޮՌ Լ͕Δ ߴ͍৴པੑΛٻΊΒΕܽؕ ίετ͕ߴ͍߹ɺΞʔ ΩςΫςΟϯάͷඞཁੑ͕ ߴ·Δ
IUUQTXXXPSFJMMZDPKQCPPLT
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ w ʮ࣭ͱεϐʔυτϨʔυΦϑͷؔʹ͋Δʯେ͖ͳޡղ w ʮ࣭ʯͷ໊ͷͱʹ٘ਜ਼ʹ͞ΕΔͷ෦࣭ͷಛʹอकੑ ʢςετ༰қੑɺཧղ༰қੑɺมߋ༰қੑʣ w ࣮ࡍʹอकੑΛߴΊΕεϐʔυ্͕Δ͠ɺอकੑΛམͱͤ εϐʔυԼ͕Δ w
εϐʔυΛམͱͯ͠อकੑ্͕Βͳ͍͠ɺεϐʔυΛམͱ͢ͱԾઆݕ ূϓϩηε͕ճΒͳ͍ w ෦࣭ͷࢿͷଛӹذҙ֎ͱૣ͘ ϲ݄Ҏ ͬͯ͘Δ w ϲ݄Ҏͱ͍͏͜ͱडӹऀࣗͨͪࣗͰ͋Γɺͭ·Γಓಙᛗዟ ͷͰͳ͘ଛಘͷͰ͋Δ w εϐʔυ͓Αͼ࣭ͱτϨʔυΦϑͳͷڭҭɺɺଟ༷ੑͷࢿ