Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
新サービス・JOURNAL(ジャーナル)開発秘話
Search
pipopotamasu
November 26, 2018
2
260
新サービス・JOURNAL(ジャーナル)開発秘話
pipopotamasu
November 26, 2018
Tweet
Share
More Decks by pipopotamasu
See All by pipopotamasu
How JS Works
pipopotamasu
0
200
vue-function-tester
pipopotamasu
2
1.2k
Dive into vue-test-utils ~~Road of 1.0.0~~
pipopotamasu
0
100
medpacker_introduction_20190523
pipopotamasu
0
510
Introduction of medpacker: RoR Frontend Boilerplate
pipopotamasu
0
4.9k
メドピアにおけるライブラリアップデート_MedBeer_20180912.pdf
pipopotamasu
0
12k
MedPeer_JapaxTaxi_MeetUp_Actioncable
pipopotamasu
0
650
MedPeer X みんなのウェディング合同勉強会
pipopotamasu
0
1.1k
UXBridge_vol3_pipopotamasu
pipopotamasu
2
900
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
It's Worth the Effort
3n
187
29k
Site-Speed That Sticks
csswizardry
13
1k
Writing Fast Ruby
sferik
630
62k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Scaling GitHub
holman
464
140k
Why Our Code Smells
bkeepers
PRO
340
57k
Unsuck your backbone
ammeep
671
58k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Docker and Python
trallard
47
3.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
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.
ऴΘΓʹ
ੈͷதɺΧωͰղܾͰ͖Δ
͕ͩ…
͕ۚͳ͍͔Βͦ͜ɺ ͷ༨͕ੜ·ΕΔ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠