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
1
290
開発生産性は上がらない - N Ways to Reduce Development Productivity
2023/10/19
uzulla
uzulla
October 19, 2023
Tweet
Share
More Decks by uzulla
See All by uzulla
PHPer's Guide to Daemon Crafting Taming and Summoning
uzulla
2
1.3k
似たもの同士のPerlとPHP
uzulla
1
210
More Context, Better Code. 既存コードやOAS等をコンテキストとしてLLMに与える事で、よりよいコード生成を行う話
uzulla
1
150
あなたのアプリ、ログはでてますか?あるいはログをだしてますか? (Funabashi.dev用 軽量版)
uzulla
3
230
セッションのトークセッション / Traps for PHP session features in growing web apps
uzulla
2
160
Crafting a Own PHP - ウキウキ手作りミニマリストPHP
uzulla
5
2.4k
例外を投げるのをやめてみないか? あるいは受け入れてみないか? - How to use exceptions other than throwing
uzulla
5
1.1k
PHPerが ISUCONでやるべき事
uzulla
1
1.2k
test is not a job
uzulla
1
540
Other Decks in Technology
See All in Technology
Part1 GitHubってなんだろう?その2
tomokusaba
2
750
Global Azure2025(GitHub Copilot ハンズオン)
tomokusaba
2
760
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
1
1.1k
既存の開発資産を活かしながら、 《新規開発コスト抑制》と《開発体験向上》 を両立する拡張アーキテクチャ事例
kubell_hr
0
140
AWSを利用する上で知っておきたい名前解決の話
nagisa53
6
800
LLM アプリケーションのためのクラウドセキュリティ - CSPM の実装ポイント-
osakatechlab
0
400
Serverlessだからこそコードと設計にはこだわろう
kenichirokimura
2
990
LLMの開発と社会実装の今と未来 / AI Builders' Community (ABC) vol.2
pfn
PRO
1
140
genspark_presentation.pdf
haruki_uiru
1
250
MagicPod MCPサーバー開発の裏側とAIエージェント活用の展望
magicpod
0
120
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
27k
大規模サーバーレスプロジェクトのリアルな零れ話
maimyyym
3
220
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Writing Fast Ruby
sferik
628
61k
RailsConf 2023
tenderlove
30
1.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Unsuck your backbone
ammeep
671
58k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
420
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Statistics for Hackers
jakevdp
799
220k
Bash Introduction
62gerente
613
210k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Designing for humans not robots
tammielis
253
25k
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ΛΉ — ͭ·Γɺ͜Εʮͨ͜෦ʯͷ࠶དྷͳͷ͕ͩɺ Ҋ֎ͦ͏ߟ͑ΒΕ͍ͯͳ͍ͷ͕ා͍ — ݹདྷɺ͜͏͍͏ͷࡶஊ(Ͱͷδϟϒ)ͰΧόʔ͞Ε͖͕ͯͨɺ ϦϞʔτ࣌ࡶஊ͕ݮͬͨ
·ͱΊ — όϦϡʔΛग़͢ʹϦϦʔε͕ඞཁ — ϦϦʔεʹͪΌΜͱͨ͠ՌɾίʔυΛॻ͘͜ͱ͕ඞཁ — దʹ֬อ͞Εͨ࣌ؒใϒϩοΧʔͷഉআ͕ඞཁ — ʮࠓͷʯࣗಉ྅͕ແཧͳ͘ग़ͤΔੜ࢈ੑΛΔ —
ॻ੶ʮαϘλʔδϡɾϚχϡΞϧʯͷٯΛͤΑ(ʁʁ) — ͕ࣗ৸͍ͯͯੜ࢈͞ΕΔ͕࣌ͨΕΔ