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
320
開発生産性は上がらない - N Ways to Reduce Development Productivity
2023/10/19
uzulla
uzulla
October 19, 2023
Tweet
Share
More Decks by uzulla
See All by uzulla
バイブスあるコーディングで ~PHP~ 便利ツールをつくるプラクティス
uzulla
1
360
PHPer's Guide to Daemon Crafting Taming and Summoning
uzulla
2
1.7k
似たもの同士のPerlとPHP
uzulla
1
250
More Context, Better Code. 既存コードやOAS等をコンテキストとしてLLMに与える事で、よりよいコード生成を行う話
uzulla
1
180
あなたのアプリ、ログはでてますか?あるいはログをだしてますか? (Funabashi.dev用 軽量版)
uzulla
3
270
セッションのトークセッション / Traps for PHP session features in growing web apps
uzulla
2
180
Crafting a Own PHP - ウキウキ手作りミニマリストPHP
uzulla
5
2.6k
例外を投げるのをやめてみないか? あるいは受け入れてみないか? - How to use exceptions other than throwing
uzulla
6
1.2k
PHPerが ISUCONでやるべき事
uzulla
1
1.4k
Other Decks in Technology
See All in Technology
自作LLM Native GORM Pluginで実現する AI Agentバックテスト基盤構築
po3rin
2
250
神回のメカニズムと再現方法/Mechanisms and Playbook for Kamikai scrumat2025
moriyuya
4
520
SoccerNet GSRの紹介と技術応用:選手視点映像を提供するサッカー作戦盤ツール
mixi_engineers
PRO
1
170
バイブコーディングと継続的デプロイメント
nwiizo
2
410
AWSにおけるTrend Vision Oneの効果について
shimak
0
120
Access-what? why and how, A11Y for All - Nordic.js 2025
gdomiciano
1
110
組織観点からIAM Identity CenterとIAMの設計を考える
nrinetcom
PRO
1
170
Modern_Data_Stack最新動向クイズ_買収_AI_激動の2025年_.pdf
sagara
0
200
Azure SynapseからAzure Databricksへ 移行してわかった新時代のコスト問題!?
databricksjapan
0
140
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
130
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
3
270
How to achieve interoperable digital identity across Asian countries
fujie
0
110
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
The Language of Interfaces
destraynor
162
25k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Designing for humans not robots
tammielis
254
25k
Facilitating Awesome Meetings
lara
56
6.6k
Visualization
eitanlees
148
16k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
How to Think Like a Performance Engineer
csswizardry
27
2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
Statistics for Hackers
jakevdp
799
220k
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ΛΉ — ͭ·Γɺ͜Εʮͨ͜෦ʯͷ࠶དྷͳͷ͕ͩɺ Ҋ֎ͦ͏ߟ͑ΒΕ͍ͯͳ͍ͷ͕ා͍ — ݹདྷɺ͜͏͍͏ͷࡶஊ(Ͱͷδϟϒ)ͰΧόʔ͞Ε͖͕ͯͨɺ ϦϞʔτ࣌ࡶஊ͕ݮͬͨ
·ͱΊ — όϦϡʔΛग़͢ʹϦϦʔε͕ඞཁ — ϦϦʔεʹͪΌΜͱͨ͠ՌɾίʔυΛॻ͘͜ͱ͕ඞཁ — దʹ֬อ͞Εͨ࣌ؒใϒϩοΧʔͷഉআ͕ඞཁ — ʮࠓͷʯࣗಉ྅͕ແཧͳ͘ग़ͤΔੜ࢈ੑΛΔ —
ॻ੶ʮαϘλʔδϡɾϚχϡΞϧʯͷٯΛͤΑ(ʁʁ) — ͕ࣗ৸͍ͯͯੜ࢈͞ΕΔ͕࣌ͨΕΔ