Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nuxt.js + Firebaseでの開発と高速化に挑んだ話

Takayuki
September 24, 2019

Nuxt.js + Firebaseでの開発と高速化に挑んだ話

Nuxt.js + FirebaseでWebアプリにチャット機能の導入する際に
工夫した点、感じたメリット・デメリットについてお話します。
その他には、フロント周りでボトルネックになっていた処理を調査し、高速化した話をする予定です。

Takayuki

September 24, 2019
Tweet

More Decks by Takayuki

Other Decks in Technology

Transcript

  1. 0.ࣗݾ঺հ ◆໊લ ླ໦ ޹೭(Suzuki Takayuki) ※ಉ੏ಉ໊ଟͯ͘ࠔͬͯ·͢ɻɻɻ ◆ࣗݾ঺հ ɾ1990೥ɺਆಸ઒ݝੜ·Εɻ ɾࣾձਓʹͳ͔ͬͯΒɺϓϩάϥϛϯάΛ࢝ΊΔɻ ɾ2015೥ʹϑϧεϐʔυʹೖࣾ͠ɺ2017೥ʹಠཱɻ

    ɾݱࡏ͸ɺडୗ։ൃΛ΍ΓͭͭɺࣗࣾWebαʔϏεΛ։ൃதɻ ◆झຯ ίεϓϨɺԻָϥΠϒɺϚϥιϯେձʹग़Δɺ໺ٿ؍ઓ ◆εΩϧ PHP,Symfony2,CakePHP3,Laravel5, JavaScript,backbone.js,Angular.js
  2. Copyright Re:Build.inc All Rights Reserved. ձࣾ঺հ ◆ձ໊ࣾ גࣜձࣾRe:Build ◆ॅॴ ԭೄݝԭೄࢢதԝ̍ஸ໨̍̒−̕

    ◆ࣄۀ಺༰ ɾࣗࣾWEBαʔϏεͷاըɾ։ൃɻ ɾडୗ։ൃ ◆ࣾһ 6໊ ◆ΤϯδχΞͷಇ͖ํ ϦϞʔτϫʔΫՄೳͳࣗ༝ͳಇ͖ํΛਪ঑ͯ͠·͢ʂ
  3. 7 ࣗࣾ։ൃνʔϜߏ੒ Suzuki Takayuki ਖ਼ࣾһ (ि5೔ۈ຿) Kakazu Yuki (ਖ਼ࣾһ) Ϛωδϝϯτ&։ൃ

    ։ൃ ϑϦʔϥϯε (ि2೔ۈ຿) ϑϦʔϥϯε (ि2೔ۈ຿) ϑϦʔϥϯε (ि2೔ۈ຿) ϑϦʔϥϯε (ि1೔ۈ຿) ཁ݅ఆٛ UI/UX ਖ਼ࣾһ (ि5೔ۈ຿) ෭ۀ (ि1೔ۈ຿) ͜ͷϙδγϣϯΛ ΍ͬͯ·͢ʂ
  4. Re:Build اۀͷ୲౰ऀ͕ ΤʔδΣϯτΛબͿ ΤʔδΣϯτ͕ࣗ෼ͷܨ ͕Γͷ͋ΔΤϯδχΞ· ͨ͸νʔϜʹ੠Λ͔͚Δ ΤʔδΣϯτ͸ ࣄલʹ৹੍ࠪ ϫʔΧʔ ΤʔδΣϯτ

    اۀ ϏδωεϞσϧ ࠾༻ใु εΩϧ ܦݧ Քಇঢ়گ εΩϧ ܦݧ Քಇঢ়گ εΩϧ ܦݧ Քಇঢ়گ ࢓ࣄΛ঺հ͢Δ ˕ ̋ ̋ × ˕ ̋ × ̋ ̋
  5. 11 બఆٕͨ͠ज़ ▪ٕज़ཁ݅ ɾαʔόαΠυ PHP(Laravel5.8) ɾϑϩϯτΤϯυ JavaScript(Vue.js,Nuxt.js) ɾςετ PHPUnit,Cypress ɾ੩తղੳ

    ESlint,PHPStan ɾΠϯϑϥ AWS(EC2,S3,RDS(mariadb)) ɾ։ൃ؀ڥ php7,nginx,mariadb,docker,webpack ɾͦͷଞ gitlab,gitlabCI(ࣗಈσϓϩΠͳ Ͳ),Slack,phpStorm
  6. શମͷΞʔΩςΫνϟ(̐ͭͷυϝΠϯผ) ϑϩϯτΤϯυ αʔόαΠυ blade MPAߏ੒ ϑϩϯτΤϯυ αʔόαΠυ SPAߏ੒ αʔόαΠυ ϑϩϯτΤϯυ

    αʔόαΠυ blade MPAߏ੒ ϫʔΧʔը໘ ΤʔδΣϯτը໘ اۀը໘ SPAߏ੒ ϑϩϯτΤϯυ ӡӦը໘ MPA SPA
  7. ҰൠϢʔβը໘ͷߏ੒ Laravelͷblade RoomCreateForm.vue Messages.vue Rooms.vue UserCreateForm.vue Index. vue Firebase Tadoru

    DB FirebaseʹϩάΠϯ ϢʔβΛొ࿥͢Δ ϧʔϜΛ࡞੒͢Δ νϟοτ૬खΛऔಘ͢Δ ϧʔϜϝϯόʔ৘ใΛऔಘ͢Δ ϝοηʔδҰཡΛऔಘ͢Δ ϝοηʔδΛૹ৴͢Δ ϧʔϜҰཡΛऔಘ͢Δ
  8. اۀϢʔβը໘ͷߏ੒ pages/chat/index.vue RoomCreateForm.vue Messages.vue Rooms.vue UserCreateForm.vue Index. vue Firebase Tadoru

    DB FirebaseʹϩάΠϯ ϢʔβΛొ࿥͢Δ ϧʔϜΛ࡞੒͢Δ νϟοτ૬खΛऔಘ͢Δ ϧʔϜϝϯόʔ৘ใΛऔಘ͢Δ ϝοηʔδҰཡΛऔಘ͢Δ ϝοηʔδΛૹ৴͢Δ ϧʔϜҰཡΛऔಘ͢Δ
  9. 3 9 Google Cloud Functions for Firebase http://furandon-pig.hatenablog.com/entry/2014/06/04/215727 Cloud Functions

    for Firebase Λ࢖͏͜ͱͰɺΠ ϕϯτυϦϒϯͳΞϓϦέʔγϣϯΛ࡞੒͢Δ ͜ͱ͕Ͱ͖·͢ɻ SMS ϝοηʔδͷૹ৴ͳͲ ͷॲཧͷΑ͏ͳ֎෦αʔϏε࿈ܞͳͲΛߦ͏͜ ͱ͕ՄೳʹͳΓ·͢ɻ·ͨɺΫϥΠΞϯτΞϓ Ϧέʔγϣϯʹ࣮૷ͤ͞Δʹ͸ॏͨ͗͢ΔΑ͏ ͳॲཧΛ Cloud Functions for Firebase ʹҕͶ Δ͜ͱ͕Ͱ͖·͢ɻ
  10. Ϣʔβͷొ࿥࣌ͷॳظϑϩʔ <STEP1> DBʹϢʔβొ࿥ Firebase Tadoru DB Ϣʔβ৘ใΛొ࿥ Ϣʔβ৘ใΛొ࿥ <STEP2> Firestoreʹ

    Ϣʔβొ࿥ gRPCͰૹΔ ؅ཧ͕໘౗ʹͳΔ͕DBͱ FirestoreʹϢʔβ৘ใ͕̎ͭग़ དྷΔࣄʹͳͬͯ͠·ͬͨ…ɻ PHPͷFirestoreͷϥΠϒϥϦ͕ gRPCࢦఆͩͬͨ LaravelͷΦϒβʔόͰ Firestoreͷొ࿥ॲཧൃಈ