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
開発生産性は上がらない - N Ways to Reduce Development Prod...
Search
uzulla
October 19, 2023
Technology
370
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
開発生産性は上がらない - N Ways to Reduce Development Productivity
2023/10/19
uzulla
uzulla
October 19, 2023
More Decks by uzulla
See All by uzulla
ALL CODE BASE ARE BELONG TO STUDY
uzulla
30
7.8k
バイブスあるコーディングで ~PHP~ 便利ツールをつくるプラクティス
uzulla
1
580
PHPer's Guide to Daemon Crafting Taming and Summoning
uzulla
2
2.3k
似たもの同士のPerlとPHP
uzulla
1
310
More Context, Better Code. 既存コードやOAS等をコンテキストとしてLLMに与える事で、よりよいコード生成を行う話
uzulla
1
230
あなたのアプリ、ログはでてますか?あるいはログをだしてますか? (Funabashi.dev用 軽量版)
uzulla
3
330
セッションのトークセッション / Traps for PHP session features in growing web apps
uzulla
2
240
Crafting a Own PHP - ウキウキ手作りミニマリストPHP
uzulla
5
3.3k
例外を投げるのをやめてみないか? あるいは受け入れてみないか? - How to use exceptions other than throwing
uzulla
6
1.5k
Other Decks in Technology
See All in Technology
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
240
最近評価が難しくなった
maroon8021
0
230
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
0
1.7k
グローバルチームと挑むプロダクト開発
sansantech
PRO
1
150
AI Driven AI Governance
pict3
0
100
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
0
140
『AIに負けない』より『AIと遊ぶ』」〜ワクワクが最強のテスト・QA学習戦略_公開用
odan611
1
390
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
380
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
0
190
依頼文化をやめる日 EM視点で語るPlatform EngineeringとInclusive SRE / Discussing Platform Engineering and Inclusive SRE from an EM's Perspective
shin1988
3
2.2k
実装だけじゃない! CCA-F取得エンジニアが教えるClaude Code開発プロセス活用術
diggymo
1
110
SRE Lounge Hiroshimaへの招待
grimoh
0
230
Featured
See All Featured
Faster Mobile Websites
deanohume
310
32k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
We Are The Robots
honzajavorek
0
270
Utilizing Notion as your number one productivity tool
mfonobong
4
340
The Curious Case for Waylosing
cassininazir
1
420
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
210
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
410
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
250
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
ラッコキーワード サービス紹介資料
rakko
1
3.8M
Transcript
։ൃੜ࢈ੑ্͕Βͳ͍ — uzulla(͏ͣΒ) — Linkage(ۀ ҕୗ) — LinkageͰϊϕϧςΟ࡞ͳͲΛ୲͍ͯ͠ ·͢
— ϊϕϧςΟ࡞ͷ͓ࣄ͓͍ͪͯ͠·͢ — ͳΜͱʂPHPͱ͔ΣϒΤϯδχΞͷ͓ࣄ Ͱ͖·͢ʂ — ͞ΒʹʂPHPҎ֎ݴΘΕΕ࣮Ͱ͖· ͢ʂ
ॴḨLTͳͷͰ — օ͞Μਅʹड͚ͳ͍Ͱ͍ͩ͘͞ — ࢲԿेΨΠνϡʔɾΪϣʔλΫ(ͭ·ΓϑϦʔϥϯε)ͳͷͰɺಛఆ࣌ ɺձࣾͷͰ͋Γ·ͤΜ — Ͳ͜ͷ͜ͱ͔Ḩࡧ͢Δͱ͔ΊΑ͏(ਅإ) — ࢲʮੜ࢈ੑ্͕͕ΔͲ͏ͤͨ͘͞Μ͞Εͦ͏ʯ
ʮੜ࢈ੑ͕Լ͕ͬͨࣄͰͦ͏ʯ — Ͳ͏ͤࢲωλͰ͋Δ
ෆ׳Ε — ݪҼ: Slack͕େنΞϓσ — ݁Ռ: ීஈͷ׳Εɺମ͕ઌʹಈ͘ͷ่͕յ — ͩΜͩΜͱ׳Ε͍ͯ͘ͱͲ͍͕ͬͯ͘ɺ׳ख़͕͕͞Δͱੜ࢈ੑ͕Լ͕Δ —
ҰܾΊͨ͜ͱΛ͜Ζ͜Ζͱม͑Δͱ͓͡͞ΜͭΒ͍ — 1ʙ2ׂͷਓͦΕΛָ͠ΜͰ͍͚Δͷ͕ͩɺָ͍͠ͷ͍͍ͱͯ͠ɺੜ࢈ੑ Լ͕Δ
όʔϯΞτ — ݪҼ: ظؒɺΊͬͪΌࣄͯ͠ΊͬͪΌόϦϡʔͩͨ͠ — ݁Ռ: ؤுΓΛ͑ͨΒɺௐࢠ͕མͪͬͺͳ͠ʹͳͬͨ — ͍ܰ͏ͭͱ͔ͰΑ͋͘Δ͕ɺ ΊͬͪΌؤுΓ͗ͯ͢ٳΉͱɺٳΈ͔Βൈ͚ग़͠ʹ͘͘ͳΔ
— ΊͬͪΌؤுͬͨޙʹɺΊͬͪΌٳΉͱࣾձ෮ؼ͕େม͗͢Δ — Ώͬ͘ΓԼ͛Δɾ͢ ͍͖ͳΓΊͬͪΌٳΜͰΞϝϦΧͱ͔ʹߦ͔ͳ͍
εʔύʔΰʔϧΩʔύʔ — ݪҼ: ༷͕શ෦Ωϟον͞Εɺʮݕ౼͠·͢ʯ࣋ͪؼΓɺ ͔͠͠εέδϡʔϧ͋Δ — ݁Ռ: ແବͳֻ͕૿͑ΔɺϞνϕ্͕͕Βͳ͍ɺෆ҆ʹͳΔ — ͔ͨ͠ͳ͍ࣄ͋ΔͷͰ͔ͨ͠ͳ͍ͷ͕ͩɺ
ͦΕ͕શମڞ༗Ͱ͖ͯͳ͍ͱ͘͢͝ؾ͕Լ͕Δ — ओʹʮෆ҆ʯ(ධՁͩͬͨΓͳΜͩͬͨΓ)͕ͳͷͰɺ ͦΕΛݮΒ͢ํࡦΛΩνϯͱऔΔඞཁ͕͋Δ
୯ํखॱ૿Ճප — ݪҼ: োͱ͔ɺ͓͜ΒΕͱ͔ — ݁Ռ: खॱ͕૿͑Δ͕ɺཧ༝ͳ͘ݮΒͤͳ͍ — ͠Εͬͱ߹ཧతʹݮΒ͢ਓ͕ඞཁ —
༨Γॻ͘ͱ͓͜ΒΕΔ
E2Eૄ௨ෆྑ — ݪҼ: ͋Δूஂͱूஂʹ͓͍ͯަব͠ͳ͕Β͢͢Ίͳ͚ΕͳΒͳ͍ͱ͖ɺ ͯ͢ͷ௨৴͕૭ޱmtgܦ༝ʹͳͬͯRTT͕ܹʹྼԽ — ݁Ռ: ͍͋ͯ͠·͏࣌ؒʹ΄͔ͷ͜ͱΛΔͷͰɺ͞Βʹ͕ग़ͳ͍ — ͱͬͱͱE2EͰ͠߹͑Δ͕Ͱ͖ΔͱҰؾʹਐΉ͜ͱ͕ଟ͍ɺ
͕ɺੈͷத؆୯ʹͦ͏ͳΒͳ͍ — ఔදΛ͏·͘Ҿ͖ͤΔϓϩ(≒૬खΛ٧ΊΒΕΔϓϩ)͕͍Δͱ େվળ͍͢͠ — mtgͳͲͷલʹʮܾΊΔ͚ͩʯ·Ͱ͍࣋ͬͯ͘ॴʹ࿑ྗΛͬͯΈΔ mtgͷਓΛݮΒ͠ɺʮ͑Δ͚ͩʯʹ͍࣋ͬͯ͘ॴʹ࿑ྗΛͬͯΈΔ
ϕετࢦީ܈ — ݪҼ: ͪΌΜͱ͠Α͏ʂͱٕज़બఆ͔Βؤு͕ͬͨɺ Ԇఆ֎ͷ༷มߋͰԆ — ݁Ռ: ͓͔͍͠ɺ࣌ؒͪΌΜͱ͋ͬͨͣͳͷʹ…ഊઓؾͩ… — ϕλʔͰ͍͍͔Βͬ͞͞ͱ։ൃ͠Α͏
— ΠϚΠνͳઃܭʹରͯ͠ਖ਼ύϯν͕དྷͯʮͳΜͰ͜͏ͳͬͯͳ͍ͷʁʯͬ ͯݴΘΕΔ͚ͲɺૉʹࣗͷೳྗͷෆΛೝΊΑ͏ — ͍ͬͯ͏͔ɺͪΌΜͱؤுͬͯߟ͑ͯɺ ΠϚΠνʹͳΔͱ͖ͳΔΜ͡Όʂʂʂ
൚༻ᘳਖ਼ٛਖ਼ओٛ — ݪҼ: ʮPHPμα͍͔Βgoʹ͠Α͏ʯʮ֦ுੑΛߟ͑ͯ࡞Ζ͏ʯ — ݁Ռ: ʮผʹPHPͰΑ͔ͬͨͷͰʁʯʮYAGNIͰΑ͔ͬͨͷͰʁʯ — ਖ਼ྲྀߦΓͰҰൠతʹʮਖ਼͍͠ʯબΛͨͭ͠Γ͕ɺ ࣮ࡍͷʹϑΟοτ͍ͯ͠ͳ͍έʔε
ྨࣅ: ϚΠΫϩαʔϏεީ܈ɺPkeyʹUUIDཞ༻ — …ͱ͍ͬͯࢥߟఀࢭ͢ΔͱɺͬͺΓμϝͳͷͰ͍͠Ͱ͢Ͷ — ʮӡͰʁʯ
ຫੑϝσΟοΫප — ݪҼ: ʮৄ͍͠ਓʯʹͳΓɺϔϧϓɾׂΓࠐΈ͕υϯυϯ૿͑Δ — ݁Ռ: όϦϡʔΛग़͕࣌ؒ͢࿈ଓͯ͠ͱΕͳ͍ — ࣗಈతʹͳΔɺͳΜͰ࣭͞ΕΔ͠ɺԿͰ͕ࣗͬͨํ͕ૣ͍ ʹͳͬͯ͠·͏
— ਓΛ;͢ͱѱԽ͢Δ — ։͖ͬͯɺʮϝσΟοΫʹͳΔɺόϦϡʔԶ͕ग़͞ͳͯ͘ྑ͍ʯͱ·Ͱ ͢Δͷྑ͍
ଟࡨޡީ܈(͋Δ͍໌ຊؾग़͢ީ܈) — ݪҼ: ׂΓࠐΈɺա৴ɺ͍Ζ͍Ζ͋Δ — ݁Ռ: (༧ΑΓ)όϦϡʔΛग़͕࣌ؒͭͣ͘͢ɺ༧ఆΑΓਐḿ͕Ͱͳ͍ — ਓؒɺूத2ʙ3hour͘Β͍͕ݶɺಛʹϚϥιϯݱͳΒ —
2ʙ3hour/dayఔͷूதͰͪΌΜͱ͖͠Εͳ͍ͱόʔϯΞτ͕ͪ͠ — (ͦΕҎ্͕ग़དྷΔਓΛͦΖ͑ΕΑ͍ɺͱ͍͏ൃڊਓ܉ީ܈) — ϖΞɾϞϒ͢Δͷྑ͍͔ (ͳͥͳΒڧ੍ྗ͕ൃش͞ΕΔͷͰɺ͔͠͠ർ࿑ʹҙ) — ͕ࣗʮҰͰ҆ఆతʹՔಇͰ͖Δ࣌ؒɾྔʯΛ୳Γɺ૬ޓʹଚॏ͢Δ
ෆἧ͍खॱɾπʔϧ — ݪҼ: ͍͢͝ਓ͕͍͢͝πʔϧɾखॱΛؾ·͙ΕʹೖΕΔ — ݁Ռ: ͍͢͝πʔϧΛ͑ͳ͍(Θͳ͍)ਓ͕ΛҾͬுΔ — ͪΌΜͱฒΈΛͦΖ͑ͳ͍ͱɺ݁ہ྆ํʹෛ୲͕͘Δɻ ϋΠςΫ(ʁ)ܭըతʹ
— ϝσΟοΫɾฌɾOpsɾڭҭॏཁ — ݪҼ͕όϦϡʔΛग़ͤΔਓͰ͋Δࣄ͕ଟ͘ɺ͍ͭͯߦ͚ͳ͍ਓ͕མ͢Δ — ʮԕྀແ࣭ͯ͘͠ྑ͍ਓʯΛͪΌΜͱઃఆͨ͠ํ͕ྑ͍
DDoS — ݪҼ: Mention͕ଟ͍(ྫ:άϧʔϓMention) — ݁Ռ: શһͷ࣌ؒΛগͮͭ͠ୣ͏ɺແࢹ͕ԣߦ͠͡ΊΔ — ϚδͰGroup mentionΊͨ΄͏͕Α͘ͳ͍͔ʁ
— શһΞϥʔτଚ͍͕ɺ͓ݟ߹͍ɾৡΓ߹͍Ͱर͍ͦ͜ͶΔ͜ͱ͕ଟ͍ — ϝσΟοΫ͕͍Δͱྑ͍ɺͦͯ͠ϝσΟοΫΛଚॏ͢Δ͜ͱ — ϧʔλʔͱͳΔਓΛ૿͢͜ͱͰղܾ͢Δ߹͕͋Δ
ӊ߹ͷऺҰᎋ — ݪҼ: େྔͷਓһΛϑϥοτʹ(ಛʹ࡞ۀऀ)ೖ͢Δ — ݁Ռ: ࢮ͵ — ܉ୂͱ͔ͷຊΛಡΉͱྑ͍ɺ൴Β໋͕͚ͳͷͰษڧʹͳΔ —
൝ɺୂɺখୂɺதୂɺେୂɺ࿈ୂɺཱྀஂɺࢣஂͳͲ͋Δ — ͳΜΒ͔ͷτοϓμϯɾMutex(ྫ:શମmtg)ɾ།Ұਆɾݸਓؒઓ૪͕͋Δ ͱ͞ΒʹѱԽ͢Δ
ଠ͘͘ݽಠࢮ — ݪҼ: Ұਓʹશ෦͞Ε͍ͯΔ — ݁Ռ: ҰਓͰΔͱͷ͍͢͝εϐʔυ͕ੜ·ΕΔ͕ɺ Ϟνϕʔγϣϯ͕Լ͕ͬͨͱ͖ʹࢮ͵ — ͔ͱ͍ͬͯɺਓΛೖΕΔͱͷ͍͢͝εϐʔυΛϒϩοΫ͢Δ߹
— ͍͢͝εϐʔυͰΔ͜ͱʹରͯ͠ΠϯηϯςΟϒ͕ඞཁͩͱࢥ͏ — (ܦඅਫ਼ࢉͱ͔ͷϖʔύʔϫʔΫͱ͔͕͜ΕʹΑͯ͘·Δw) — ͤͬͭ͘ɾ๙ΊΔਓ͕͍Δͱղܾ͢Δ߹͕͋Δ
ॏཁͳ͜ͱ͕mtgͰਓΕܾͣ·Δʔθ — ݪҼ: mtgͰॏཁͳ͜ͱ͕͖·ͬͨޙɺެ͕ࣔͳ͍ɺ͋Δ͍ࡶ — ݁Ռ: ਓ͕ͼͬ͘Γ͢Δɺͦͯ͠mtgͨ͠ଆΒΕͯͳ͍ࣄʹͼͬ͘Γ͢ Δ — ͪΌΜͱͨ͠γΣΞΛ͢ΔɺॏཁΛͪΌΜͱߟ͑ɺ
ΩʔϚϯʹγΣΞ͢ΔmtgΛΉ — ͭ·Γɺ͜Εʮͨ͜෦ʯͷ࠶དྷͳͷ͕ͩɺ Ҋ֎ͦ͏ߟ͑ΒΕ͍ͯͳ͍ͷ͕ා͍ — ݹདྷɺ͜͏͍͏ͷࡶஊ(Ͱͷδϟϒ)ͰΧόʔ͞Ε͖͕ͯͨɺ ϦϞʔτ࣌ࡶஊ͕ݮͬͨ
·ͱΊ — όϦϡʔΛग़͢ʹϦϦʔε͕ඞཁ — ϦϦʔεʹͪΌΜͱͨ͠ՌɾίʔυΛॻ͘͜ͱ͕ඞཁ — దʹ֬อ͞Εͨ࣌ؒใϒϩοΧʔͷഉআ͕ඞཁ — ʮࠓͷʯࣗಉ྅͕ແཧͳ͘ग़ͤΔੜ࢈ੑΛΔ —
ॻ੶ʮαϘλʔδϡɾϚχϡΞϧʯͷٯΛͤΑ(ʁʁ) — ͕ࣗ৸͍ͯͯੜ࢈͞ΕΔ͕࣌ͨΕΔ