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
Snow Monkey CM
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takashi Kitajima
September 12, 2021
Programming
110
0
Share
Snow Monkey CM
2021年9月10日に開催された「利用規約とプライバシーポリシーを通じたサイトの構築と基礎 WP ZoomUP #72」のスポンサー CM です。
Takashi Kitajima
September 12, 2021
More Decks by Takashi Kitajima
See All by Takashi Kitajima
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.4k
Snow Monkey&unitone から見た WordPress エディターの変遷
inc2734
0
190
メンテナンス性を考慮した CSS 設計
inc2734
0
390
Snow Monkey とは
inc2734
0
1.3k
WordPress_テーマのつくりかた.pdf
inc2734
4
590
受託開発者だった僕が WordPress の有料テーマ開発者になって学んだこと
inc2734
1
1.1k
Snow Monkey(WordPress) による web コンテンツ制作の新しいカタチ【ビジネスパーソン向け】
inc2734
0
130
Snow Monkey とコミュニティ
inc2734
0
690
Snow Monkey における私の技術的偏愛
inc2734
0
620
Other Decks in Programming
See All in Programming
AIエージェントの隔離技術の徹底比較
kawayu
0
450
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
330
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
530
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
1.9k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
220
Inside Stream API
skrb
1
510
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
360
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
7
2.9k
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
500
Modding RubyKaigi for Myself
yui_knk
0
850
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.3k
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
690
Featured
See All Featured
Chasing Engaging Ingredients in Design
codingconduct
0
200
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
150
Deep Space Network (abreviated)
tonyrice
0
160
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
A Tale of Four Properties
chriscoyier
163
24k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.3k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Ruling the World: When Life Gets Gamed
codingconduct
0
240
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Writing Fast Ruby
sferik
630
63k
Transcript
4OPX.POLFZ$.
w גࣜձࣾϞϯΩʔϨϯν w 4OPX.POLFZ 8PSE1SFTTͷςʔϚ w .881'PSN 8PSE1SFTTͷ͍߹ΘͤϑΥʔϜϓϥάΠϯ w 4NBSU$VTUPN'JFMET
8PSE1SFTTͷΧελϜϑΟʔϧυϓϥάΠϯ w #BTJT 4BTT$44ϑϨʔϜϫʔΫ ࣗݾհ ΩλδϚλΧγ !JOD
4OPX.POLFZ ԁ ੫ࠐ ϒϩοΫΤσΟλʔରԠ ΧελϚΠβʔ
։ൃऀ͚
4OPX.POLFZ#MPDLT ແྉ 8FCαΠτ੍࡞Ͱ͑Δ ΧελϜϒϩοΫΛ ͨ͘͞ΜՃ ͲͷςʔϚͰ༻Մೳ
ࠓ࠷ۙͷΞοϓσʔτͰ ಛʹؤுͬͨͷΛ ͭհ͍ͨ͠ͱࢥ͍·͢ɻ
ϒϩοΫͷΞΠίϯΛ৽
ϒϩοΫͷΞΠίϯΛ৽ Old New
λϒϒϩοΫ
λϒϒϩοΫ
λϒϒϩοΫ
λϒϒϩοΫ
λϒϒϩοΫ
ઃఆϑΝΠϧͷಡΈࠐΈํࣜ
w 4OPX.POLFZɺGVODUJPOTQIQʹॻ͘Α͏ͳίʔυΛ֤ॲཧ ͝ͱʹϑΝΠϧׂ͍ͯ͠Δʢ$44+4ಡΈࠐΈBQQTFUVQ BTTFUTQIQɺύϯͣؔ͘࿈BQQTFUVQCSFBEDSVNCTQIQͳ Ͳʣ w ׂ͢ΔϝϦοτɿͲ͜ʹԿͷॲཧ͕ॻ͔Ε͍ͯΔ͔Θ͔Γ͢ ͍ɺࢠςʔϚͰۭϑΝΠϧͰ্ॻ͖͢Δ͜ͱͰॲཧΛ·Δ͝ͱফ ͤΔ w
ׂ͢ΔσϝϦοτɿϑΝΠϧಡΈࠐΈ͕͍αʔόʔͰ ϖʔδͷಡΈࠐΈʹ͕͔͔࣌ؒΔ ઃఆϑΝΠϧͷಡΈࠐΈํࣜ
͡Ό͋ॏࢹͷਓׂ͍ͯ͠ΔϑΝΠϧΛશ෦ ݁߹ͯ͠ɺͦΕΛಡΈࠐΉΑ͏ʹ͢Εྑ͘Ͷʁ ઃఆϑΝΠϧͷಡΈࠐΈํࣜ
w ϖʔδΛ։͍ͨͱ͖ʹ݁߹ͨ͠ϑΝΠϧ͕ͳ͚Εɺ ֤ϑΝΠϧΛ݁߹ͤ͞Δ w ݁߹ͨ͠ϑΝΠϧ͕͋ΕͦΕΛಡΈࠐΉ w ݁߹ͨ͠ϑΝΠϧςʔϚʹϑΝΠϧͱͯ͠ Ωϟογϡ͞ΕΔ w ςʔϚΛΞοϓσʔτ͢Δ͔ɺΩϟογϡΫϦΞϘλϯ
Λԡ͢ͱ࠶݁߹͞ΕΩϟογϡ͞ΕΔ ઃఆϑΝΠϧͷಡΈࠐΈํࣜ
w ͱ͍͑ɺ୯७ʹ݁߹͢Δ͚ͩͰಈ͔ͳ͍ w VTF͕ॏෳ͢Δͱಈ͔ͳ͍ ͦͷ··݁߹ͯ͠ϑΝΠϧʹಉ͡VTF͕ఆٛ͞Εͨ ঢ়ଶʹͳΔͱίέΔ w ϑΝΠϧͷ్தͰSFUVSO͍ͯ͠Δॲཧ͕͋Δ ͱɺ݁߹ͨ͠ͱ͖ʹͦ͜Ͱશମͷॲཧ͕ऴྃ
ͯ͠͠·͏ ઃఆϑΝΠϧͷಡΈࠐΈํࣜ
w VTF͕ॏෳ͢Δͱಈ͔ͳ͍ ˠׅހߏจʹΑΔෳͷ໊લۭؒͷએݴ ઃఆϑΝΠϧͷಡΈࠐΈํࣜ // ͔͜͜ΒϑΝΠϧ A namespace Hoge; use
ClassA; use ClassB; …… // ͔͜͜ΒϑΝΠϧB namespace Fuga; use ClassA; // ͜͜ͰίέͪΌ͏ …… // ͔͜͜ΒϑΝΠϧ A namespace Hoge { use ClassA; use ClassB; …… } // ͔͜͜ΒϑΝΠϧB namespace Fuga { use ClassA; …… } ˠ
w ϑΝΠϧͷ్தͰSFUVSOͪ͠Ό͏ ˠॲཧશମΛDBMM@VTFS@GVODͰғΜͰແ໊ؔԽ ઃఆϑΝΠϧͷಡΈࠐΈํࣜ // ͔͜͜ΒϑΝΠϧ A namespace Hoge {
if ( ! $foo ) { // ͜͜Ͱൈ͚ΔͱϑΝΠϧB ෦ͷ // ॲཧ͕ߦΘΕͳ͍ return; } …… } // ͔͜͜ΒϑΝΠϧB namespace Fuga { use ClassA; …… } // ͔͜͜ΒϑΝΠϧ A namespace Hoge { call_user_func( function() { if ( ! $foo ) { return; } …… } ); } // ͔͜͜ΒϑΝΠϧB namespace Fuga { use ClassA; call_user_func( function() { …… } ); } ˠ
͋Μ·Γڹ͕ͳ͍ͷͰ ͥͻࢼͯ͠Έ͍ͯͩ͘͞ʂ