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
JP_Stripes Connect 2019 登壇資料
Search
Yausufmi Nishiyama
March 21, 2019
1
1.8k
JP_Stripes Connect 2019 登壇資料
昨年夏の「10年間使い続けているPayPalからStripeへ? 〜 あるウェブディレクターの軌跡 〜」には実は続編があった?
Yausufmi Nishiyama
March 21, 2019
Tweet
Share
More Decks by Yausufmi Nishiyama
See All by Yausufmi Nishiyama
ウェブディレクターの傾聴力が引き上げる「企画力」
nishi_yama
0
64
手段と目的を間違えないための「Movable Typeを活用したウェブサイトエコシステム」
nishi_yama
0
290
ECサイト構築にもう1つの選択肢を
nishi_yama
0
2.3k
はじめてのMovable Type 〜ゼロからの始め方・選び方〜
nishi_yama
0
410
Movable Typeで理解する「CMS選びのポイント」
nishi_yama
1
220
Movable Type で育てるウェブサイトエコシステム
nishi_yama
0
67
手軽さや自由度のメリットだけじゃない、SaaS型CMSで作る「クライアントから支持されるウェブサイト」
nishi_yama
0
110
カスタムブロック作成手順のベタープラクティス
nishi_yama
1
5k
SaaS型のMovable Typeを選択するウェブサイト制作会社の思考
nishi_yama
0
110
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Side Projects
sachag
455
43k
The Invisible Side of Design
smashingmag
302
51k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Music & Morning Musume
bryan
46
7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Context Engineering - Making Every Token Count
addyosmani
9
420
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
980
Transcript
͍ؒଓ͚͍ͯΔ 1BZ1BM͔Β4USJQFʁ ʙ͋ΔΣϒσΟϨΫλʔͷيʙ +1@4USJQFT$POOFDU BUΤϜΦʔςοΫεגࣜձࣾ
ϋογϡλάɹ+14$ ࣗݾհ
ϋογϡλάɹ+14$ ࡾͷ൧ΑΓ৯Δ͜ͱɺҿΉ͜ͱ͕͖ ࢁɹହ࢙ʢʹ͠·ɹ͢;Έʣ גࣜձࣾδϟΫελϙδγϣϯɹදऔకʗσΟϨΫλʔ ݄ۀɺ݄๏ਓԽʢ๏ਓظʣ .PWBCMF5ZQFΛϓϥοτϑΥʔϜʹΣϒαΠτΛߏங ɹ1SP/FUʢγοΫεɾΞύʔτࣾύʔτφʔʣՃໍ ɹ.5՜ҔΛελʔτ ɹ.5%%$.FFUVQ)0,,"*%0։࠵ ɹΣϒσΟϨΫγϣϯݚڀձʢԾশʣΛελʔτ
ɹ.5%%$.FFUVQ)0,,"*%0։࠵
ϋογϡλάɹ+14$ ւಓࡳຈࢢ͔Βདྷ·ͨ͠
ϋογϡλάɹ+14$ ͓ؾʹೖΓͷॴ େऺञԶྲྀ ϏʔϧʢαοϙϩΫϥγοΫʣ ഋԁʢ੫ผʣ ݄ͷൢച ͓Αͦ ഋʢళฮʣ
ϋογϡλάɹ+14$ ͓ؾʹೖΓͷॴ େऺञԶྲྀ ݩβϯΪˍ৽βϯΪ
ϋογϡλάɹ+14$ δϟΫελϙδγϣϯ
ϋογϡλάɹ+14$ σΟϨΫλʔɹ໊ σβΠφʔʢ)5.-$44ΤϯδχΞʣ໊ .5ςϯϓϨʔτΤϯδχΞɹ໊ ओͳۀ ɾΣϒαΠτߏஙʗΣϒίϯαϧςΟϯά ɾࣗࣾ։ൃൢച ɾΣϒγεςϜ։ൃ ɾҹσβΠϯ΄͔ IUUQTXXXMBUODPN
ϋογϡλάɹ+14$ ຊΠϕϯτͷը૾ܥσβΠϯΛ୲
ϋογϡλάɹ+14$ ࣗࣾϓϩμΫτ4,&-&50/$"35ͷ։ൃɾൢച
ϋογϡλάɹ+14$ 4,&-&50/$"35 w ݄ϦϦʔε w )5.-ςϯϓϨʔτࣜͷγϣοϐϯάΧʔτ w ओʹΣϒσβΠφʔ͞ΜΣϒ੍࡞ձ͚ࣾ w ϓϥάΠϯػߏʹΑΔ֦ுੑ
w ൢച૯͓Αͦຊ
ϋογϡλάɹ+14$ %ZOBNJD1SFWJFX *NBHF6QMPBE6UJMJUZ .PWBCMF5ZQF༻ϓϥάΠϯͷ։ൃɾൢച
ϋογϡλάɹ+14$ *NBHF6QMPBE6UJMJUZ w ݄ϦϦʔε w .PWBCMF5ZQFͷը૾ΞοϓϩʔυػೳΛڧԽ w ݸਓແঈ൛ɺ௨ৗ൛ͱ1SP൛Λఏڙ w ൢച૯͓Αͦຊ
ϋογϡλάɹ+14$ %ZOBNJD1SFWJFX w ݄ϦϦʔε w .PWBCMF5ZQFͷϓϨϏϡʔػೳΛڧԽ w ௨ৗ൛ͱ1SP൛Λఏڙ w ൢച૯͓Αͦຊ
ϋογϡλάɹ+14$ ࠓɺօ͞Μʹ͓͢Δ͜ͱ
ϋογϡλάɹ+14$ 4USJQFΛར༻͢Δ͜ͱͰɺ ϊϯϓϩάϥϚʔͳϫλγͰ ࢥ͍ͬͯͨΑΓͣͬͱ؆୯ʹ Γ͔ͨͬͨ͜ͱ͕࣮ݱͰ͖ͨ
ϋογϡλάɹ+14$ ͜Ε·Ͱར༻͖ܾͯͨ͠ࡁαʔϏε
ϋογϡλάɹ+14$
ϋογϡλάɹ+14$ 1BZ1BM w ɺ·ͩݸਓࣄۀओ w &$αΠτߏஙͷґཔ͕૿͖͑ͯͨ w Ͱ͖Δ͚ͩܦඅ͔͚ͨ͘ͳ͍ w ςετڥʢ4BOECPYʣ͕ར༻Ͱ͖ͨ
w "1*Ͱ͍Ζ͍ΖͰ͖ͦ͏
ϋογϡλάɹ+14$
ϋογϡλάɹ+14$ Ϋϩωί8&#ίϨΫτ w ओʹΫϥΠΞϯτͷ&$αΠτͰಋೖ w ֹ݄ҡ࣋අ͕͔͔Βͳ͍ w ૹ·ͰҰ؏Ͱ͖Δ w Ҿ͖ͰΫϨδοτΧʔυܾࡁ͕ར༻Ͱ͖Δ
w Ϋϩωίͱ͍͏҆৺ײ
ϋογϡλάɹ+14$ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝
ϋογϡλάɹ+14$ 1BZ1BMޱ࠲ͷ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶃ
ϋογϡλάɹ+14$ 1BZ1BMޱ࠲ʹೖۚ һି ๏ਓޱ࠲ৼସ
ϋογϡλάɹ+14$ 1BZ1BMձһొͷ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶄ
ϋογϡλάɹ+14$ 1BZ1BMձһొ͕ඞཁ 1BZ1BMձһ͡Όͳ͍ ۜߦৼࠐͰࢧ͍͍ͨ
ϋογϡλάɹ+14$ 1BZ1BMखྉͷ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶅ
ϋογϡλάɹ+14$ *NBHF6QMPBE6UJMJUZ1SP͕ചΕͨ߹ ച্ खྉ ʢ݄ؒച্ສԁະຬʣ Ҿग़खྉ ʢສԁະຬʣ ࠩҾऩೖ 1BZ1BM
ԁ ԁ ʢ ԁʣ ԁ ԁ 4USJQF ԁ ԁ ʢʣ ԁ ͋ͨΓͷֹࠩԁʂ
ϋογϡλάɹ+14$ ࠓ·ͰʹऔΓ͜΅ͯ͠͠·ͬͨ૯ֹ ԁҎ্ʂ
ϋογϡλάɹ+14$ େऺञԶྲྀͷ ੜϏʔϧʢΫϥγοΫʣ ഋҎ্
ϋογϡλάɹ+14$ Ϋϩωί8&#ίϨΫτͷॏେͳ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶆ
ϋογϡλάɹ+14$ ͋ΔɺΫϥΠΞϯτ͔Βಧ͍ͨϝʔϧ 'BDFCPPL-*/&ʹషΓ͚ͨ ฐࣾ63-͔ΒϦϯΫ͢ΔͱΫϨδοτΧʔυ͍͕ ͓ࢧ͍खଓ͖Τϥʔͱදࣔ͞Ε·͢ɻ Ͳ͏ʹ͔ͳΓ·ͤΜͰ͠ΐ͏͔ʁ
ϋογϡλάɹ+14$
ϋογϡλάɹ+14$
ϋογϡλάɹ+14$ ϠϚτϑΟφϯγϟϧ͍߹Θͤͨ Ұ෦εϚʔτϑΥϯͷ༷ʹΑΓ (PPHMFΞϓϦʗ:BIPPΞϓϦʹͯ৽نΟϯυΛ։͘ߏஙʹ͓ͯ͠Γ·͢ͱ ඞཁใʢύϥϝʔλʣ͕ൈ͚མͪͯ͠·͏ࣄ͕֬ೝ͞Ε͓ͯΓ·͢ɻ ղܾࡦͱக͠·ͯ͠ɺ৽نΟϯυΛ্ཱͪ͛ͳ͍Α͏ͳߏஙʹ มߋ͍͖ͨͩ·͢ͱɺ্هࣄൃੜ͠ͳ͘ͳΔͱͷࢥΘΕ·͢ɻ
ϋογϡλάɹ+14$ ࣗࣾʮμϯϩʔυൢചʯͷઓ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶇ
ϋογϡλάɹ+14$ w ೖۚ֬ೝޙʹσʔλΛૹ͢Δʁ ٳΈͷରԠʁ தରԠʁ ग़ுதରԠʁ w ͕ͦͦࣗར༻ऀଆͩͬͨΒʁ w ෆਖ਼ར༻ͷՄೳੑͱͷτϨʔυΦϑ
ϋογϡλάɹ+14$ 1BZ1BMͰઓʂ
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-synch'; $tx_token = $_GET['tx']; $auth_token = "* αΠτͰൃߦ͞ΕΔIDτʔΫϯΛ͜͜ʹషΓ͚Δ *"; $req .= "&tx=$tx_token&at=$auth_token"; // post back to PayPal system to validate $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; $fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, // $fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30); // $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errst // Ͱ͖Ε HTTPS ʹͨ͠ํ͕ɺηΩϡϦςΟ͕ߴ·Δ. if (!$fp) { // HTTP ERROR echo "ERROR: HTTP error, [" . $errno . "] " . $errstr . "\n exit(1); } fputs ($fp, $header . $req); // read the body data $res = ''; $headerdone = false; while (!feof($fp)) { $line = fgets ($fp, 1024); if (strcmp($line, "\r\n") == 0) { // read the header $headerdone = true; } else if ($headerdone) { // header has been read. now read the contents $res .= $line; ϋογϡλάɹ+14$
ϋογϡλάɹ+14$ 1BZ1BMͰͷ࠳ં 1%5ʜ ɹ*1/ʜ ɹͳʹͦΕඒຯ͍͠ͷʁ
ϋογϡλάɹ+14$ 4USJQFͳΒͰ͖Δʁ ϚχϡΞϧӳޠ͚ͩͲɺʢ(PPHMFઌੜͷ͓͔͛ͰʣΘ͔Γ͍͢ײ৮Λಘͨ
ϋογϡλάɹ+14$ ॻ͍ͯΈͨɻ w DPOpHQIQΛಡΈࠐΉ w ໊ͱՁ֨Λ)5.-͔Β 1045Ͱड͚औΔ w ϥΠηϯε൪߸Λੜ w
ܾࡁྃޙɺϝʔϧΛૹ৴ w μϯϩʔυը໘ϔࣗಈసૹ ʢ50,&/ɺ*%Λ͢ʣ w μϯϩʔυը໘Ͱ*%Ͱ 63-Λදࣔʢ50,&/Ͱذʣ
ϋογϡλάɹ+14$ Ͱ͖ͨʂ IUUQTXXXKVYUBQPTJUJPOKQJNBHFVQMPBEVUJMJUZ
ϋογϡλάɹ+14$ ͱࢥͬͨΒʜ 4USJQFʹνϟʔδͰ͖͍ͯͳ͍͜ͱ͕໌ ʢςετڥͰͳ͘Ͱ͖͍ͯͨʣ
ϋογϡλάɹ+14$ αϙʔτʹ͍߹ΘͤͯΈΔ τʔΫϯ࡞͞Ε͍ͯ·͕͢ɺ νϟʔδ͕࡞͞Ε͍ͯͳ͍ͨΊɺࢧ͍͕͓ྃͯ͠Γ·ͤΜɻ "1*ʹͯऔಘ͞ΕͨτʔΫϯΛར༻͞Ε·͢ͱɺ νϟʔδ͢Δ͜ͱ͕Ͱ͖·͢ɻ νϟʔδΛ࡞͢Δύϥϝʔλʹ͖ͭ·ͯ͠ɺ ͪ͜ΒΛ͝ࢀর͍ͩ͘͞ IUUQTTUSJQFDPNEPDTBQJDSFBUF@DIBSHF
τʔΫϯ࡞͞Ε͍ͯ·͕͢ɺ νϟʔδ͕࡞͞Ε͍ͯͳ͍ͨΊɺࢧ͍͕͓ྃͯ͠Γ·ͤΜɻ "1*ʹͯऔಘ͞ΕͨτʔΫϯΛར༻͞Ε·͢ͱɺ νϟʔδ͢Δ͜ͱ͕Ͱ͖·͢ɻ νϟʔδΛ࡞͢Δύϥϝʔλʹ͖ͭ·ͯ͠ɺ ͪ͜ΒΛ͝ࢀর͍ͩ͘͞ IUUQTTUSJQFDPNEPDTBQJDSFBUF@DIBSHF ϋογϡλάɹ+14$ αϙʔτʹ͍߹ΘͤͯΈΔ ͪΐͬͱͳʹݴͬͯΔ͔Θ͔Μͳ͍
ϋογϡλάɹ+14$ Α͘ݟΔͱ ؊৺ͳ෦͕ ͬͦ͝Γൈ͚͍ͯͨ ʢͲͷλΠϛϯά͔ෆ໌ʣ ސ٬Λ࡞ DVTUPNFSa4USJQFa$VTUPNFSDSFBUF BSSBZ FNBJMFNBJM
TPVSDFUPLFO νϟʔδΛ࡞ DIBSHFa4USJQFa$IBSHFDSFBUF BSSBZ EFTDSJQUJPOQSPEVDU DVTUPNFSDVTUPNFSJE BNPVOUQSJDF DVSSFODZKQZ
ϋογϡλάɹ+14$ ࣮ࡍʹͬͨ͜ͱ μογϡϘʔυͷʮ։ൃऀʯϝχϡʔͷʮϩάʯ͔Β֘ͷUPLFOTΛ։͘ $IFDLPVUKT͔Βͷ1045ʹର͠Ԡͨ͠༰ʹ͋ΔʮJEUPL@IPHFIPHF ʯΛݟ͚ͭɺ UPL@IPHFIPHF෦Λίϐʔ DIBSHFQIQͷʮސ٬Λ࡞ʯʹ͋ΔTPVSDFʹͦΕΛهೖ
ʢ1045༰ʹ͋ΔϝʔϧΞυϨεFNBJMʹهೖʣ ʮνϟʔδΛ࡞ʯͷEFTDSJQUJPOͱBNPVOUʹهೖ ϝʔϧૹ৴ͳͲෆཁͳ෦আ DIBSHFQIQΛDIBSHF@GVHBQIQͳͲͱϦωʔϜͯ͠Ξοϓϩʔυ ϒϥβ͔ΒDIBSHF@GVHBQIQʹΞΫηε ʢࢲ͜͜Ͱྃը໘ϦμΠϨΫτ͢ΔΑ͏ʹ͠·ͨ͠ʣ
ϋογϡλάɹ+14$ ࣮ࡍʹͬͨ͜ͱ μογϡϘʔυͷʮ։ൃऀʯϝχϡʔͷʮϩάʯ͔Β֘ͷUPLFOTΛ։͘ $IFDLPVUKT͔Βͷ1045ʹର͠Ԡͨ͠༰ʹ͋ΔʮJEUPL@IPHFIPHF ʯΛݟ͚ͭɺ UPL@IPHFIPHF෦Λίϐʔ DIBSHFQIQͷʮސ٬Λ࡞ʯʹ͋ΔTPVSDFʹͦΕΛهೖ
ʢ1045༰ʹ͋ΔϝʔϧΞυϨεFNBJMʹهೖʣ ʮνϟʔδΛ࡞ʯͷEFTDSJQUJPOͱBNPVOUʹهೖ ϝʔϧૹ৴ͳͲෆཁͳ෦আ DIBSHFQIQΛDIBSHF@GVHBQIQͳͲͱϦωʔϜͯ͠Ξοϓϩʔυ ϒϥβ͔ΒDIBSHF@GVHBQIQʹΞΫηε ʢࢲ͜͜Ͱྃը໘ϦμΠϨΫτ͢ΔΑ͏ʹ͠·ͨ͠ʣ Θ͔Δ·Ͱαϙʔτʹ࿈བྷ ϚχϡΞϧΛ܁Γฦ͠ಡΉ ͱʹ͔͘ςετڥͰ֬ೝ
ϋογϡλάɹ+14$ ࣮ࡍɺͲ͏ͩͬͨͷ͔
ϋογϡλάɹ+14$ w ࢥ͍ͬͯͨΑΓ؆୯ɺ͔ࣗ͠༝ʹͰ͖ͨ w ͨͩɺ+BWB4DSJQUͰ؆୯ಋೖʂͳهࣄ͕ଟ͗͢ w DIBSHFQIQ͚ͩͰࢥ͍ͷ··ʹΧελϚΠζ w ςετϞʔυ͔ΒͷΓସ͑؆୯ͩͬͨ w
αϙʔτʢਗ਼͞Μʣʹͱ͓ͯੈʹͳͬͨ
ϋογϡλάɹ+14$ 4MBDLʹ௨͕དྷΔΑ͏ʹͯ͠Έͨ
ϋογϡλάɹ+14$ ͱʹָ͔͍͘͠ʂ
ϋογϡλάɹ+14$ ͍ؒଓ͚͍ͯΔ1BZ1BM͔Β4USJQFʁ ʙ͋ΔΣϒσΟϨΫλʔͷيʙ גࣜձࣾδϟΫελϙδγϣϯɹࢁɹହ࢙ Let’s TRY!