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
300
開発生産性は上がらない - 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.5k
似たもの同士のPerlとPHP
uzulla
1
220
More Context, Better Code. 既存コードやOAS等をコンテキストとしてLLMに与える事で、よりよいコード生成を行う話
uzulla
1
160
あなたのアプリ、ログはでてますか?あるいはログをだしてますか? (Funabashi.dev用 軽量版)
uzulla
3
250
セッションのトークセッション / Traps for PHP session features in growing web apps
uzulla
2
170
Crafting a Own PHP - ウキウキ手作りミニマリストPHP
uzulla
5
2.5k
例外を投げるのをやめてみないか? あるいは受け入れてみないか? - How to use exceptions other than throwing
uzulla
5
1.1k
PHPerが ISUCONでやるべき事
uzulla
1
1.3k
test is not a job
uzulla
1
570
Other Decks in Technology
See All in Technology
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
180
本が全く読めなかった過去の自分へ
genshun9
0
720
生成AI時代 文字コードを学ぶ意義を見出せるか?
hrsued
1
740
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
690
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
370
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
130
LangSmith×Webhook連携で実現するプロンプトドリブンCI/CD
sergicalsix
1
160
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
0
580
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
370
AI専用のリンターを作る #yumemi_patch
bengo4com
4
2.2k
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
220
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
How to Ace a Technical Interview
jacobian
277
23k
Six Lessons from altMBA
skipperchong
28
3.9k
Fireside Chat
paigeccino
37
3.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Code Reviewing Like a Champion
maltzj
524
40k
Why Our Code Smells
bkeepers
PRO
337
57k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Rails Girls Zürich Keynote
gr2m
94
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
680
Code Review Best Practice
trishagee
69
18k
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ΛΉ — ͭ·Γɺ͜Εʮͨ͜෦ʯͷ࠶དྷͳͷ͕ͩɺ Ҋ֎ͦ͏ߟ͑ΒΕ͍ͯͳ͍ͷ͕ා͍ — ݹདྷɺ͜͏͍͏ͷࡶஊ(Ͱͷδϟϒ)ͰΧόʔ͞Ε͖͕ͯͨɺ ϦϞʔτ࣌ࡶஊ͕ݮͬͨ
·ͱΊ — όϦϡʔΛग़͢ʹϦϦʔε͕ඞཁ — ϦϦʔεʹͪΌΜͱͨ͠ՌɾίʔυΛॻ͘͜ͱ͕ඞཁ — దʹ֬อ͞Εͨ࣌ؒใϒϩοΧʔͷഉআ͕ඞཁ — ʮࠓͷʯࣗಉ྅͕ແཧͳ͘ग़ͤΔੜ࢈ੑΛΔ —
ॻ੶ʮαϘλʔδϡɾϚχϡΞϧʯͷٯΛͤΑ(ʁʁ) — ͕ࣗ৸͍ͯͯੜ࢈͞ΕΔ͕࣌ͨΕΔ