Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AIプログラマーDevinは PHPerの夢を見るか?
Search
Shinya Saita
June 28, 2025
Programming
770
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AIプログラマーDevinは PHPerの夢を見るか?
PHPカンファレンス2025の登壇資料です。
Shinya Saita
June 28, 2025
More Decks by Shinya Saita
See All by Shinya Saita
PHP8.5は「戻り値の無視」をどう見抜くのか 〜voidキャストの裏側〜
shinyasaita
0
58
hookで自作する Claude Code の「実況ボード」
shinyasaita
2
460
エンジニアの示唆に溢れている漫画『HUNTER×HUNTER』
shinyasaita
0
220
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
450
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
930
Chrome拡張機能で会議の遅刻・延長を解消した話
shinyasaita
0
130
PHPで常に象を意識する方法
shinyasaita
0
110
Claude Code 珍プレー好プレー
shinyasaita
0
480
失敗を資産に変えるClaude Code
shinyasaita
0
2k
Other Decks in Programming
See All in Programming
Java 27新機能 / Java 27 new features
kishida
2
200
残高管理から台帳サービスへの進化
artoy
0
170
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
120
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
140
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
140
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
120
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
15k
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
450
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
Designing Experiences People Love
moore
143
24k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
610
Crafting Experiences
bethany
1
370
The agentic SEO stack - context over prompts
schlessera
0
970
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
770
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Mind Mapping
helmedeiros
1
390
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Transcript
มଶΤϯδχΞɹ੪ాਅ "*ϓϩάϥϚʔ%FWJO 1)1FSͷເΛݟΔ͔ʁ 1)1$POGFSFODF QIQDPOUSBDL
λΠτϧখઆͷύϩσΟ
λΠτϧখઆͷύϩσΟ w ۚՔ͗ͷओਓެ͕ΞϯυϩΠυΛङΔετʔϦʔ w ਓͱΞϯυϩΠυͷ۠ผ͕͖ͭʹ͍͘ੈͷத w ࡞தͰײͷมԽΛଅ࣭͢Λ͢Δ͜ͱͰ ͦΕʹର͢ΔԠͰਓ͔ؒ൱͔Λஅ͍ͯͨ͠ w ਓͱΞϯυϩΠυͷҧ͍ͬͯԿͳΜͩΖ͏ʁ
ͱࢥ͏ಡྃײΛಘΔ4'খઆ
࠷ۙͷ"*ͷߴੑೳԽʹ ࢥ͏ͷ
ਓͱ"*ͷҧ͍ͬͯ ԿͳΜͰ͠ΐ͏ʁ 2VBOUJD%SFBN2VBOUJD%SFBNBOEUIF2VBOUJD%SFBNMPHPBSFUSBEFNBSLTPG2VBOUJD%SFBN
ਓͱ"*ͷҧ͍ͬͯ ԿͳΜͰ͠ΐ͏ʁ ΤϞ͞ͱ͔ʁ 2VBOUJD%SFBN2VBOUJD%SFBNBOEUIF2VBOUJD%SFBNMPHPBSFUSBEFNBSLTPG2VBOUJD%SFBN
͓લ୭ͶΜʁ
ࣗݾհ ໊લ ग़ ৬ۀ झຯ ಛٕ ੪ాਅ ژ όοΫΤϯυΤϯδχΞ 1)1+BWBTDSJQUগ͠(0
τϥϯϓूΊଞଟ ϚδοΫ ͍ͨ͞ɹ͠Μ
2JJUBهࣄॻ͍ͨΓ ͬͱόζͬͨهࣄˠ
ύϫϓϩ෩ʹΤϯδχΞεΩϧදݱͰ͖ΔπʔϧΛ࡞ͬͨΓ
ϙέϞϯΛ λʔϛφϧʹ දࣔ͢Δ γΣϧΛॻ͍ͨΓ IUUQTHJUIVCDPNTIJOZBQPLFNPOUFSNJOBMBSU .Z࠷ελʔϦϙδτϦˠ
τϥϯϓूΊͨΓͯ͠·͢ τϥϯϓͷղઆαΠτΛ ӡӦͯͨ͠Γ͠·͢
ͯ͞ɾɾɾ
Έͳ͞Μ "*ͬͯ·͔͢ʁ
"*ΤʔδΣϯτݩ w 0QFO"*Λච಄ʹੈք"*ઓࠃ࣌ʹಥೖ w ͢ͰʹԿඦͱ͍͏"*αʔϏε͕ੈͷதͰల։ w िؒܦͯใ͕ݹ͍ͱ͍͏ੈͷத
։ൃʹ͕͕Δ w $IBU(15ʹཔΊίʔυΛॻ͍ͯ͘ΕΔ w (JUIVC$PQJMPU͕ίʔυΛੜͯ͘͠ΕΔ w ʮ"*Λͬͯͳ͍ʯ͜ͱ͕ σΟεΞυόϯςʔδͱͳΔੈͷத
ຊͷςʔϚ w ੜ"*ͷ%FWJOʹ͍ͭͯৄ͘͠ͳΔ w 1)1FSͱͯ͠ͲΕ΄Ͳ༗༻ͳͷ͔Λհ͢Δ
ҙ w ຊϓϨθϯ%FWJOʹϑΥʔΧεΛ͍ͯͯ·͢ w ଞͷੜ"*ʹؔͯ͠ಛʹ৮Εͳ͍ͷͰྃ͝ঝ͍ͩ͘͞ w ࢲ%FWJOҎ֎ͷ"*͋·Γৄ͘͠ͳ͍Ͱ͢ w ͱ͍͍ͭͭ࠷ۙ$VSTPS"*͔Γ৮ͬͯ·͢
%FWJOͱʁ
%FWJOʹ͍ͭͯ w $PHOJUJPO͕ࣾੈքॳͷશࣗܕ"*ΤϯδχΞͱͯ͠ൃදͨ͠ w (JU)VC$PQJMPUͷΑ͏ͳίʔυิαδΣετͰͳ͍ w ༩͑ΒΕͨใΛݩʹࣗతʹ։ൃௐࠪΛߦ͑Δͷ͕ಛ w ͍ΘΏΔΤʔδΣϯτܕͷ"* w
(JUIVCͷใࢀর13ͷ࡞͕Մೳ w ׂͱߴ͍ʢϲ݄ʣ ˠैྔ՝ۚͷϓϥϯొ͍͘͢͠ͳΔ
؆୯ʹݴ͏ͱɾɾɾ w νϟοτͷ͜͏ʹػͯ͘͠ΕΔΤϯδχΞʢ"*ʣ͕͍Δ w ࣮ࡍ4MBDLͰґཔ͕ग़ͤΔ w ʮ͜Ε͍ͬͯͩ͘͞ʯͱࢦࣔΛඈ͢ͱ࡞ۀΛͯ͘͠ΕΔ w ʮ͜ͷόάΛͯ͠ʯ w
ʮ͜͜ͷϢχοτςετ࡞ͬͯʯ w ʮ͜ͷΤϥʔͷݪҼௐࠪͯ͠ʯ
؆୯ʹݴ͏ͱɾɾɾ w νϟοτͷ͜͏ʹػͯ͘͠ΕΔΤϯδχΞʢ"*ʣ͕͍Δ w ࣮ࡍ4MBDLͰґཔ͕ग़ͤΔ w ʮ͜Ε͍ͬͯͩ͘͞ʯͱࢦࣔΛඈ͢ͱ࡞ۀΛͯ͘͠ΕΔ w ʮ͜ͷόάΛͯ͠ʯ w
ʮ͜͜ͷϢχοτςετ࡞ͬͯʯ w ʮ͜ͷΤϥʔͷݪҼௐࠪͯ͠ʯ ศརʂ
ฐࣾόοΫΦϑΟεܥ4BBTܥاۀ w ͝ͱʹ༻ݴޠҟͳΔ͕ɺ1)1ͷͷଟ͋Δ w ࢲࣗ1)1ͷϓϩμΫτʹؔΘ͍ͬͯΔ w Ͳ͜ͱ͍Θͳ͍͕ɺ̋౻ݡҰ͞Μͱԣ̋Նࢠ͞Μ͕$.ͬͯΔͱ͜ w 1)1ॻ͖ͳ͕Β "*׆༻ͷࢼߦࡨޡ͍ͯ͠Δ
ࢲʑ
%FWJOͷՄೳੑΛ ୳͍ͯ͠Δ
ՄೳੑΛ୳͍ͯ͠Δ w Կ͕ಘҙͳͷ͔ w ͲΜͳ͜ͱΛཔΉͱޮՌ͕ߴ͍ͷ͔ w ࢼߦࡨޡͷதͰݟ͖͑ͯͨͷΛ հ͍͖ͯ͠·͢
%FWJOͷେ͖ͳಛ
φϨοδΛஷΊΔ͜ͱ͕ग़དྷΔ
φϨοδΛஷΊΔͱʁ w લఏ݅ΛઃఆͰ͖Δ w ʮ͜ΕΛ͢Δͱ͖ඞͣ͜Εʹै͍ͬͯͩ͘͞ʯ w FY ιʔείʔυΛੜ͢Δͱ͖ίʔσΟϯάنʹै͍ͬͯͩ͘͞ w ଞʹࣄલʹΠϯϓοτ͓͍ͯͯ͠΄͍͜͠ͱஷΊ͓͚ͯΔ
φϨοδΛͬͯ ྑ͔ͬͨҰྫ
ϦʔμϒϧίʔυΛಡΜͰϦϑΝΫλϦϯάͯ͠ w ΦϥΠϦʔͷ໊ஶͰ͋ΓΤϯδχΞͷόΠϒϧ w ͦΕΛ%FWJOʹ*OQVU͢Δ w ͦΕΛݩʹϦϑΝΫλϦϯάΛͯ͠Ͷ ͱ͓ئ͍͢Δ w өͨ͠13͕࡞͞Εͨ
ͦͷ̍ มߋΛநग़ͯ͠ ֓ཁʹ·ͱΊͯ͘Ε͍ͯΔ
ͦͷ̎ηϧϑϨϏϡʔͯ͠ w ͓ͦΒ͘ਓ͕ͬͨ߹͋·ΓΒͳ͍ಈ͖ w ผਓ֨Ͱݾͷ13ʹରͯ͠ΞυόΠεΛೖΕͯͱґཔ w ϚδͰผਓ͔֨ͷΑ͏ʹࢦఠ͕ඈΜͰ͖ͨ w ˠਓ͕ͬͯͨΒʮࣗͰΓͳΕʯͱͳΔͭ
ʮίʔυͷҙਤ͕ΑΓ໌֬ʹͳΔΑʯͱ ͕ࣗॻ͍ͨίʔυʹποίϛΛ ೖΕ͍ͯΔͷ໘ന͍
ͦͷࣗͷվળΛઆ໌ͯ͠ w ͋ͳͨͷվमʰϦʔμϒϧίʔυʱͷ Ͳͷ෦ʹ֘͢ΔΜͰ͔͢ʁ ͱ͍͏ͷΛͪΌΜͱઆ໌͍ͯͩ͘͠͞ͱґཔ w ʮ͜͏͍͏߲ͷ෦Λөͯ͠·͢ɻ ɹͪͳΈʹԿϖʔδͷ͜ͷ෦Ͱ͢ʯ ͱ͕͑ؼ͖ͬͯͨ
None
ධՁ͢ΔզʑຊʹͦΕ͕ ϦϑΝΫλϦϯάͱͯ͠ҙຯΛ ͳ͍ͯ͠Δͷ͔Θ͔Δ େมྑ͍
ͦͷϢχοτςετΛՃͯ͠ w ϦϑΝΫλϦϯάͳͷͰϏδωεϩδοΫͷ݁ՌΛม͍͚͑ͯͳ͍ w ຊʹͦ͜େৎʁͱ͍͏ͷΛ୲อ͍ͨ͠ͷͰ ϢχοτςετΛ࡞͍ͯͩ͘͠͞ͱґཔ w ͠65࡞Δͷ͕͔ͬͨ͠Βɺ ͞ΒͳΔϦϑΝΫλϦϯά͍ͯͩ͘͠͞ w
65ͷ࣮ߦίϚϯυͱ࣮ߦ݁Ռڭ͑ͯͶ
खΛೖΕͨ෦ͷ65Λ࡞ ͦͯ͠ՃͷϦϑΝΫλϦϯά࣮ࢪ ʢΫϥεΛׂͨ͠ʣ
࣮ߦखॱͱҙ ͦͷ࣌ͷ࣮ߦϩάఴࡁΈ
ͦͷৼΓฦΓͷ࣮ࢪ w ࣮ࡍʹ"*ͳͷͰͦΜͳ͜ͱແ͍ͩΖ͏ͱࢥ͍ͭͭ ԿΛֶΜͩʁԿʹۤ࿑ͨ͠ʁΛώΞϦϯά w ʮࣗΛ๙Ί͍ͨ෦ʯͱ ʮޙഐ͕Ͱ͖ͨΒҾ͖ܧ͍͗ͨ͜ͱʯฉ͘ w ࣍ػձ͕͋ΕԿʹઓ͍ͨ͠ʁ w
࠷ޙʹϫγͷࢦࣔͷग़͠ํదͬͨʁ w ਓͩͬͨΒฉ͖͍ͨ͜ͱશ෦ฉ͘
શͯ͑ͯ͘Εͨʂ
ͬͯΈͨײ w ͪ͜Β͕Γ͍ͨ͜ͱΛ͑Δͱجຊߦಈͯ͘͠ΕΔ w ͦͷࡍʹલఏࣝͷΠϯετʔϧ͕͋Δͱ͔ͳΓҙਤ௨Γʹಈ͍ͯ͘ΕΔ w ਓͰͰ͖ͳ͍ʮผਓ֨ͰࣗͷίʔυΛϨϏϡʔ͢Δʯ͕ ݸਓతʹྑ͔ͬͨ w ৼΓฦΓͷ༰ΛಡΜͰΔͱࣗͰؾ͖͕ͮ৭ʑ͋Δ
w ୠ͠ɺίʔυͷਫ਼·ͩ·ͩͳॴΞϦ w ࠓޙ৭ʑͱՄೳੑΛ୳͍͖͍ͬͯͨ
ଞʹɾɾɾ
ϦΞϧλΠϜ࣌ࠁදΞϓϦΛ࡞ͬͨΓ
ςετσʔλΛ࡞ͬͯΒͬͨΓ
13ͷίʔυϨϏϡʔΛͯ͠ΒͬͨΓ ࣗͷίʔυΛ٬؍తʹηϧϑϨϏϡʔͰ͖Δ
ΤϯδχΞ͕͍ͯ͠Δ ຆͲͷ࡞ۀՄೳ
ͨͩ͠ɾɾɾ w ˠಘҙ͕ͩɺطଘͷιʔείʔυͷཧղෆಘҙ w ϦϑΝΫλϦϯάͰ͖Δ͕༷มߋʹऑ͍ w Կނ͜ͷγεςϜ͕͋Δͷ͔Λཧղͯ͠ͳ͍ w ٕज़ྗδϡχΞΤϯδχΞϨϕϧ w
ڭՊॻʹॻ͍ͯ͋Δ͜ͱͯ͘͠ΕΔ w ؾΛར͔ͤͨ͜ͱ͍͠ w ͨͩ͠ɺܦݧҭͯΒΕΔʢφϨοδʣ
ޮՌతͳ ϓϩϯϓτͷ༩͑ํ
ͬͯ΄͍͜͠ͱΛγϯϓϧʹ w ʮ͜ΕΛ͍͚ͬͯͳ͍ʯͰͳ͘ʮ͜ΕΛͬͯ΄͍͠ʯΛ͑Δ w Օॻ͖Ͱظ͢Δಈ࡞Λྻڍ͍ͯ͘͠ w ͋Μ·Γ;Θͬͱ͛Δͱ;Θͬͱͨ͠Ռ͕͕͋ͬͯ͘Δ w ιʔείʔυ͕ଟ͍ϦϙδτϦͩͱൣғΛߜͬͨ΄͏͕ྑ͍
͜Ε͙Β͍ͩͱͦͷ௨Γʹ࡞ͬͯ͘ΕΔ ͜͜Λม͑Δͱ։ൃݴޠ͕ ༰қʹมߋͰ͖Δ 1)1ͷཱɾɾɾ
ୠ͠ɺ٧Ί͕͍ ͕ग़དྷͯͳ͍ʂ ʢࢦࣔͯ͠ͳ͍͔ΒͨΓલʣ
Ͱޙ͔Βमਖ਼͢Εྑ͍
͋ͱ͔Βيಓमਖ਼ ͢Εྑ͍ ࣮ࡍͷਓͦ͏
1)1FSʹଞʹ͍ΖΜͳ༗ޮखஈ͕ w ·ͣ6OJU5FTUॻ͍ͯ͘ΕΔͷ͕୯७ʹྑ͍ w ͦͷͨΊʹΫϥεׂͯ͘͠ΕΔ w ϦϑΝΫλϦϯάͰ͖Δ w Ξϊςʔγϣϯͨ͠ΓɺλΠϓώϯτՃͨ͠Γ w
όʔδϣϯΞοϓରԠͰ͖Δ w 1)1͚ͩ͡Όͳ͘ɺ1)14UBO1)16OJU w ٯʹ5%%Ͱ͖ΔΜ͡ΌͶɾɾɾͱ͍͏رʢ·ͩͬͯͳ͍ʣ ϓϩμΫτίʔυॻ͍ͨ͋ͱʹ ਵ͢Δ࡞ۀ͓ئ͍ʂͯͰ͖Δ
ຯʹҰ൪ॿ͔ͬͨͷ
มߋʹΑΔӨڹௐࠪ w ʮ%#ͷΧϥϜ໊Λม͍͚͑ͨͲɺӨڹड͚Δͱ͜Ζநग़ͯ͠ʯͱ ࢦࣔΛ͛Δͱʮ͜͜Ͱʯͱڭ͑ͯ͘ΕΔ w ͨͩ͠ɺൣғ͕͗͢Δͱݟམͱ͋͠ΔͨΊ ʮ·ͣ͜ͷσΟϨΫτϦͰ͋Γ·͔͢ʁʯͱॱΛͬͯฉ͘ͱ˕
͓ؾ͖ͮͷํ ͍Βͬ͠ΌΔ͔Ͱ͕͢
1)1͔Ͳ͏͔"*ʹͱͬͯࠣࡉͳ w ٕज़తͳ՝Λղܾ͢ΔͨΊͷखஈͱͯ͠࠷ऴతʹݴޠԿʹ͢Δʁͷ͑ w ٯʹదͳखஈΛ͏ͨΊʹݴޠબผΛͤΔํ๏͋Γ w ͜ΕͬͯγεςϜ։ൃͷࠜຊͰɾɾɾʁ
ͪͳΈʹɾɾɾ w $IBU(15ʹಘҙͳݴޠϥϯΩϯάΛฉ͘ͱ 1)1Ґ w ʮ1)1FSͳΜ͚ͲʙŧŽŧŽŕʯͱฉ͘ͱ ٸʹͯ͠Ґʹ্͕Δ w %FWJOʹಉ͜͡ͱΛ͢ΔͱʮҐͰ͢ʯͱ ݴͬͯɺஅݻͱͯ͠ม͑ͳ͍
˞ͦͦτϨϯυͷݴޠ͕"*ڧ͍
·ͱΊ w %FWJOࢦࣔʹΑͬͯඇৗʹ͍͍ύϑΥʔϚϯεΛग़ͯ͘͠ΕΔ w ҰํͰɺ৽ਓͩͳʔͱࢥ͏Α͏ͳߦಈऔΔ w Ͱɺզʑ͕ࠜؾΑ͖͘ఴ͑ύϑΥʔϚϯε্͕ͬͯ͘Δ w 1)1ͰͦΕҎ֎Ͱ༗༻ʹ͑Δ w
͏͜Ενϟοτͷ͜͏ଆʹਓ͕͍ΔͷͱมΘΒͳ͍
"*ͰϚΠϯυಉ͡ w ී௨ʹ৽ਓΤϯδχΞʹ͓ئ͍͢Δ࣌ʹ ҙ͍ࣝͯ͠Δ͜ͱΛࢥ͍ฦ͢ w ͕ࣗઆ໌ෆͳ͜ͱਂງΓͨ͠΄͏͕ ྑ͍͜ͱ"*ʹର͖ͯͬ͠ͱͦ͏ w ݁ɺਓͱಉ͡Α͏ʹରቂ͠Α͏
ී௨ʹ৽ਓΤϯδχΞʹ ࣄΛ͓ئ͍͢Δ࣌ʹ ҙࣝ͢ΔϚΠϯυ͕େࣄ
͏͜͏ͳͬͨΒɾɾɾ
ਓͱ"*ͷҧ͍ͬͯ ԿͳΜͰ͠ΐ͏ʁ 2VBOUJD%SFBN2VBOUJD%SFBNBOEUIF2VBOUJD%SFBNMPHPBSFUSBEFNBSLTPG2VBOUJD%SFBN
ਓͱ"*ͷҧ͍ͬͯ ԿͳΜͰ͠ΐ͏ʁ ͬͺΓΤϞ͞ͱ͔ʁ 2VBOUJD%SFBN2VBOUJD%SFBNBOEUIF2VBOUJD%SFBNMPHPBSFUSBEFNBSLTPG2VBOUJD%SFBN
ʮਓͱ"*ͷҧ͍ͬͯͳΜͩΖ͏ʁʯʹ ڵຯΛ࣋ͬͨΒ͝Ұಡ͍ͩ͘͞
࠷ޙʹ w 1)1FSͷߴྸԽ͕࠷ۙͩͱײ͍ͯ͡Δ w ͜Ε"*ͷ׆༻͚ͩͰղܾͰ͖ͳ͍ w ׂͱຊؾͰ׆ੑԽ͢Δํ๏Λߟ͍͑ͨ w օ͞ΜؼͬͨΒ ʮϖνίϯ͓Ζ͔ͬͨͰʯͱ
Ί͍ͯͩ͘͞ ʢͷൃද͓Μͳ͔ͬͨΒɺ ɹਖ਼ʹݴͬͯେৎͰ͢ʣ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠