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
Cloud Vision APIと Algoliaで 画像検索を開発した話 / a devel...
Search
meijin
October 31, 2019
Technology
0
120
Cloud Vision APIと Algoliaで 画像検索を開発した話 / a development of image searching by cloud-vision-api and algolia
meijin
October 31, 2019
Tweet
Share
More Decks by meijin
See All by meijin
Technical Decisions and Reflections on "Test Maker" After Two Years of Development
texmeijin
1
27
弊社の「意識チョット低いアーキテクチャ」10選
texmeijin
5
25k
DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話【デブサミ2024夏】
texmeijin
3
1.7k
サービス黎明期にNuxt.js v2からNext.js移行を決めた理由と進め方
texmeijin
0
370
スタートアップCTOが個人開発で収益化・年13本記事発信・5件登壇を平行するための時間管理
texmeijin
4
1.1k
個人開発がおすすめな理由
texmeijin
3
950
弊社の開発体験の良いところは?メンバーに訊いてみた!
texmeijin
0
390
初めてESLintプラグインにコントリビュートした話
texmeijin
0
160
先生と一緒に プロダクトを良くする アナリティクス機能の開発
texmeijin
0
72
Other Decks in Technology
See All in Technology
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
380
偏光画像処理ライブラリを作った話
elerac
1
140
Apache Iceberg Case Study in LY Corporation
lycorptech_jp
PRO
0
190
データマネジメントのトレードオフに立ち向かう
ikkimiyazaki
6
1.2k
「正しく」失敗できる チームの作り方 〜リアルな事例から紐解く失敗を恐れない組織とは〜 / A team that can fail correctly
i35_267
2
600
ユーザーストーリーマッピングから始めるアジャイルチームと並走するQA / Starting QA with User Story Mapping
katawara
0
270
Goで作って学ぶWebSocket
ryuichi1208
3
2.3k
わたしのOSS活動
kazupon
2
320
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
150
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
180
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
0
170
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
300
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Making Projects Easy
brettharned
116
6k
Fireside Chat
paigeccino
34
3.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
560
Bash Introduction
62gerente
611
210k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Transcript
$MPVE7JTJPO"1*ͱ "MHPMJBͰ ը૾ݕࡧΛ։ൃͨ͠ ΤϯδχΞ໊ͷ ڭҭελʔτΞοϓ͕
ΞδΣϯμ w ࣗݾհ w ը૾ݕࡧͷ֓ཁͱ͖͔͚ͬ w $MPVE7JTJPO"1* w "MHPMJB w
$MPVE7JTJPO"1*ͱ"MHPMJBΛΈ߹ΘͤΔ w ࠷ޙʹ
ࣗݾհ
ࣗݾհ w ໊ਓʢ!.FJKJO@HBSEFOʣ w גࣜձࣾ/P4DIPPM$50 w ʙ·Ͱ גࣜձࣾ-*'6--Ͱ8FCΤϯδχΞ w ΑΓ/P4DIPPMʹస৬ʢࣾͱਓʣ
w झຯɿમ౬ɺυϥΫΤ‡ɺকعɺߴߍٿ
/P4DIPPMͷհ w Ոఉڭࢣɾक़ߨࢣ͕ແྉͰճ͢Δษڧ࣭αΠτ w IUUQTOPTDIPPMBTJB w ࠓ݄J04ΞϓϦϦϦʔε͠·ͨ͠ w ."6͓Αͦສਓ͘Β͍ ࣌
w தߴੜ͕ษڧͷͲ͜Ͱ͍᪴ͯɺͦΕʹରͯ͠ ͲΜͳճ͕͔ͬͨ͞ͷσʔλ͕ੵ͞ΕΔ
ը૾ݕࡧͷ ֓ཁͱ͖͔͚ͬ
ը૾ݕࡧͷ֓ཁ w Θ͔Βͳ͍ΛࡱӨͯ͠ݕࡧˠ͍͕ۙώοτʂ
ݕࡧͷ*OQVU0VUQVU w ݕࡧ͍ͨ͠Պ ʢֶɺӳޠɺཧʜʣ w खݩͷͷࣸਅ w ྨࣅ͍ͯ͠Δ࣭ ࠷େ্Ґ w
/P4DIPPM্ʹ͋Δ ྦྷܭສͷ࣭ͷ ຊจఴը૾ */165 065165
͖͔͚ͬ w ษڧ࣭αΠτɺճͷՁ͕ʲॠؒతʳ w ษڧྲྀߦΓഇΓ͕গͳ͍ྖҬͰ͋Δ͔Βɺ Ұ͞Εͨճຖͣͬͱʹཱͪଓ͚Δͣ w աڈͷճΛߴਫ਼ͰؾܰʹݕࡧͰ͖ΔΈΛ Δ͜ͱͰɺֶੜ͕Ή࣌ؒΛ͘ɺઌੜʹͱͬͯ ճ͢ΔखؒΛݮΒ͍ͨ͠
ษڧͷ࣭ը૾ͷಛ w ͍͍ͩͨಉ͡Α͏ͳݟͨ ࢴʹ͍จষ͕ͭΒͭΒͱଧͬͯ͋Δ w ಛతͳ୯ޠؚ͕·ΕΔ͜ͱ͕ଟ͍ zਫ༹ӷzɹzؐݩࡎzɹz॥খzɹzՃ๏ఆཧz ը૾ࣗମͷྨࣅΑΓɺ ը૾ʹؚ·ΕΔจࣈྻͷۙ͞ ͷ΄͏͕ݕࡧʹద͍ͯ͠ΔͷͰʁ
$MPVE7JTJPO "1*
$MPVE7JTJPO"1*ͱ w ֶशࡁΈͷը૾ղੳ"*Λ"1*ܦ༝Ͱར༻Ͱ͖Δ w (PPHMF$MPVE1MBUGPSN্Ͱఏڙ w ϦΫΤετʹର͢Δॏྔ՝ۚ w ੳλΠϓʹ͍͔ͭ͋͘Δ͕ɺ ࠓճʲ5&95@%&5&$5*0/ʳΛར༻
ղੳͷਫ਼ʢ0$3ຊޠʣ
ղੳͷਫ਼ʢ0$3ຊޠʣ <ݻԁӡಈuສ༗Ҿྗ Ԃ ԁද໘Λ͢ΓམͪΔখମͷӡಈʫ ͷΑ͏ʹ ͳΊΒ͔ͳද໘ΛͭܘSͷԁ͕ ਫฏͳচʹ ͯ͠ݻఆ͞Ε͍ͯΔɻ࣭ྔ.ͷখମ͕࠷ߴ1͔Β੩͔ʹ͢Γ ͩ͠ɺ2Λ௨աͯ͠4Ͱԁද໘͔ΒΕচʹམͪͨɻԁͷத
৺Λ ;102 ॏྗՃͷେ͖͞ΛHͱͯ͠ ࣍ͷ͍ʹ ͑Αɻ খମ͕2Λ௨ա͢Δͱ͖ͷ͍͘͞Β͔ɻ 2ʹ͓͚Δখମʹ࡞༻͢Δ߅ྗͷେ͖͍͘͞Β͔ɻ ;104ͱ͢Δͱ͖ DPTP͍͘Β͔ɻ 4Ͱԁද໘͔ΒΕΔॠؒͷখମͷ͍͘͞Β͔ɻ খମΛ1͔Β ԁ࣠ʹਨͰ͔ͭਫฏʹ ॳΛ༩͑ͯଧͪग़͢
ͦͦ͜͜ ਫ਼͕ߴ͍
"MHPMJB
"MHPMJBͱ w શจݕࡧΤϯδϯΛఏڙ͢ΔαʔϏε w ͷ͍͢͝ྔͷςΩετ͔ΒɺݕࡧจࣈྻΛؚΉ จࣈྻΛݟ͚ͭͯ͘ΕΔ (PPHMFݕࡧʹ͍ۙ͜ͱ͕Ͱ͖Δ w ݄υϧͰ"1*੍͕ݶ·Ͱར༻͠์ ݸਓͰ͓ߴΊ͚ͩͲɺ๏ਓʹͱ͍ͬͯ҆
"MHPMJBΛ͏खॱʢࡶʹʣ ݕࡧରͱͳΔେྔͷจࣈྻΛ"MHPMJBʹJNQPSU αʔϏεଆͰ"MHPMJB4%,ΛJNQPSU "1*Λୟ࣮͓͘Αͼݕࡧύϥϝʔλͷௐ ϢʔβʔͷJOQVUΛIPPLͯ͠"1*Λୟ͘
-BSBWFM4DPVU w -BSBWFMͱ"MHPMJBΛ࿈ܞͯ͘͠ΕΔϥΠϒϥϦ w IUUQTSFBEPVCMFDPNMBSBWFMKB TDPVUIUNM w -BSBWFMͷ.PEFMΛ֦ு σʔλอଘ࣌ʹࣗಈͰࢦఆͨ͠σʔλΛ ·ͱΊͯ"MHPMJBಥͬࠐΉ
࣮ࡍͷ$PEFʢฤूࡁΈʣ w .PEFMʹUP4FBSDIBCMF"SSBZ Λ࣮ ˠ͜͜ͰSFUVSOͨ͠༰͕"MHPMJBʹJNQPSU w ݕࡧͷखॿ͚ʹͳΔσʔλ JEΛҰॹʹೖΕΔ
ݕࡧରจࣈྻͷJNQPSU w -BSBWFM4DPVUΛ͍ͬͯΔͳΒ QIQBSUJTBOTDPVUJNQPSUl.PEFMOBNFz ͰऴΘΓ
"MHPMJB"1*Λୟ͘ʢฤूࡁΈʣ w -BSBWFM4DPVUʹΑΓ.PEFMʹTFBSDI ϝιου͕࣮͞Ε͍ͯΔ w ݕࡧΦϓγϣϯͰՃGJMUFSࢦఆͰ͖Δ
$MPVE7JTJPO"1*ͱ "MHPMJBΛΈ߹ΘͤΔ
0$3ͱશจݕࡧͷϑϩʔ ᶃϢʔβʔ͕ͷ ɹը૾ΛΞοϓϩʔυ ᶄ$MPVE7JTJPO"1*Ͱ ɹςΩετΛݕग़͢Δ ᶅݕग़ͨ͠ςΩετͰ ɹ"MHPMJB͔Βશจݕࡧ ᶆݕࡧ݁Ռͷ࣭Λ ɹ࠷େ݅දࣔ $-*&/5
4&37&3
طଘ"1*ͷ Έ߹Θ͚ͤͩͰ ը૾ݕࡧͰ͖ͨ
ࠓޙͷల w ςΩετͷྨࣅ͚ͩͩͱݶք͕͋Δ w શ͘ಉ͡ͳΒҾ͔͔ͬΔ͕ɺ ݟ͔ͭΒͳ͍ͱਫ਼͕མͪΔ w XPSEWFDͳͲΛར༻͠ɺҙຯͷྨࣅ·Ͱ ߟ্ྀͨ͠Ͱݕࡧ݁ՌΛٻΊ͍ͨ w
༧ΊΫϥελϦϯά্ͨ͠Ͱݕࡧ͢Δͱ͔
࠷ޙʹ
Ұॹʹߟ͑ͯ͘ΕΔํΛืूத w /P4DIPPM্ͷσʔλΛੳͯ͠Կ͕Ͱ͖Δ͔ʁ ·ͨ ͜Ε͔ΒͲ͏͍ͬͨσʔλΛूΊΔඞཁ͕͋Δ͔ʁ w ͲΜͳٕज़͕͑ͦ͏͔ ࢥ͍͍ͭͨํڭ͚͑ͯΔͱخ͍͠Ͱ͢ʂ w 5XJUUFS!.FJKJO@HBSEFOʢ໊ਓ͞Μʣ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠