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
Gyazoの開発の進め方/devlove-kansai2018-10-29 #DevKan
Search
pastak
October 29, 2018
2.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gyazoの開発の進め方/devlove-kansai2018-10-29 #DevKan
Talked on
https://devlove-kansai.doorkeeper.jp/events/80459
pastak
October 29, 2018
More Decks by pastak
See All by pastak
アクセシビリティの向上がそのまま事業貢献になると良い
pastak
3
570
幕間CMを支える技術
pastak
4
730
無からniboshiを生み出す
pastak
0
47
Helpfeelがアクセシビリティにどのように取り組み始めて、どこまで来れたのか/Helpfeel Accessibility 2025-07
pastak
3
670
LT: JavaScript / HTML カルトクイズ
pastak
0
210
「夏フェス」をヒントに新しいカンファレンスを考えてみた at 函館市電LT
pastak
3
610
「アクセシビリティを始めたい!」から1年、あれからどうなったのか。
pastak
2
280
「アクセシビリティを始めたい!」から1年、あれからどうなったのか。 〜LTバージョン〜
pastak
1
1.1k
【2024年最新】「エンジニアお茶会」という取り組みについて
pastak
1
580
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Building the Perfect Custom Keyboard
takai
2
950
How to train your dragon (web standard)
notwaldorf
96
6.9k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Typedesign – Prime Four
hannesfritz
42
3.2k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Transcript
Gyazoͷ։ൃͷਐΊํ Pasta-K
[email protected]
2018/10/29(Mon) at DevLOVE Kansai
Pasta-K / @pastak
• ژେֶֶ෦ใֶՊ ܭࢉػՊֶίʔε6ճੜ • KMC ݩใ • Nota Inc Gyazo։ൃνʔϜ
ΞϧόΠτ • JavaScript / React / Ruby on Rails • Browser Extension • גࣜձࣾͯͳ ΞϧόΠτ • TypeScript
• ژେֶֶ෦ใֶՊ ܭࢉػՊֶίʔε6ճੜ • KMC ݩใ • Nota Inc Gyazo։ൃνʔϜ
ΞϧόΠτ • JavaScript / React / Ruby on Rails • Browser Extension • גࣜձࣾͯͳ ΞϧόΠτ • TypeScript
Gyazo Browser Extension
Gyazo Browser Extension • Chrome • https://chrome.google.com/webstore/detail/gyazo/ffdaeeijbbijklfcpahbghahojgfgebo • Firefox •
https://addons.mozilla.org/firefox/addon/gyazo-official/ • MS Edge • https://www.microsoft.com/ja-jp/p/gyazo-extension-for-edge/9nf31nnx69v1 • GitHub • https://github.com/gyazo/gyazo-browser-extension
NOTA Inc and me • 2013/08 ࣌ϦʔυΤϯδχΞΛ͍ͯͨ͠େֶͷઌഐʹ༠ΘΕͯன͝ ΜΛ৯ʹߦͬͨͱ͜ΖɺԿނ͔ͦͷ··ڥߏஙΛͯ͠ΞϧόΠτʹ • ࣌ϝϯόʔ͕૿͑࢝ΊΔલͰগͳ͔ͬͨ
• ҎޙɺChrome Extension͓ֆ͔͖ػೳͷϦχϡʔΞϧͳͲॾʑΛ୲ • ࠷ۙओʹReactͳͲϑϩϯτΤϯυपΓΛ୲
Feature Works • Gyazoͷυϩʔػೳ • Gyazo for Linux ϝϯςφϯε •
Scrapboxͷ֤छมπʔϧ(OSS) • Ϗʔϧൃɾαʔόӡ༻
ఆظతʹϏʔϧൃɾαʔόӡ༻͍ͯ͠·͢
• 201811݄9ɾ10 @ େࡕೆߓATC • OSSίϛϡχςΟΤϯδχΞίϛϡχςΟͳͲͷࡇయ • εςʔδاըͷ࢘ձΔͷͰྑ͚Ε͓ӽ͍ͩ͘͠͞ • https://www.k-of.jp/2018/
Pasta-K / @pastak
ΞδΣϯμ • Gyazoͷ։ൃڥʹ͍ͭͯ • GyazoͱυοάϑʔσΟϯά
͢͜ͱͱ͞ͳ͍͜ͱ • ͢͜ͱ • Gyazoͷ։ൃڥ։ൃख๏ • Gyazoͷ։ൃνʔϜͰͷৼΔ͍ʹ͍ͭͯ • ͞ͳ͍͜ͱ •
͜Ε·Ͱͷ։ൃͰಘͨࡉ͔ͳݟ • GyazoͷΞϓϦέʔγϣϯઃܭ͔Β׆͔ͤΔΞϓϦέʔγϣϯ։ൃςΫχοΫ
։ൃࣗମʹಥͬࠐΜͩΛΓ͍ͨਓ͚ • ReactͱCanvasͰ͓ֆ͔͖ػೳΛ࡞ͬͨ https://blog.pastak.net/entry/2016/08/ 21/165213 • ͓ֆ͔͖ମݧ্࡞ઓ https://blog.pastak.net/entry/2016/10/22/134648 • BrowserExtension࢛ํࢁ
https://speakerdeck.com/pastak/browserextensionsi- fang-shan-hua-number-yapc8oji • ϒϥβ֦ுͷΫϩεϒϥβରԠʹ͍ͭͯͲ͏͖߹͍ͬͯΔ͔ https:// speakerdeck.com/pastak/burauzakuo-zhang-falsekurosuburauzadui-ying- nituitedouxiang-kihe-tuteiruka-number-builderscon
Gyazoͷ։ൃڥʹ͍ͭͯ
ݱࡏͷGyazoͷ։ൃڥʹ͍ͭͯ • ΞϓϦέʔγϣϯ • Ruby on Rails • React /w
flow • Golang • GCP (GCE / Cloud Vision ...etc) • Cloud Flare
ݱࡏͷGyazoͷ։ൃڥʹ͍ͭͯ • ίϛϡχέʔγϣϯ • Slack • GitHub /w ZenHub •
Gyazo • Scrapbox • Google Hangout
ݱࡏͷGyazoͷ։ൃڥʹ͍ͭͯ • جຊతʹશһ͕ϦϞʔτϫʔΫՄೳ • དྷिࡳຈཱྀߦ͕͋ΔͷͰɺͷେ͔ΒϦϞʔτϫʔΫ༧ఆ • ϕτφϜ͔ΒϦϞʔτϫʔΫͨ͜͠ͱ͋Δ • PRGitHubɺٞSlack +
ScrapboxɺԣஅతʹGyazo • ϖΞϓϩVSCode Live ShareSlack௨Ͱ https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare
Chat Ops /w GitHub Bot and CI • PR →
commit͝ͱʹ stagingڥࣗಈੜɾߋ৽ → deployment APIͰ௨ • ninja: release <REPO_NAME> ͱνϟοτʹଧͭͱrelease༻ͷPRͱ֬ೝ༻ ͷڥ͕ߏங͞ΕΔ • ࠷ۙPR͕merge͞ΕΔͱࣗಈͰˢͷൃݴΛͯ͘͠ΕΔΑ͏ʹਐԽ • release༻ͷPR͕merge͞ΕΔͱdeploy։࢝ • جຊతʹશͯͷϓϩδΣΫτͰಉ༷ͷΠϯλʔϑΣΠεΛར༻Ͱ͖Δ
Chat Ops /w GitHub Bot and CI
Chat Ops /w GitHub Bot and CI • ੲࣃΛ৯͍ͬͯ͠खݩͰcapίϚϯυΛଧ͍ͬͯͨࠒ͋ͬͨ •
Chat Opsͱݴ͏͚Ͳɺ࠷ۙνϟοτͷίϚϯυݺͼग़ࣗ͠ಈԽ ͍ͯ͠ΔͷͰɺ࠷ૣνϟοτͰΦϖϨʔγϣϯͯ͠ͳ͍ʹ͍͠ • ศར
λεΫɾਐḿཧ • GitHub /w ZenHub + Scrapbox • ৄ͘͠VPoEͷ@akiroom͕͍ͯ͠Δͣʁ
ͣͬͱมΘ͍ͬͯͳ͍͜ͱ • Ͳ͜Ͱಇ͚Δ • ͱݴͬͯҎલ݁ߏΈΜͳΦϑΟεʹډΔنײͩͬͨ • ࠷ۙσϑΥϧτϦϞʔτϫʔΫͳਓʹΑͬͯ2,3ਓ͔͠Φ ϑΟεʹډͳ͍
ͣͬͱมΘ͍ͬͯͳ͍͜ͱ • Gyazo͕͋ΒΏΔίϛϡχέʔγϣϯͷத৺ʹ͋Δ • GitHubνϟοτʹεΫγϣΛυϯυϯషΔ • Gyazo / Gyazo GIF
• υϩʔػೳͰҹจࣈɺғΈͳͲ • ػೳϨϏϡʔɺσβΠϯϨϏϡʔɺϢʔβʔαϙʔτଧͪฦ͠
Gyazo͕͋ΒΏΔίϛϡχέʔγϣϯͷத৺ʹ͋Δ • PRͷઆ໌Gyazo GIFͰBefore/After ΛࡌͤͯڍಈͷมߋΛΘ͔Γ͘͢ • ϨϏϡʔͷଧͪฦ͠ɺಛʹUIͷ͜ͱΛ ؚΉͱ͖GyazoGIFͰ
গ͠มΘͬͨ͜ͱ • νϟοτπʔϧ • Scrapboxಋೖ • Sprint MTG։࢝ • AWS→GCP
/ CoffeeScript → ES2015 + React +flow
গ͠มΘͬͨ͜ͱ • νϟοτπʔϧ • HipChatΛ͍ͬͯͨ • ಛʹOGPରԠͱ͔ͳ͔ͬͨͷͰɺAddonఏڙ͍ͯͨ͠ • https://marketplace.atlassian.com/apps/1213139 •
2014/8ࠒ SlackҠߦ
গ͠มΘͬͨ͜ͱ • Scrapboxಋೖ • Qiita:TeamΛ͍͕ͬͯͨɺ͋·Γ׆༻Ͱ͖͍ͯͳ͔ͬͨ • ૿Ҫ͞Μ͕࡞͍ͬͯͨgyazzͱ͍͏wikiͷಋೖ͕ܖػ • ॳ͋Μ·ΓੵۃతͰͳ͔ͬͨͷͷ͍࢝ΊΔͱྑ͕͞ਁಁࣾ͠ඪ४Խ •
ίϯηϓτΛܧঝ͠ਐԽͤͯ͞Scrapbox • 1΄Ͳࣾར༻͠βެ։ˠຊϦϦʔε
গ͠มΘͬͨ͜ͱ • Sprint MTGͷಋೖ • ͜͜ৄ͘͠@akiroom͕͍ͯ͠Δͣʁ
গ͠มΘͬͨ͜ͱ • AWS→GCP / CoffeeScript → ES2015 + React +
flow • GyazoࣗମRailsͰॻ͔Ε͍ͯΔΞϓϦέʔγϣϯ • نͦΜͳʹେ͖͘ͳ͍ • ఆظతʹٕज़ελοΫݟͨ͠ΓೖΕସ͑ͨΓ͍ͯ͠Δ • ଞʹPHPͩͬͨΞοϓϩʔυɾαϜωΠϧαʔόΛGoͰॻ͖ͨ͠Γ
ϑϩϯτΤϯυڥͷมભ • ଠݹʙ jQuery UI • 2014/03ʙ AngularJS • 2015/01ʙ
React • 2015/02ʹओཁϖʔδͷશ͕ͯReactʹҠߦ
ϑϩϯτΤϯυڥͷมભ • Rails͕CoffeeScript͕ͩͬͨɺ20154݄ʹBabelಋೖ • 2014/12ʹ asset-pipeline ग़ࡁΈͩͬͨ • 201511݄ʹCoffeeScriptΛґଘ͔Βআ •
͜ͷࠒReactΛ͍ͭͭɺCS, ES5, ES6͕͍ࠞͬͯͨͣ͟ • https://scrapbox.io/pastak-pub/GyazoͷϑϩϯτΤϯυ͔ΒΛऔΓ͍͑ͯ Δͷ͔
Gyazoͷ։ൃڥʹ͍ͭͯ • جຊతͳϑΟϩιϑΟʔҰ؏͍ͯ͠Δ • ϦϞʔτͰඇಉظͰಇ͚Δɻ • GyazoScrapboxɺࣗͨͪͷπʔϧ͕ಇ͖ํͷίΞʹ͋Δɻ • ۃྗ৭Μͳ͜ͱΛαϘΕΔΑ͏ʹɻChat Ops͔ΒChatཁૉࣺ͑ͯ͞Δɻ
• ΞϓϦέʔγϣϯελοΫͲΜͲΜมߋ͢Δ • ୭ͰมߋՄೳ • ͜ͷล࣍ͷষͰ͠·͢
GyazoͱυοάϑʔσΟϯά
Gyazoͷ৽ػೳͷੜ·Εํ • Ϗδωεతͳཁ • VPoEͱ͔͔Βཔ·ΕͯSprintͷλεΫʹΈࠐ·ΕΔ • υοάϑʔσΟϯά͔Βͷൃੜ • ͬͪ͜ͷΛ͠·͢
υοάϑʔσΟϯά υοάϑʔσΟϯάͱɺγεςϜαʔϏεΛ։ൃऀ͕ࣗੵۃ తʹར༻ͯ͠ɺվળ͖͢ΛࣗΒൃݟ͍ͯ͘͠ɺͱ͍͏ औΓΈͷ͜ͱͰ͋Δɻਖ਼ࣜϦϦʔεલͷαʔϏεΛݕূ͢Δख๏ ͱͯ͠ݴٴ͞ΕΔ͜ͱ͋ΕɺϦϦʔεޙͷαʔϏεΛৗతʹ ༻͍ͯվળΛݟग़͢ӦΈΛࢦ͢ޠͱͯ͠ݴٴ͞ΕΔ͜ͱ͋Δɻ from https://www.weblio.jp/content/υοάϑʔσΟϯά
Gyazo։ൃνʔϜͷ߹ݴ༿ • Move Fast and Break Things • ݩFacebookͷϞοτʔ •
ʰૉૣ͘ߦಈ͠ഁյͤΑʱ • ҊͣΔΑΓ࢈Ή͕қ͠ • ΞϓϦέʔγϣϯΛͲΜͲΜഁյతʹมԽ͍ͤͯ͘͜͞ͱΛڪΕͳ͍
Gyazo։ൃνʔϜͷ߹ݴ༿ • ͱʹ͔͘σϞϑΝʔετ • σϞΛେࣄʹ͍ͯ͠Δ • ΞΠσΞΛٞ͢Δͱ͖݁ہ࡞ͬͯΈͳ͍ͱ͔Βͳ͍ • ࢥͬͨΑΓྑ͍ /
ࢥͬͨΑΓѱ͍(͚ͲΑ͘Ͱ͖ͦ͏) • উखʹ໘ന৽ػೳΛ࡞ͬͯσϞͯ͠ɺϦϦʔεৗ൧ࣄ
υϩʔػೳͷ৽ػೳσϞϑΝʔετ • GyazoͷProϓϥϯ͚ػೳͱͯ͠υϩʔ(͓ֆඳ͖)ػೳ͕͋Δ • ॳظͷػೳ: ࢛֯Ͱғ͏ɺઢΛҾ͘ɺҹΛ͢ɺจࣈೖΕ
υϩʔػೳͷ৽ػೳσϞϑΝʔετ • GyazoͷProϓϥϯ͚ػೳͱͯ͠υϩʔ(͓ֆඳ͖)ػೳ͕͋Δ • ॳظͷػೳ: ࢛֯Ͱғ͏ɺઢΛҾ͘ɺҹΛ͢ɺจࣈೖΕ • ݱߦͷػೳ: ϖϯπʔϧɺ࢛֯ͰృΓͭͿ͠ɺελϯϓɺϞβΠΫ •
ͦΕΒͷ࠶ฤूॏͶ߹ΘͤॱΓସ͑ɺ৭ಁ໌ͷࣗ༝બ
υϩʔػೳͷ৽ػೳσϞϑΝʔετ • GyazoͷProϓϥϯ͚ػೳͱͯ͠υϩʔ(͓ֆඳ͖)ػೳ͕͋Δ • ॳظͷػೳ: ࢛֯Ͱғ͏ɺઢΛҾ͘ɺҹΛ͢ɺจࣈೖΕ • ݱߦͷػೳ: ϖϯπʔϧɺ࢛֯ͰృΓͭͿ͠ɺελϯϓɺϞβΠΫ •
ͦΕΒͷ࠶ฤूॏͶ߹ΘͤॱΓସ͑ɺ৭ಁ໌ͷࣗ༝બ ͜͜࡞ઓΛ࿅ͬͯ࠶ઃܭͨ͠͠
υϩʔػೳͷ৽ػೳσϞϑΝʔετ • GyazoͷProϓϥϯ͚ػೳͱͯ͠υϩʔ(͓ֆඳ͖)ػೳ͕͋Δ • ॳظͷػೳ: ࢛֯Ͱғ͏ɺઢΛҾ͘ɺҹΛ͢ɺจࣈೖΕ • ݱߦͷػೳ: ϖϯπʔϧɺ࢛֯ͰృΓͭͿ͠ɺελϯϓɺϞβΠΫ •
ͦΕΒͷ࠶ฤूॏͶ߹ΘͤॱΓସ͑ɺ৭ಁ໌ͷࣗ༝બ ීஈͷ༻ࡶஊͷத͔Βศརͦ͏ͳ ΞΠσΞΛউखʹ࣮ͯ͠PR stagingͰσϞΛͯ͠ྑ͍ײ৮ͩͬͨ ͷͰͦͷ··͑ͯϦϦʔε
ͲΜͲΜσϞ͢Δ • ୭ͰGyazoʹؔΘΔશͯͷίʔυΛ(PRΛհͯ͠)มߋͰ͖Δ • ͳΜ͔ཉ͍͠ػೳɺʑͷจ͕۟͋ΕPRͰઓ͏ • ʮͳΜ͔γϡοͱࢼͨ͠ΒΕͦ͏ͩͳʯͱࢥͬͨΒ·͊ͬͯΈΔ • ΊͬͪΌ͔͔࣌ؒΔͳΒ૬ஊɺͦ͏͡Όͳ͔ͬͨΒγϨοͱΔ •
ͦͷลSprint MTGͰԹײΛڞ༗
γϡοͱͬͨΒग़དྷͨྫ • Browser ExtensionͷHTMLཁૉͷBoxʹ߹ΘͤͯͷΓऔΓ • ඞཁͩͱࢥͬͯͳ͔͚ͬͨͲɺࣾͷҰ෦͔Βͷͳཁ • ృΓͭͿ͠ػೳ • ʮ࢛֯ඳ͍ͯΔ͔ͩΒதΛృΔ͚ͩ͡ΌΜʁʯ
• ϞβΠΫػೳ • ʮ࢛֯ͷྖҬऔಘ͢Δํ๏͋ΔͳΒྲྀ༻ͯ͠ൣғΛϞβΠΫॲཧ͢Ε͍͍͡ΌΜʯ
γϡοͱͬͨΒྑ͔ͬͨͷͰߟʹೖͬͨྫ • HipChat / Slack BotͬͨΒศརͱ͍͏͜ͱ͕໌֬ʹ͔͍ͬͯͨͷ Ͱɺ༻ײΛࢼͨ͢ΊͷࡶͳϓϩτλΠϓͰ࣮ફͯ͠Έ͔ͯΒɺͪΌΜ ͱॻ͖ͨ͠ • υϩʔػೳͷϦϓϨΠεͦΕ·Ͱʹͳ͔ͬͨר͖͠ʢཤྺʣػೳ
ཁૉͷೖΕସ͑ɾ࠶ฤूΛ࡞ͬͨͷͰɺUI/UXؚΊ͔ͯͳΓͷ͕ٞ͋ͬ ͨɻઃܭReactΛͬͯ࠶ઃܭ͍ͯͨ͠ • ͜Ε࠷ॳͷσϞௗऔͰϦϞʔτϫʔΫ͠Α͏ͱߦͬͨͱ͖ʹॻ͍ͨ
A/Bςετ • A/BςετΛ͍͕ͬͯͨ࣌͋ͬͨࠓ΄΅͍ͬͯͳ͍ • ͲΜͲΜdeployͨ͠Γrollbackग़དྷΔΈ͕͋ΔͷͰɺΤΠϠ ͱग़ͯ͠վળΛॏͶ͍ͯ͘ελΠϧ • υϩʔػೳͷվળग़͔ͯ͠Βඍमਖ਼Λ͢Δ͜ͱଟʑ͋Δ
ελοϑ͚ػೳ
ελοϑ͚ػೳ • A/BςετͷΘΓʹελοϑ͚ػೳΛ؆୯ʹ࣮Ͱ͖ΔΑ͏ʹ ΈΛ༻ҙ͍ͯ͠Δ • ྫ͑৽σβΠϯυϩʔػೳͷϦϓϨΠεͳͲӨڹ͕େ͖͍ ͷ࡞Γͳ͕ΒελοϑڥͰʑυοάϑʔσΟϯά͍ͯ͠Δ • PR͕େ͖͘ͳΓ͗͢Δ͜ͱΛ͙෭࡞༻͋Δ
• Gyazoͷ։ൃڥʹ͍ͭͯ͠·ͨ͠ • GyazoScrapboxͳͲΛͬͯϦϞʔτͰշదʹա͍ͯ͝͠·͢ • υοάϑʔσΟϯάΛߴʹ৯ΔͨΊʹͱʹ͔͘σϞΛେࣄʹ͍ͯ͠ ·͢ • ͦΕΛ׆͔ͨ͢ΊʹͲΜͲΜϦϦʔε͍ͯ͘͠ͱ͍͏࡞ઓʹͳ͍ͬͯ·͢ •
Sprint MTGͰ͜ΕΒΛϢϧ͘ཧ͞Ε͍ͯ·͢ ·ͱΊ