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
新サービス・JOURNAL(ジャーナル)開発秘話
Search
pipopotamasu
November 26, 2018
2
210
新サービス・JOURNAL(ジャーナル)開発秘話
pipopotamasu
November 26, 2018
Tweet
Share
More Decks by pipopotamasu
See All by pipopotamasu
How JS Works
pipopotamasu
0
170
vue-function-tester
pipopotamasu
2
1.1k
Dive into vue-test-utils ~~Road of 1.0.0~~
pipopotamasu
0
88
medpacker_introduction_20190523
pipopotamasu
0
480
Introduction of medpacker: RoR Frontend Boilerplate
pipopotamasu
0
4.7k
メドピアにおけるライブラリアップデート_MedBeer_20180912.pdf
pipopotamasu
0
12k
MedPeer_JapaxTaxi_MeetUp_Actioncable
pipopotamasu
0
480
MedPeer X みんなのウェディング合同勉強会
pipopotamasu
0
1k
UXBridge_vol3_pipopotamasu
pipopotamasu
2
860
Featured
See All Featured
Bash Introduction
62gerente
610
210k
Being A Developer After 40
akosma
89
590k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
860
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Practical Orchestrator
shlominoach
186
10k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Site-Speed That Sticks
csswizardry
2
270
Transcript
৽αʔϏεɾJOURNAL(δϟʔφϧ) ։ൃൿ ϝυϐΞגࣜձࣾ ϑϩϯτΤϯυΤϯδχΞ ଜ্ େ(@pipopotamasu3) MedBeer 2018/11/21
self_introduce.json { “name”: “ଜ্େ”, “age”: 26, “github”: “pipopotamasu”, “company”: “ϝυϐΞגࣜձࣾ”,
“tech”: [“Ruby”, “PHP”, “Vue.js”, “React”], “hobby”: [“ٿ”], }
https://jp.vuejs.org/v2/cookbook/ creating-custom-scroll-directives.html
Agenda 1. JOURNAL is Կ? 2. JOURNALͷγεςϜߏ 3. ্࣮ͷ՝ͱղܾͷͨΊͷΞϓϩʔν 4.
ऴΘΓʹ
Agenda 1. JOURNAL is Կ? 2. JOURNALͷγεςϜߏ 3. ্࣮ͷ՝ͱղܾͷͨΊͷΞϓϩʔν 4.
ऴΘΓʹ
None
ҩֶจͷ༁ɺڞ༗αʔϏε
՝ ඞཁͳใબఆͷࠔ͞ ɾҩྍใେͰʑߋ৽͞Εͯ ͍ΔɻҩࢣʹͱͬͯඞཁͳใΛબ ఆ͢ΔʹςΫχοΫͱ͕࣌ؒඞ ཁɻ ӳޠจ͕ಡΈͮΒ͍ ɾҩֶจӳޠ͔ͭʮจޠʯͰ ॻ͔Ε͍ͯΔͨΊɺจΛಡΈཧղ ͢Δͷʹ͕͔͔࣌ؒΔ
จΛಡΉश׳͚ͮͷ͠͞ ɾ্هͷ՝ͰɺӳޠจΛಡΉͷ ʹଟେͳ࿑ྗ͕͔͔Γश׳Խ͕͠ ͍ɻ
՝ ղܾͷͨΊͷΞϓϩʔν ඞཁͳใબఆͷࠔ͞ ɾҩྍใେͰʑߋ৽͞Εͯ ͍ΔɻҩࢣʹͱͬͯඞཁͳใΛબ ఆ͢ΔʹςΫχοΫͱ͕࣌ؒඞ ཁɻ ඞཁͳใͷϨίϝϯυ ɾҩࢣຊਓͷઐྖҬؔ৺ྖҬͰ ݕࡧɾϑΟϧλϦϯάɺจࣗମͷ
ධՁใͷͰॏΈ͚ͮɻ ӳޠจ͕ಡΈͮΒ͍ ɾҩֶจӳޠ͔ͭʮจޠʯͰ ඳ͔Ε͍ͯΔͨΊɺจΛಡΈཧղ ͢Δͷʹ͕͔͔࣌ؒΔ ӳޠจΛಡΈ͘͢ ɾҩֶจΛຊޠ༁ͯ͠ఏڙ͢ Δ͜ͱͰɺཧղ͢Δ࣌ؒΛॖɻ จΛಡΉश׳͚ͮͷ͠͞ ɾ্هͷ՝ͰɺӳޠจΛಡΉͷ ʹଟେͳ࿑ྗ͕͔͔Γश׳Խ͕͠ ͍ɻ จΛಡΉश׳͚ͮͷαϙʔτ ɾ্هͷ՝ͷղܾٴͼɺؔ৺ͷ͋ Δʹඥ͍ͨใͷ164)Ͱश ׳Խͷखॿ͚ɻ
None
Agenda 1. JOURNAL is Կ? 2. JOURNALͷγεςϜߏ 3. ্࣮ͷ՝ͱղܾͷͨΊͷΞϓϩʔν 4.
ऴΘΓʹ
None
ɾ1700ສ݅ͷӳޠจ σʔλΛϩʔϯνલʹऔಘ ɾϩʔϯνޙ࣌ͰՃɺ ߋ৽͞ΕΔσʔλΛऔಘ
Translate Service Providers ɾ1700ສ݅ͷӳޠจ σʔλͷҰ෦Λຊޠ༁ ɾϩʔϯνޙ࣌ or ΦϯσϚϯυͰ༁
Translate Service Providers Elasticsearch ɾจσʔλΛ Elasticsearchʹಉظ
Translate Service Providers Elasticsearch ɾҩࢣͷଐੑจͷධՁɺ ʹ߹Θͤͯจσʔλ Λදࣔ ɾຊޠͰจσʔλΛݕࡧ (ͪΖΜӳޠͰ)
Agenda 1. JOURNAL is Կ? 2. JOURNALͷγεςϜߏ 3. ্࣮ͷ՝ͱղܾͷͨΊͷΞϓϩʔν 4.
ऴΘΓʹ
্࣮ͷ՝ͱղܾͷͨΊͷ Ξϓϩʔν 1. ༁ 2. ຊޠݕࡧ 3. ίϝϯτ
্࣮ͷ՝ͱղܾͷͨΊͷ Ξϓϩʔν 1. ༁ 2. ຊޠݕࡧ 3. ίϝϯτ
Translate Service Providers ɾ1700ສ݅ͷӳޠจ σʔλͷҰ෦Λຊޠ༁ ɾϩʔϯνޙ࣌ or ΦϯσϚϯυͰ༁
શ෦͢ΕΑ͘Ͷ?
[ӳޠจ] 1700ສ݅ [ฏۉจࣈ] 1300จࣈ(λΠτϧ100จࣈ, ུ֓1200จࣈ) [߹ܭจࣈ] 221ԯจࣈ(1700ສ * 1300)
[༁ۚ] 100ສจࣈ͋ͨΓ20υϧ [߹ܭֹۚ] (221ԯจࣈ/100ສจࣈ) * 20 = ?
5000ສԁ
None
None
5000ສԁ / 8200ສԁ = 61%
ʘ(^o^)ʗ
͕ۚͳ͍ orz
Translate Service Providers ɾ1700ສ݅ͷӳޠจ σʔλͷҰ෦Λຊޠ༁ ɾϩʔϯνޙ࣌ or ΦϯσϚϯυͰ༁
ΦϯσϚϯυ༁ͷ࣮ԋ
ݟΒΕΔ͚ͩ༁͠ɺ͓ۚΛઅ
5000ສԁ ↓ 400 + α ສԁ
ݟΒΕΔ͚ͩ༁͠ɺ͓ۚΛઅ ↓ Ϣʔβͷ༁͕ͪ࣌ؒൃੜ
ʹ Translate Service Providers ༁ϑϩʔ
ʹ Translate Service Providers ᶃ HTML, CSS, JS, ը૾ͷ Ξηοτऔಘ
ʹ Translate Service Providers ᶄ Active JobͰඇಉظʹ༁
ʹ Translate Service Providers ᶅ ༁݁ՌऔಘͷͨΊ ϙʔϦϯά
ʹ Translate Service Providers ᶆ ༁ྃ
ʹ Translate Service Providers ᶇ ༁݁ՌΛϢʔβʹදࣔ
ʹ Translate Service Providers ͪ࣌ؒ
Ͳ͏ͪ࣌ؒΛݮΒ͔͢
ʹ Translate Service Providers վળͰ͖ͳ͍ͪ࣌ؒ
ʹ Translate Service Providers վળͰ͖Δͪ࣌ؒ
ϙʔϦϯά • ༁ྃࡁΈ͔Ͳ͏͔Λఆظతʹ͍߹ΘͤΔ
ϙʔϦϯά • ༁ྃࡁΈ͔Ͳ͏͔Λఆظతʹ͍߹ΘͤΔ • ༁ྃͱϙʔϦϯάͷఆظ͍߹ΘͤͰ࣌ ͕ۭؒ͘Մೳੑ͕͋Δ
ϙʔϦϯά • ༁ྃࡁΈ͔Ͳ͏͔Λఆظతʹ͍߹ΘͤΔ • ༁ྃͱϙʔϦϯάͷఆظ͍߹ΘͤͰ࣌ ͕ۭؒ͘Մೳੑ͕͋Δ • ͍߹ΘִͤؒΛ٧Ί͗͢ΔͱɺηϧϑDoS߈ ܸʹͳΔ
Ͳ͏͢Ε༁ྃͱϢʔβը໘ͷදࣔ ͷΦʔόʔϔουΛݮͰ͖Δ͔?
WebSocket
WebSocket • αʔόͱΫϥΠΞϯτͷํ௨৴Λ࣮ݱ͢Δ ͨΊͷن
WebSocket • αʔόͱΫϥΠΞϯτͷํ௨৴Λ࣮ݱ͢Δ ͨΊͷن • ϦΞϧλΠϜੑͷߴ͍ΞϓϦέʔγϣϯ (νϟοτΞϓϦ)ͰΑ͘༻͞ΕΔ
WebSocket • αʔόͱΫϥΠΞϯτͷํ௨৴Λ࣮ݱ͢Δ ͨΊͷن • ϦΞϧλΠϜੑͷߴ͍ΞϓϦέʔγϣϯ (νϟοτΞϓϦ)ͰΑ͘༻͞ΕΔ • ࠓճͷ՝ʹԠ༻Ͱ͖ΔͷͰ?
ʹ Translate Service Providers ᶃ HTML, CSS, JS, ը૾ͷ Ξηοτऔಘ
ʹ Translate Service Providers ᶄ Active JobͰඇಉظʹ༁
ʹ Translate Service Providers ᶅ ༁݁ՌऔಘͷͨΊ ϙʔϦϯά
ʹ Translate Service Providers ᶅ ༁݁ՌऔಘͷͨΊ ϙʔϦϯά
ʹ Translate Service Providers ᶅ WebSocketίωΫγϣϯཱ֬ 8FC4PDLFU$POOFDUJPO
ʹ Translate Service Providers 8FC4PDLFU$POOFDUJPO ᶆ ༁ྃ
ʹ Translate Service Providers 8FC4PDLFU$POOFDUJPO ᶇ ༁݁ՌΛϢʔβʹදࣔ
ʹ Translate Service Providers վળͰ͖Δͪ࣌ؒ
ϙʔϦϯάͷ࣌ؒॖ
্࣮ͷ՝ͱղܾͷͨΊͷ Ξϓϩʔν 1. ༁ • ΦϯσϚϯυ༁ • WebSocketʹΑΔ࣌ؒॖ 2. ຊޠݕࡧ
3. ίϝϯτ
্࣮ͷ՝ͱղܾͷͨΊͷ Ξϓϩʔν 1. ༁ 2. ຊޠݕࡧ 3. ίϝϯτ
Translate Service Providers ɾ1700ສ݅ͷӳޠจ σʔλͷҰ෦Λຊޠ༁ ɾϩʔϯνޙ࣌ or ΦϯσϚϯυͰ༁ ଟ͘ͷ෦͕ະ༁ ˠӳޠ
՝ ղܾͷͨΊͷΞϓϩʔν ඞཁͳใબఆͷࠔ͞ ɾҩྍใେͰʑߋ৽͞Εͯ ͍ΔɻҩࢣʹͱͬͯඞཁͳใΛબ ఆ͢ΔʹςΫχοΫͱ͕࣌ؒඞ ཁɻ ඞཁͳใͷϨίϝϯυ ɾҩࢣຊਓͷઐྖҬؔ৺ྖҬͰ ݕࡧɾϑΟϧλϦϯάɺจࣗମͷ
ධՁใͷͰॏΈ͚ͮɻ ӳޠจ͕ಡΈͮΒ͍ ɾҩֶจӳޠ͔ͭʮจޠʯͰ ඳ͔Ε͍ͯΔͨΊɺจΛಡΈཧղ ͢Δͷʹ͕͔͔࣌ؒΔ ӳޠจΛಡΈ͘͢ ɾҩֶจΛຊޠ༁ͯ͠ఏڙ͢ Δ͜ͱͰɺཧղ͢Δ࣌ؒΛॖɻ จΛಡΉश׳͚ͮͷ͠͞ ɾ্هͷ՝ͰɺӳޠจΛಡΉͷ ʹଟେͳ࿑ྗ͕͔͔Γश׳Խ͕͠ ͍ɻ จΛಡΉश׳͚ͮͷαϙʔτ ɾ্هͷ՝ͷղܾٴͼɺؔ৺ͷ͋ Δʹඥ͍ͨใͷ164)Ͱश ׳Խͷखॿ͚ɻ
՝ ղܾͷͨΊͷΞϓϩʔν ඞཁͳใબఆͷࠔ͞ ɾҩྍใେͰʑߋ৽͞Εͯ ͍ΔɻҩࢣʹͱͬͯඞཁͳใΛબ ఆ͢ΔʹςΫχοΫͱ͕࣌ؒඞ ཁɻ ඞཁͳใͷϨίϝϯυ ɾҩࢣຊਓͷઐྖҬؔ৺ྖҬͰ ݕࡧɾϑΟϧλϦϯάɺจࣗମͷ
ධՁใͷͰॏΈ͚ͮɻ ӳޠจ͕ಡΈͮΒ͍ ɾҩֶจӳޠ͔ͭʮจޠʯͰ ඳ͔Ε͍ͯΔͨΊɺจΛಡΈཧղ ͢Δͷʹ͕͔͔࣌ؒΔ ӳޠจΛಡΈ͘͢ ɾҩֶจΛຊޠ༁ͯ͠ఏڙ͢ Δ͜ͱͰɺཧղ͢Δ࣌ؒΛॖɻ จΛಡΉश׳͚ͮͷ͠͞ ɾ্هͷ՝ͰɺӳޠจΛಡΉͷ ʹଟେͳ࿑ྗ͕͔͔Γश׳Խ͕͠ ͍ɻ จΛಡΉश׳͚ͮͷαϙʔτ ɾ্هͷ՝ͷղܾٴͼɺؔ৺ͷ͋ Δʹඥ͍ͨใͷ164)Ͱश ׳Խͷखॿ͚ɻ
None
ະ༁ͷ෦͕ຊޠͷݕࡧʹ Ҿ͔͔ͬΒͳ͍
Ͳ͏ະ༁ͷ෦Λ ຊޠݕࡧͰ͖ΔΑ͏ʹ͢Δ͔
Elasticsearch Synonym Token Filter https://www.elastic.co/guide/en/elasticsearch/reference/ current/analysis-synonym-tokenfilter.html
Synonym Token Filter ಉҙޠྨٛޠΛઃఆͰ͖Δػೳ Ex) i-pod, i pod => ipod
ͱ͍͏ఆٛͰ͋Ε(expand: trueͷ߹) ʮi-podʯͰݕࡧ → ʮi podʯʮipodʯʹώοτ ʮi podʯͰݕࡧ → ʮi-podʯʮipodʯʹώοτ
Synonym Token Filter ಉҙޠྨٛޠΛઃఆͰ͖Δػೳ ͜ΕΛ͍ɺຊޠ/ӳޠΛؔ࿈͚Δ ߴ݂ѹ => hypertension ΠϯϑϧΤϯβ =>
influenza
Synonym Token Filter ಉҙޠྨٛޠΛઃఆͰ͖Δػೳ
େͳͷSynonymΛࣗલͰ ఆٛ͢Δͷࠔ(ಛʹҩֶ༻ޠ)
༁ձ༷ࣾΑΓҩྍʹಛԽͨࣙ͠ॻΛߪೖ
༁ձ༷ࣾΑΓҩྍʹಛԽͨࣙ͠ॻΛߪೖ ↓ ܗͯ͠ɺElasticsearchͰಡΈࠐΊΔΑ͏ ʹରԠ
None
্࣮ͷ՝ͱղܾͷͨΊͷ Ξϓϩʔν 1. ༁ • ΦϯσϚϯυ༁ • WebSocketʹΑΔ࣌ؒॖ 2. ຊޠݕࡧ
• Synonym token filterʹΑΔˠӳݕࡧ 3. ίϝϯτ
্࣮ͷ՝ͱղܾͷͨΊͷ Ξϓϩʔν 1. ༁ 2. ຊޠݕࡧ 3. ίϝϯτ
None
None
None
্࣮ͷ՝ͱղܾͷͨΊͷ Ξϓϩʔν 1. ༁ 2. ຊޠݕࡧ 3. ίϝϯτ • JQuery
→ Vue.js, Vuex
͕࣌ؒͳ͍ͷͰলུ
Agenda 1. JOURNAL is Կ? 2. JOURNALͷγεςϜߏ 3. ্࣮ͷ՝ͱղܾͷͨΊͷΞϓϩʔν 4.
ऴΘΓʹ
ੈͷதɺΧωͰղܾͰ͖Δ
͕ͩ…
͕ۚͳ͍͔Βͦ͜ɺ ͷ༨͕ੜ·ΕΔ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠