20210110_アウトプット(ActionCableのデプロイ・Docker・PHP)

アウトプット画像

今日行ったこと 8時間20分

  • 即時更新されるコメント投稿機能アプリ 4時間50分
    👉ActionCableをデプロイする際は、工夫が必要なことを学んだ。

  • Dockerを使いながらPHPで開発(ドットインストール) 3時間30分
    👉模写しながら学ぶ。

  • チーム開発検討打ち合わせ1時間10分



新しい発見

Action Cableのデプロイについて

  • Herokuでデプロイしたが、リロードしないと即時更新されず💦(即時更新ではない状況)

  • Railsガイドや、そのほかのネットで調べた上で実験したところ、以下の4つについて新しい発見になった。

(1)ActionCableを使用して、即時機能を実装する場合config/cable.ymlにあるサブスプリクションのアダプタ設定が作用すること

(2)アダプタ設定(本番環境)において、async(非推奨)・redis(推奨)・postgresql(推奨)のいずれかを選択することになること

(3)現在の自分の状況ではmysql2でデータベースを作ってしまったため、async(非推奨)の選択肢になってくること

(4)(1)〜(3)のサブスクリプションのアダプタ設定の他、config/environments/production.rbにおいて、許可されたリクエスト送信元だけがメッセージ等をサーバーに送れるようにURL設定が必要なこと

Railsガイドより引用(1)〜(4)に当たる部分 サブスクリプションアダプタ 許可された送信元のみOK



アダプタ 推奨/非推奨 自分の状況(DBにMysql2を使用)
async 非推奨 使用するとデプロイ(即時機能の実装)出来る。
Redis 推奨 デフォルト値。Mysql2でDB作成しているとエラー。使うにはHerokuで有料プランと判明。
PostgreSQL 推奨 Mysql2でDB作成しているとエラー。
  • 仮説が合っているかメンターさんに確認したら合っていた😭嬉しい!

  • プラスで知識になったこととして、rails newをした時に、-d mysqlと指定しているが、ここの部分をPostgreSQLなどにすればアプリ生成ごとにDB設定できることを知った。 (前提として、rails newする前に、DBの環境構築が必要)

  • またasyncが非推奨なのは、データ容量が小さいので通信速度が重くて遅くなってしまうため。なのでポートフォリオ程度であれば大丈夫なことも知れてよかった。 (非推奨だと「絶対に使わない方がいいくらい」の重さで捉えていたため)



Dockerを使いながらPHPで開発(ドットインストール)

  • Dockerを初めてインストールした😍。スタート時にdocker-compose up -dというコマンドを打つことを学んだ。

  • localhostが3000以外なのが不思議な感じ。

  • phpについてhtmlの部分にJavaScriptスクリプトを入れられないようにするために、htmlspecialcharsで覆ってあげることを初めて知った。

  • Railsと違って、面から作っていく印象を受けた。生のDBを操作する内容と、htmlにphpの変数やforeeachを等を組み合わせてDBとの繋がりを作り上げていくのが新鮮。(RailsはいかにActive recordのおかげでデータベースからの取り出しが楽だったか・・)

  • プロゲートよりもドットインストールの方が実際にコード使ってブラウザに反映させていくので実践的でRailsとの違いがわかりやすかった。

  • 今オリジナルアプリで詰まっているフォームの部分も、Railsの7つのアクションではなく、phpCRUDのような場合に相性がいいのではないかと思い始めた。


感想

  • ドットインストールから得られる新しい知識が楽しすぎて夢中になった。

  • まだ全容は見えてないけど、CRUDと、7つのアクション+MVCと違いはどこだろうと思いながら進めている。

  • 今更なのだが、今作ろうとしているオリジナルアプリはサーバーサイドよりもフロントっぽい内容だったのではないかと思い始めた😭焦り・不安いろんな感情が入り混じるけど、一歩ずつやろうと思う。

  • Herokuのデプロイを通して、Railsのデプロイに関して知識を深められたのは嬉しかった。



覚書(12/29計画の見直し)

(1)やるべきこと (2)やりたいこと (3)やれること

(1)やるべきこと

  • 卒業要件の完成

(2)やりたいこと

(3)やれること

メンタル:楽しみながら、ゲーム感覚でいく🎮😎

時間で区切り(達成すればよし)
  • PHP 一日15分以上

  • オリジナルアプリ 1日1時間以上

追加実装のミニアプリを作り、引き出しを増やす
優先順位 内容(機能) 締め切り 達成度
1 AWS S3 12/18 完了(フリマアプリ)に実装)
2 AWS EC2 12/24 完了(フリマアプリに実装)
3 ウィザード形式 12/27 完了
4 SNS認証 12/28 完了
5 複数条件検索 12/29 完了
6 タグ付 12/31 完了
7 画像プレビュー 1/2 完了※フォーク
8 複数枚写真OK 1/4 完了※7に追加実装
9 コメント機能(即時更新) 1/8 完了
10 クレカ登録 1/10
11 パンくず 1/14
12 日本語エラー 1/18



身に付ける力(直近)

  • PHP7

  • Docker


身に付ける力(ゆくゆく・覚書)

  • ドメイン駆動開発

  • 環境構築

  • 環境変数などのOS知識

  • バージョン対応力

  • データベースをインポートする力・エクスポートする

  • GitHubActions×OpenAPIGenerator(APICilent)